77 lines
3.5 KiB
Text
77 lines
3.5 KiB
Text
|
|
||
|
========================================================
|
||
|
A new turtle module for Python
|
||
|
========================================================
|
||
|
|
||
|
Turtle graphics is a popular way for introducing programming to
|
||
|
kids. It was part of the original Logo programming language developed
|
||
|
by Wally Feurzig and Seymour Papert in 1966.
|
||
|
|
||
|
Imagine a robotic turtle starting at (0, 0) in the x-y plane. After an ``import turtle``, give it
|
||
|
the command turtle.forward(15), and it moves (on-screen!) 15 pixels in
|
||
|
the direction it is facing, drawing a line as it moves. Give it the
|
||
|
command turtle.right(25), and it rotates in-place 25 degrees clockwise.
|
||
|
|
||
|
By combining together these and similar commands, intricate shapes and
|
||
|
pictures can easily be drawn.
|
||
|
|
||
|
----- turtle.py
|
||
|
|
||
|
This module is an extended reimplementation of turtle.py from the
|
||
|
Python standard distribution up to Python 2.5. (See: http:\\www.python.org)
|
||
|
|
||
|
It tries to keep the merits of turtle.py and to be (nearly) 100%
|
||
|
compatible with it. This means in the first place to enable the
|
||
|
learning programmer to use all the commands, classes and methods
|
||
|
interactively when using the module from within IDLE run with
|
||
|
the -n switch.
|
||
|
|
||
|
Roughly it has the following features added:
|
||
|
|
||
|
- Better animation of the turtle movements, especially of turning the
|
||
|
turtle. So the turtles can more easily be used as a visual feedback
|
||
|
instrument by the (beginning) programmer.
|
||
|
|
||
|
- Different turtle shapes, gif-images as turtle shapes, user defined
|
||
|
and user controllable turtle shapes, among them compound
|
||
|
(multicolored) shapes. Turtle shapes can be stgretched and tilted, which
|
||
|
makes turtles zu very versatile geometrical objects.
|
||
|
|
||
|
- Fine control over turtle movement and screen updates via delay(),
|
||
|
and enhanced tracer() and speed() methods.
|
||
|
|
||
|
- Aliases for the most commonly used commands, like fd for forward etc.,
|
||
|
following the early Logo traditions. This reduces the boring work of
|
||
|
typing long sequences of commands, which often occur in a natural way
|
||
|
when kids try to program fancy pictures on their first encounter with
|
||
|
turtle graphcis.
|
||
|
|
||
|
- Turtles now have an undo()-method with configurable undo-buffer.
|
||
|
|
||
|
- Some simple commands/methods for creating event driven programs
|
||
|
(mouse-, key-, timer-events). Especially useful for programming games.
|
||
|
|
||
|
- A scrollable Canvas class. The default scrollable Canvas can be
|
||
|
extended interactively as needed while playing around with the turtle(s).
|
||
|
|
||
|
- A TurtleScreen class with methods controlling background color or
|
||
|
background image, window and canvas size and other properties of the
|
||
|
TurtleScreen.
|
||
|
|
||
|
- There is a method, setworldcoordinates(), to install a user defined
|
||
|
coordinate-system for the TurtleScreen.
|
||
|
|
||
|
- The implementation uses a 2-vector class named Vec2D, derived from tuple.
|
||
|
This class is public, so it can be imported by the application programmer,
|
||
|
which makes certain types of computations very natural and compact.
|
||
|
|
||
|
- Appearance of the TurtleScreen and the Turtles at startup/import can be
|
||
|
configured by means of a turtle.cfg configuration file.
|
||
|
The default configuration mimics the appearance of the old turtle module.
|
||
|
|
||
|
- If configured appropriately the module reads in docstrings from a docstring
|
||
|
dictionary in some different language, supplied separately and replaces
|
||
|
the english ones by those read in. There is a utility function
|
||
|
write_docstringdict() to write a dictionary with the original (english)
|
||
|
docstrings to disc, so it can serve as a template for translations.
|