課題とすることには難しさがあるかと思ったので、 こちらがプログラム例を示すことにしました。
「 進み、左に 曲がり、 進み、右に 曲が り、 進み、左に 曲がり、 進む」と、
REM KOCH.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 REM 端点の距離が n である Koch 曲線を描く SUB koch(n) IF n>1 THEN CALL koch(n/3) CALL left(60) CALL koch(n/3) CALL right(120) CALL koch(n/3) CALL left(60) CALL koch(n/3) ELSE CALL walk(n) END IF END SUB LET L=3^8 SET WINDOW -0.1*L,1.1*L,-0.1*L,1.1*L REM 亀の方向と現在位置 LET direction=0 LET xp=0 LET yp=0 CALL koch(L) END |