Turtle Graphics
January 3, 2012
We had fun drawing a fractal snowflake last week. In today’s exercise, we will write a full library for turtle graphics. Our goal is to provide the commands described in Brian Harvey’s book about Logo. The turtle is a robotic device that moves and draws on a graphical output device (paper, screen) with a coordinate system that has x running west (negative) to east (positive) and y running south (negative) to north (positive); the ordinal compass points are 0 north, 90 east, 180 south and 270 west. Most commands ignore the global coordinate system in favor of commands from the turtle’s point of view, so instead of saying “turn to 135 degrees” a typical command is “turn right 45 degrees,” so that a shape can be drawn without knowledge of its global coordinates. The turtle commands are:
clearscreen— initialize the graphics system and place the turtle in the center of the graphical output pointing north
penup— remove the pen from the drawing surface
pendown— place the pen on the drawing surface
forwardn — move the turtle forward n steps, drawing a line if the pen is down
backn — move the turtle back n steps, drawing a line if the pen is down
leftn — rotate the turtle n degrees left from its current heading
rightn — rotate the turtle n degrees right from its current heading
setposx y — move the turtle from its current position to the indicated coordinates, drawing a line if the pen is down
setheadingn — rotate the turtle from its current heading to the indicated heading
pos— report the current position by its x and y coordinates
heading— report the current heading in degrees
Your task is to write a turtle graphics library. When you are finished, you are welcome to read or run a suggested solution, or to post your own solution or discuss the exercise in the comments below.