70
Was Schildkröten mit Grafik zu tun haben: Turtle-Grafik
Kapitel
2
Es müssen nicht immer Ecken sein
Unsere Turtle kann auch Kreise (oder auch nur Teile davon) zeichnen:
>
Mach mit:
>>> clear()
Dies löscht alle Zeichnungen der Turtle, ohne ihre Lage zu verändern!
>>> forward(60) # Die Feder ist noch oben!
>>> pendown()
>>> circle(60)
Aha! Die Turtle zeichnet einen Kreis, nach links (im Gegenuhrzeigersinn).
Der Radius des Kreises ist 60. Der Mittelpunkt des Kreises liegt links von der
Turtle. Hast du den »Call-Tipp« beachtet und bemerkt, dass die Funktion
circle()
auch mehr als ein Argument übernehmen kann?
Call-Tipp für die Funktion
circle
()
.
Das zweite Argument beschreibt die »Ausdehnung« des Kreisbogens, der
gezeichnet werden soll, durch einen Winkel. 180° entspricht daher einem
Halbkreis:
>>> circle(80, 180)
Kürzere Kreisbögen sind auch kein Problem:
>>> reset(); pensize(3)
>>> circle(80,60); penup(); circle(80,60); pendown()
>>> circle(80,60); penup(); circle(80,60); pendown()
>>> circle(80,60); penup(); circle(80,60); pendown()
Damit ist es auch leicht, Kreisausschnitte (Kreissektoren)
zu zeichnen, wenn man weiß, dass die Kreisradien bei
einem Kreissektor immer senkrecht auf den Bogen
stehen. Das Argument, das man für
extent
einsetzen
muss, ist der Winkel im Kreismittelpunkt. In unserem
Beispiel ist das 60°.
Die Turtle nach zwei Kreisbögen.
71
Es müssen nicht immer Ecken sein
>
Mach mit!
>>> reset()
>>> right(90)
>>> forward(100)
>>> left(90)
>>> circle(100,60)
>>> left(90)
>>> forward(100)
>>> left(120)
Überlege: wie bestimmt man den Winkel im letzten
left()
-Aufruf? Er hängt wohl mit der Größe des Winkels
im Kreissektor, also mit dem zweiten Argument
extent
im
circle()
-Aufruf (5. Zeile) zusammen?
Die Turtle kann mit der Funktion
circle()
auch Kreise
zeichnen, die nach der anderen Seite gebogen sind. Dazu
muss der Radius negativ gewählt werden:
>
Mach mit!
>>> reset()
>>> pensize(3)
>>> circle(80)
>>> circle(-80)
>>> pensize(5)
>>> circle(40)
>>> circle(-40)
>>> pensize(7)
>>> circle(120, 75)
>>> pu()
>>> circle(120, -75)
>>> pd()
>>> circle(-120, 75)
>>> pu()
>>> circle(-120, -75)
>>> back(100)
Wenn du für Zeichnungen dieser Art auch noch Farben zum Zeichnen und
Füllen verwendest, kann schon wieder eine sehr nette Grafik entstehen.
Ach, du möchtest noch wissen, was
pu()
bedeutet? Verwende
>>> help(pu)
Kreissektor: Wie groß ist der Winke
l
für die letzte Drehung der Turtle
?

Get Python für Kids now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.