Bhargav Rao
Bhargav Rao

Reputation: 52151

Animation in LOGO

I have created a nice pattern using the following one line code

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

Now I want this to appear as if it is rotating. I have tried to clear the screen and then rotate the turtle a at a specific angle and then print the pattern again. But there is something completely wrong in my logic. Can anybody help?

Upvotes: -2

Views: 302

Answers (1)

Steven Doggart
Steven Doggart

Reputation: 43743

In order to accomplish animation, you need an interpreter which supports it. The interpreter must be one which renders the entire output before displaying it (doesn't show the turtle movement during drawing), and it also must support the wait command (or something similar to it). An example of an interpreter that meets these qualifications would be the one at www.logointerpreter.com. Here's an example which spins your wheel a full rotation and works with that interpreter:

ht
repeat 360
[
  clean
  repeat 36 [repeat 10[fd 10 rt 36] rt 10]
  wait 10
  rt 1
]

As you can see, the outer loop draws 360 separate frames. After drawing each frame, it waits 10 milliseconds, so you can see the frame. It then rotates the turtle one degree before clearing the screen and beginning the drawing of the next frame. If you need a little more control, you could also store the starting angle for each frame in a variable, like this:

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

Upvotes: 2

Related Questions