-
Notifications
You must be signed in to change notification settings - Fork 14
LispKit Draw Turtle
Library (lispkit draw turtle)
defines a simple "turtle graphics" API. The API provides functionality for creating turtles and for moving turtles on a plane generating drawings as a side-effect. A drawing is a data structure defined by library (lispkit draw)
.
A turtle is defined in terms of the following components:
- A position (x, y) defining the coordinates where the turtle is currently located within a coordinate system defined by parameters used to create the turtle via
make-turtle
- A heading angle which defines the direction in degrees into which the turtle is moving
- A boolean flag pen down which, if set to
#t
, will make the turtle draw lines on the graphics plane when moving. - A line width defining the width of lines drawn by the turtle
- A color defining the color of lines drawn by the turtle
- A drawing which records the moves of the turtle while the pen is down.
Turtles are mutable objects created via make-turtle
. The functions listed below change the state of a turtle. In particular, they generate a drawing as a side-effect which can be accessed via turtle-drawing
. For most functions, the turtle is an optional argument. If it is not provided, the function applies to the turtle provided by the current-turtle
parammeter object.
current-turtle [parameter object]
Defines the current turtle, which is used as a default by all functions for which the turtle argument is optional. If there is no current turtle, this parameter is set to #f
.
(turtle? obj) [procedure]
Returns #t
if obj is a turtle. Otherwise, it returns #f
.
(make-turtle x y scale) [procedure]
Returns a new turtle object. x and y determine the "home point" of the turtle. This is equivalent to the zero point of the coordinate system in which the turtle navigates. scale is a scaling factor.
(turtle-drawing turtle) [procedure]
Returns the drawing associated with the given turtle.
(pen-up) [procedure]
(pen-up turtle)
Lifts turtle from the plane. If turtle is not provided, the turtle defined by current-turtle
is used. Subsequent forward
and backward
operations don't lead to lines being drawn. Only the current coordinates are getting updated.
(pen-down) [procedure]
(pen-down turtle)
Drops turtle onto the plane. If turtle is not provided, the turtle defined by current-turtle
is used. Subsequent forward
and backward
operations will lead to lines being drawn.
(pen-color color) [procedure]
(pen-color color turtle)
Sets the drawing color of turtle to color. If turtle is not provided, the turtle defined by current-turtle
is used. color is a color object as defined by library (lispkit draw)
.
(pen-size size) [procedure]
(pen-size size turtle)
Sets the pen size of turtle to size. If turtle is not provided, the turtle defined by current-turtle
is used. The pen size corresponds to the width of lines drawn by forward
and backward
.
(home) [procedure]
(home turtle)
Moves turtle to its home position. If turtle is not provided, the turtle defined by current-turtle
is used.
(move x y) [procedure]
(move x y turtle)
Moves turtle to the position described by the coordinates x and y. If turtle is not provided, the turtle defined by current-turtle
is used.
(heading angle) [procedure]
(heading angle turtle)
Sets the heading of turtle to angle. If turtle is not provided, the turtle defined by current-turtle
is used. angle is expressed in terms of degrees.
(turn angle) [procedure]
(turn angle turtle)
Adjusts the heading of turtle by angle degrees. If turtle is not provided, the turtle defined by current-turtle
is used.
(right angle) [procedure]
(right angle turtle)
Adjusts the heading of turtle by angle degrees. If turtle is not provided, the turtle defined by current-turtle
is used.
(left angle) [procedure]
(left angle turtle)
Adjusts the heading of turtle by -angle degrees. If turtle is not provided, the turtle defined by current-turtle
is used.
(forward distance) [procedure]
(forward distance turtle)
Moves turtle forward by distance units drawing a line if the pen is down. If turtle is not provided, the turtle defined by current-turtle
is used.
(backward distance) [procedure]
(backward distance turtle)
Moves turtle backward by distance units drawing a line if the pen is down. If turtle is not provided, the turtle defined by current-turtle
is used.