| Spirals 5 |
|
|
|
| |
if you cannot see the project |
|
Goal: Use recursion to limit a spiral´s size.
Vocabulary: if, > (greater than sign), stop
to spiral :length
pd
if :length > howbig [stop]
setc whatcolor
setpensize howthick
fd :length rt angle
spiral :length + howtight
end
to reset
cg
end
Notes When we use spiral as a command in the spiral procedure, that tells the computer to start running the procedure all over again. (A procedure which calls its own name inside the procedure is called a recursive procedure.) The computer will keep circling back to the beginning forever unless we tell it when to stop.
- Instead of setting the number of turns as in Spirals 4, we make a howbig slider to set a limit on the length of the lines.
- In the spiral procedure, if :length > howbig [stop] means, "If the value of the length variable is greater than the number on the howbig slider, stop the procedure."
Every time the computer runs the spiral procedure, it checks to see if the if command is true. If it is true, the procedure will stop. If it is false, the procedure will keep running.
- Spiral :length + howtight means, "Start running the spiral procedure again, but increase the value of length by the number on the howtight slider."
When the recursive call takes place at the end of a procedure, it is called tail-end recursion.
- You should always save your work before you test out a recursive procedure, in case it doesn't stop as you expect. Also, you can always interrupt a process by selecting "stop all" from the pull-down Edit menu.
What If?
Try different settings on the angle, howtight, and howbig sliders.
Challenge
Can you set the sliders so that the turtle will draw a spiral that reaches the top and bottom of the project page without wrapping?
|