next up previous
Next: この文書について... Up: 情報処理2 第3回 十進BASIC (3) Previous: 4 課題3B

A. 課題3Bへの一つのヒント: タートルグラフィックス

一時期、プログラミングの入門用の言語として、 LOGO というものが 注目されたことがあります。 その特徴であるタートル・グラフィックスを利用すれば、 まだ座標系の概念を学んでいないような小学生にも簡単に図形を描く プログラムが作れるということで「ちょっと面白い」話でした。

タートル・グラフィックスとは、 キャンバスの中を亀 (タートル) が歩く軌跡として図形を描画するというものです。 亀に伝えられる指令として、 「進む(指定された歩数だけ)」,「戻る(指定された歩数だけ)」, 「右に曲がる (指定された角度だけ)」,「左に曲がる (指定された角度だけ)」, 「ペンを下ろす」, 「ペンをあげる」などがあります。

例えば、「$ 50$ 歩進み、$ 90^\circ$ 右に曲がる」を4回繰り返すことで 1辺の長さが $ 50$ 歩の正方形を描くことができます。


REM TURTLE.BAS --- 亀よ正方形と正三角形を描いておくれ
OPTION ANGLE DEGREES
SUB right(t)
   LET direction=direction-t
END SUB
SUB left(t)
   LET direction=direction+t
END SUB
SUB walk(s)
   PLOT LINES: xp,yp;
   LET  xp=xp+s*COS(direction)
   LET  yp=yp+s*SIN(direction)
   PLOT LINES: xp,yp
END SUB
SUB jump(s)
   LET  xp=xp+s*COS(direction)
   LET  yp=yp+s*COS(direction)
   PLOT LINES: xp,yp
END SUB
REM ----------- start ------------
LET  L=100
SET WINDOW -1.1*L,1.1*L,-1.1*L,1.1*L
REM 亀の現在位置 (xp,yp), 方向 direction (x軸となす角)
LET  direction=0
LET  xp=0
LET  yp=0
FOR i=1 TO 4
   CALL walk(L)
   CALL right(90)
NEXT i
CALL right(10)
SET LINE COLOR "red"
FOR i=1 TO 3
   CALL walk(L/2)
   CALL right(120)
NEXT i
END

\includegraphics[width=6cm]{TURTLE.eps}

\includegraphics[width=5cm]{silverstar.eps} \includegraphics[width=5cm]{kamehoshi2.eps}


next up previous
Next: この文書について... Up: 情報処理2 第3回 十進BASIC (3) Previous: 4 課題3B
Masashi Katsurada
平成19年5月8日