2 Value Turtles
The value turtles are a variation on traditional turtles. Rather than
having just a single window where each operation changes the state of
that window, in the graphics/value-turtles library, the
entire turtles window is treated as a value. This means that each of
the primitive operations accepts, in addition to the usual arguments,
a turtles-window value; instead of returning nothing, each returns a
turtles-window value.
| (turtles | | width | | | | | | | | height | | | | | | | [ | init-x | | | | | | | | init-y | | | | | | | | init-angle]) | | → | | turtles-window? |
|
| width : real? |
| height : real? |
| init-x : real? = (/ width 2) |
| init-y : real? = (/ height 2) |
| init-angle : real? = 0 |
Creates a new turtles window with the given width and
height. The remaining arguments specify position of the
initial turtle and the direction in radians (where 0 is to
the right).
| (move n turtles) → turtles-window? |
| n : real? |
| turtles : turtles-window? |
Moves the turtle n pixels, returning a new turtles window.
| (draw n turtles) → turtles-window? |
| n : real? |
| turtles : turtles-window? |
Moves the turtle n pixels and draws a line along the path,
returning a new turtles window.
| (erase n turtles) → turtles-window? |
| n : real? |
| turtles : turtles-window? |
Moves the turtle n pixels and erases a line along the path,
returning a new turtles window.
| (move-offset h v turtles) → turtles-window? | | h : real? | | v : real? | | turtles : turtles-window? |
|
| (draw-offset h v turtles) → turtles-window? | | h : real? | | v : real? | | turtles : turtles-window? |
|
| (erase-offset h v turtles) → turtles-window? | | h : real? | | v : real? | | turtles : turtles-window? |
|
Like
move,
draw, and
erase, but using a
horizontal and vertical offset from the turtle’s current position.
| (turn theta turtles) → turtles-window? |
| theta : real? |
| turtles : turtles-window? |
Turns the turtle theta degrees counter-clockwise, returning a
new turtles window.
| (turn/radians theta turtles) → turtles-window? |
| theta : real? |
| turtles : turtles-window? |
Turns the turtle theta radians counter-clockwise, returning a
new turtles window.
| (merge turtles1 turtles2) → turtles-window? |
| turtles1 : turtles-window? |
| turtles2 : turtles-window? |
Instead, the merge accepts two turtles windows and combines
the state of the two turtles windows into a single window. The new
window contains all of the turtles of the previous two windows, but
only the line drawings of the first turtles argument.
2.1 Examples
The graphics/value-turtles-examples library is similar
to graphics/turtle-examples, but using
graphics/value-turtles instead of
graphics/turtles.