83. plugins.turtle — Turtle graphics for pyFormex

This module was mainly aimed at the drawing of Lindenmayer products (see plugins.lima and the Lima example).

The idea is that a turtle can be moved in 2D from one position to another, thereby creating a line between start and endpoint or not.

The current state of the turtle is defined by

  • pos: the position as a 2D coordinate pair (x,y),
  • angle: the moving direction as an angle (in degrees) with the x-axis,
  • step: the speed, as a discrete step size.

The start conditions are: pos=(0,0), step=1., angle=0.

The followin example turtle script creates a unit square:


83.1. Functions defined in module plugins.turtle


Return the sine of an angle in degrees.


Return the cosine of an angle in degrees.


Reset the turtle graphics engine to start conditions.

This resets the turtle’s state to the starting conditions pos=(0,0), step=1., angle=0., removes everything from the state save stack and empties the resulting path.


Save the current state of the turtle.

The turtle state includes its position, step and angle.


Restore the turtle state to the last saved state.

plugins.turtle.fd(d=None, connect=True)[source]

Move forward over a step d, with or without drawing.

The direction is the current direction. If d is not given, the step size is the current step.

By default, the new position is connected to the previous with a straight line segment.


Move over step d without drawing.


Rotate over angle a. The new direction is incremented with a


Go to position p (without drawing).

While the mv method performs a relative move, this is an absolute move. p is a tuple of (x,y) values.


Set the step size.


Set the angle

plugins.turtle.play(scr, glob=None)[source]

Play all the commands in the script scr

The script is a string of turtle commands, where each command is ended with a semicolon (‘;’).

If a dict glob is specified, it will be update with the turtle module’s globals() after each turtle command.