課題とすることには難しさがあるかと思ったので、 こちらがプログラム例を示すことにしました。
「
進み、左に
曲がり、
進み、右に
曲が
り、
進み、左に
曲がり、
進む」と、
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
|