Python A-Trutle is a library that implements Turtle Graphics with asyncio support.
A short capability summary:
- Supports both sync and asyncio compatible coroutine API.
- Multiple turtle support with either vector or bitmap shapes.
- Concurrent animation support via the coroutine API.
- Built on top of the Standard Library's
tkinter
module. - Sprite support (essentially turtles that don't draw lines)
- More.
Python A-Turtle is a pure Python package distributed via PyPI. Install it with:
$ pip install aturtle
For improved bitmap image rotation speed and quality, install the optional Pillow extra with:
$ pip install aturtle[pillow]
import aturtle
w = aturtle.Window()
sh = aturtle.shapes.vector.Triangle(radius=20, angle=0)
s = aturtle.create_sprite(w, sh, update=True)
t = aturtle.turtle.Turtle(s)
t.sync_forward(100)
- To the creators and maintainers of Tcl/Tk, a programming language I used for a while in the late 1990's, in particular for the seriously under-appreciated Canvas widget which is amazingly powerful. Python embeds the Tcl/Tk interpreter in the form of the tkinter Standard Library module. Long live Tcl/Tk and tkinter!
- To whoever Quarks is, for sharing an effective technique for debouncing Tk KeyPress / KeyRelease events in towards the end of this thread.
- To Terry Pratchet, for his Discworld novels and, in particular, for Great A'Tuin, the "Giant Star Turtle (...) who travels through the Discworld universe's space, carrying four giant elephants (...) who in turn carry the Discworld.", which has come to my mind often while creating this.
Python A-Turtle is being created by Tiago Montes.