Turtle-Roboter und Turtle-Grafiken kommen schon eine Weile erfolgreich zum Einsatz bei Erlernen der Programmstrukturen. Der Vorteil ist: man sieht in Echtzeit wie der geschriebene Code ausgefĂĽhrt wird und was das Ergebnis davon ist.
Idee
Eine Turtle ist ein Objekt auf dem Bildschirm. Dieses befindet sich an einem bestimmten Punkt und guckt in eine bestimmte Richtung.
Mit Befehlen können wir nun diese Turtle steuern: «fahre vorwärts», «drehe dich 90° nach rechts», …
Dabei hinterlässt die Turtle eine Linie auf dem Bildschirm.
So kann man einfache und auch ziemlich komplexe Grafiken erstellen. Je nach Turtle-Implementation stehen weitere Befehle zur VerfĂĽgung.
Beispiel
from turtle import *
fillcolor("#ffdd00")
begin_fill()
circle(100)
end_fill()
left(90)
penup()
forward(50)
right(90)
pendown()
pensize(6)
pencolor("#cc0022")
circle(60, 40)
right(180)
circle(-60, 80)
right(180)
circle(60, 40)
left(90)
pensize(1)
pencolor("black")
penup()
forward(100)
left(90)
forward(35)
pendown()
fillcolor("black")
begin_fill()
circle(20)
penup()
left(180)
forward(70)
pendown()
circle(-20)
end_fill()
hideturtle()
done()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
- Zeile 1
- Zuerst mĂĽssen wir sicherstellen, dass Python die Befehle der Turtle kennt. Dazu importieren wir alles aus dem
turtle
-Package. - Dazwischen
- Fahren und Zeichnen
- Zeile 38
- Um das System zu entlasten, sagen wir der Turtle mit
done()
, wann fertiggezeichnet ist.
Aufgabe
- Kopiere das obenstehende Beispiel fĂĽge es im Thonny in eine neue Datei ein.
- Speichere die Datei als turtle_beispiel.py ab
- Starte das Programm
- Versuche die Befehle zu verstehen
- Lies in der untenstehenden Tabelle nach, was die Befehle genau machen
Befehle
Befehl | Argument | Beschreibung |
---|---|---|
forward(d) | Distanz d | Bewegt die Turtle eine bestimmte Distanz vorwärts |
backward(d) | Distanz d | Bewegt die Turtle eine bestimmte Distanz rückwärts |
distance(x,y) | Punkt x,y | Berechne die Distanz der Turtle zum Punkt (x,y) |
right(w) | Winkel w | Dreht die Turtle im Uhrzeigersinn um einen bestimmten Winkel |
left(w) | Winkel w | Dreht die Turtle im Gegenuhrzeigersinn um einen bestimmten Winkel |
penup() | – | Zieht den Stift ein (ab jetzt zeichnet die Turtle nicht mehr) |
pendown() | – | Fährt den Stift aus (ab jetzt zeichnet die Turtle wieder) |
pencolor(c) | Farbe c | Farbe der Turtle zum Zeichnen des Strichs setzen |
fillcolor(c) | Farbe c | Farbe zum AusfĂĽllen eines Vielecks setzen |
goto(x,y) | Punkt x,y | Bewege die Turtle zum Punkt (x,y) |
begin_fill() | – | Den Startpunkt merken für ein gefülltes Vieleck |
end_fill() | – | Das Vieleck schliessen und ausfüllen |
shape(f) | Form f | Entweder 'arrow' , 'classic' , 'turtle' oder 'circle' |
hideturtle() | – | Versteckt die Turtle |
showturtle(f) | – | Zeigt die Turtle wieder an |
speed(s) | Geschwindigkeit s | Legt die Zeichnungsgeschwindigkeit fest |
circle(r) circle(r, w) | Radius r, [Winkel w] | Zeichnet Kreisbogen. Radius kann auch negativ sein, optionaler Winkel fĂĽr Kreisbogen (Standard: 360 Grad) |
xcor() | – | Liefert die aktuelle x-Koordinate der Turtle |
ycor() | – | Liefert die aktuelle y-Koordinate der Turtle |