我使用以下一行代码创建了一个漂亮的模式
repeat 36 [repeat 10[fd 10 rt 36] rt 10]
现在我希望它看起来像是在旋转。我试图清除屏幕,然后以特定角度旋转乌龟a,然后再次打印图案。但是我的逻辑中存在一些完全错误的东西。有人可以帮忙吗?
答案 0 :(得分:2)
为了完成动画,你需要一个支持它的解释器。解释器必须是在显示它之前呈现整个输出的解释器(在绘图期间不显示乌龟移动),并且它还必须支持wait
命令(或类似的命令)。满足这些资格的翻译的一个例子是www.logointerpreter.com的翻译。这是一个旋转你的轮子完整旋转并与该解释器一起工作的例子:
ht
repeat 360
[
clean
repeat 36 [repeat 10[fd 10 rt 36] rt 10]
wait 10
rt 1
]
如您所见,外部循环绘制360个独立的帧。绘制每个帧后,它会等待10毫秒,因此您可以看到该帧。然后它将乌龟旋转一度,然后清除屏幕并开始绘制下一帧。如果您需要更多控制,您还可以将每个帧的起始角度存储在变量中,如下所示:
ht
make "start 0
repeat 360
[
cs
rt :start
repeat 36 [repeat 10[fd 10 rt 36] rt 10]
wait 10
make "start (:start + 1)
]