Mit der Turtle-Bibliothek kann man ganz einfach Dinge auf den Bildschirm zeichnen. Zum Beispiel ein Quadrat:
Der Quellcode dazu sieht so aus:
import turtle
t=turtle.Pen()
t.width(3)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
t.forward(100)
t.left(90)
Code-Sprache: Python (python)
Ok, das zeichnet ein Quadrat. Aber vier Mal den gleichen Code-Schnipsel zu schreiben, das ist ineffektiv, also verkürzen wir das mit einer for-Schleife, die vier mal durchlaufen wird:
import turtle
t=turtle.Pen()
t.width(3)
for i in range(4):
t.forward(100)
t.left(90)
Code-Sprache: JavaScript (javascript)
Wenn man jetzt einen Fächer von Quadraten machen will, kann man ganz einfach die Schleife, die das Quadrat zeichnet, in eine weitere Schleife packen:
import turtle
t=turtle.Pen()
t.speed(50)
for j in range(31):
for i in range(4):
t.forward(100)
t.left(90)
t.left(3)
Code-Sprache: JavaScript (javascript)
Damit die verschiedenen Quadrate immer etwas versetzt gezeichnet werden, wird nach dem Zeichnen des Quadrats die Turtle um drei Grad nach Links gedreht. Um das ganze etwas zu beschleunigen, habe ich außerdem die Geschwindigkeit der Turtle mit t.speed(50) etwas hochgesetzt.
Wie wäre es mit einem ganzen Kreis?
Und jetzt animieren wir das Quadrat so dass es sich dreht. Dazu muss im Prinzip nur das vorherige Programm so abgeändert werden, dass es den Bildschirm nach jedem Bild löscht.
import turtle
from time import sleep
t=turtle.Pen()
t.speed(50)
t.hideturtle() # Versteckt die Turtle
turtle.tracer(0,0) # Verhindert, dass man das Zeichnen sieht
for j in range(360):
t.clear() # Löscht das Gezeichnete
for i in range(4):
t.forward(100)
t.left(90)
turtle.update() # Zeigt, was gezeichnet wurde
sleep(0.01) # Wartet eine Hundertstel Sekunde
t.left(1)
Code-Sprache: PHP (php)
Mit der Funktion tracer(0,0) der Bibliothek turtle schaltet man das „Zeichnen“ ab. Das heißt, man sieht nicht wie die Zeichnung entsteht, sie wird lediglich im Hintergrund gezeichnet, aber erst dann angezeigt, wenn man turtle.update() aufruft.
Die Funktion clear() der Turtle löscht alles, was diese Turtle bisher gezeichnet hat.
Das heißt, dieses Programm zeichnet ein Quadrat, zeigt es an, wartet kurz und löscht es dann wieder bevor es das nächste zeichnet. Es entsteht eine Abfolge von Standbildern, also eine Animation.