3DLOGO

3D−LOGO

−空間図形・フラクタル・アニメーション−

 (3)アニメーション
マルチ・タートル、マルチ・ヴューを利用して、ディスプレー内の表示画面を宇宙空間に
見立てて、アニメーションしてみる。
例)
・タートルを宇宙船に見立てて星形のトンネルをくぐり抜けるアニメーション
TO STARGATE
 ASK 0 [FD 500 MU 10] REPEAT 8 [RT 20 STAR 200 PU MD 200 PD]
 PU HOME DN 90 BK 200
 REPEAT 80 [RL 10 FD 10 TUISEKI]
 REPEAT 80 [RR 10 FD 10 TUISEKI]
 REPEAT 80 [RL 10 BK 10 TUISEKI]
 REPEAT 80 [RR 10 BK 10 TUISEKI]
 PD
END

TO STAR :L LOCAL :Y :T
 MAKE "Y :L ÷ 2
 MAKE "T :Y ÷ TAN 72
 SETPC ( RANDOM 6 ) + 1
 PU ML :Y FD :T RT 90 PD
 REPEAT 5 [FD :L RT 144]
 PU LT 90 BK :T MR :Y PD
END

TO TUISEKI
 MANUAL ASK 0 [SETPOS ASK 1 [POS] BK 100 MU 10 SETVECTOR ASK 1 [VECTOR]] AUTO
END

・宇宙ステーション(タートルの形を宇宙ステーションに変形している)
TO 主軸
 PU MU 150 PD CIRCLE 20 PU MR 20 PD MD 300 PU ML 20 PD
 CIRCLE 20 PU ML 20 PD MU 300 PU MR 20
 FD 20 PD MD 300 PU BK 40 PD MU 300 PU FD 20 MD 150 PD
END

TO 本体 :N :C :M LOCAL :D :L
 MAKE "D 360 ÷ :N MAKE "L 2 × :M × COS ( ( 180 - :D ) ÷ 2 )
 PU MU 30 PD REP :N [部品1 :M :C 90 + :D ÷ 2 :L LT :D] PU MD 30 PD
END

TO 部品1 :M :C :R :L
 PU FD :C PD 部屋 :M - :C LT :R 部屋 :L
 LT :R PU FD :M PD LT 2 × ( 180 - :R )
END

TO 部屋 :F
 FD :F MD 60 BK :F MU 60 PU FD :F PD
END

TO 宇宙駅
 DRAW DN 90 SETPC 7 主軸 SETPC 5 本体 30 250 300 SETPC 3 本体 30 20 250
 SAVESHAPE "COSMO "EKI LOADSHAPE "COSMO DRAW
END

TO 映像
 DRAW CT FKEY OFF IF NOT SHAPE? "EKI [宇宙駅]
 ASK 0 [HOME] HOME 大地 REP 30 [星空] HOME SETSH "EKI MANUAL
 WHILE TRUE [RR 10 RFR IF RC? [判断 飛行 2 飛行 3 飛行 4 飛行 5 UP 10]]
END

TO 大地
 PU BK 600 DN 90 ML 3000 BK 3000 SETPC 1
 REP 15 [PD FD 6000 PU MR 200 PD BK 6000 PU MR 200] PD FD 6000
 PU BK 6000 LT 90
 REP 15 [PD FD 6000 PU MR 200 PD BK 6000 PU MR 200] PD FD 6000
 HOME
END

TO 星空 LOCAL :CX :CY :CZ :R
 MAKE "CX ( RANDOM 8000 ) - 4000
 MAKE "CY ( RANDOM 3000 )
 MAKE "CZ 0 - ( 3000 + RANDOM 3000 )
 MAKE "R 100 + RANDOM 150
 PU SETPOS # [:CX :CY :CZ] PD
 RR 180 - INT RANDOM 360 RT 180 - INT RANDOM 360 UP 180 - INT RANDOM 360
 SETPC 1 + INT RANDOM 7 REP 5 [FD :R RT 144]
END

TO 判断 LOCAL :C
 MAKE "C RC CLEARINPUT
 IF EQUAL? :C "Q [終了]
END
TO 飛行 :B LOCAL :U :M
 TELL :B SETSH "TURTLE
 IF :B > 2 [UP 180 - INT RANDOM 360 RT 180 - INT RANDOM 360] [UP 85]
 RR 180 ST REP 10 [FD 100 RFR] HT SETSH "NULL HOME TELL 1
END

TO 終了
 TELL 0
 REP 36 [MR 180 LT 10 RFR] REP 36 [MU 180 DN 10 RFR] REP 3 [REP 60000 []]
 TELL 1 AUTO DRAW FKEY ON TOPLEVEL
END


 宇宙ステーションがくるくる回っています。「スペースバー」を押すと回転が止まり、3台の宇宙船(3つのタートル)がランダムな方向に飛び出し、宇宙ステーションの傾きが変化し、また、くるくると回転しだします。「Q」を押すと宇宙ステーションの周りを視点が移動した後、このプログラムを終了します。

Home Page Index Page Pre Page Next Page