LOGO中的动画

时间:2014-11-10 13:31:49

标签: turtle-graphics ucb-logo logo-lang

我使用以下一行代码创建了一个漂亮的模式

repeat 36 [repeat 10[fd 10 rt 36] rt 10]

现在我希望它看起来像是在旋转。我试图清除屏幕,然后以特定角度旋转乌龟a,然后再次打印图案。但是我的逻辑中存在一些完全错误的东西。有人可以帮忙吗?

1 个答案:

答案 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)
]