214
Mehr Schleifen: Friedenslogo, Superrosette
Kapitel
8
>
Führe folgende Änderungen aus: Füge vor dem Aufruf von
peace()
die Anweisung
tracer(False)
und danach die Anweisung
tracer(True)
ein!
reset()
tracer(False)
peace()
tracer(True)
>
Speichere das Programm und führe es aus!
Die Grafik ist augenblicklich da. Oft wirst du Grafiken entwickeln wollen,
die rasch gezeichnet werden sollen. Während der Entwicklung ist die lang-
same Ausführung durch die Turtle sehr hilfreich bei der Kontrolle, ob das
Programm richtig läuft, und bei der Fehlersuche. Sobald das Programm
aber fehlerfrei läuft, ist die Anwendung von
tracer()
sehr empfehlens-
wert. Wesentlich dabei ist, dass am Ende, wenn die Grafik vollständig ge-
zeichnet ist, ein
tracer(True)
-Aufruf gemacht wird. Speichere eine Ko-
pie des fertigen Programms unter
peace02.py
ab.
n-Ecke
Schleifen bieten den Vorteil, dass mit ihnen die Anzahl der Schleifendurch-
läufe variabel gestaltet werden kann. Wir haben jetzt die Möglichkeit,
eine
Funktion zu definieren, die folgende vier Figuren und noch viele mehr
zeichnen kann:
Alle diese Figuren sind regelmäßige n-Ecke (Vielecke, Polygone). In dieser
Bezeichnung steht n für eine positive ganze Zahl größer als 2. Die Zahl n
gibt die Anzahl der Ecken an. Das heißt, für n = 3, 4, 5, 6 usw. sind damit
regelmäßige Dreiecke, Vierecke, Fünfecke, Sechsecke usw. gemeint. Regel-
mäßig heißen Vielecke, deren Seiten und Winkel alle gleich groß sind.
Die Funktion
n_eck()
zeichnet verschieden
e
Polygone.
215
n-Ecke
Klar ist, auch aus unseren Erfahrungen mit Dreiecken, Vierecken usw. aus
früheren Kapiteln, dass sie durch eine Folge von
forward()
- und
left()
-
Anweisungen erzeugt werden können. Die Anzahl der Schleifendurchläufe
muss gleich der Anzahl der Ecken sein:
def n_eck(eckenzahl, seitenlaenge):
drehwinkel = ???
for i in range(eckenzahl):
forward(seitenlaenge)
left(drehwinkel)
Klar ist weiterhin, dass der Drehwinkel von der Anzahl der Ecken abhängt.
Wir müssen also herausfinden, wie wir diesen Drehwinkel aus n berechnen
können.
>
Wenn du eine Idee hast, welcher Ausdruck im obigen Listing für
Drehwinkel eingesetzt werden soll, probiere es aus! Experimentiere
ruhig ein bisschen herum.
>
Du kannst es aber auch stattdessen durch systematisches Überlegen
herausbekommen:
Wir hatten bisher:
Figur Anzahl der Ecken Drehwinkel der Turtle
Dreieck 3 120°
Quadrat 4 90°
Fünfeck 5 ???
Sechseck 6 60°
n-Eck n ???
>
Versuche herauszufinden, welcher Wert für den Drehwinkel in dieser
Tabelle für das Fünfeck einzutragen ist!
>
Überprüfe das Ergebnis deiner Überlegungen, indem du eine Funktion
schreibst, die ein Fünfeck zeichnet. Entsteht ein richtiges Fünfeck?
Wenn du den Weg der Turtle verfolgst, wirst du bemerken, dass sie am
Ende, nachdem sie sich bei jeder Ecke um den gleichen Winkel gedreht
hat, eine Drehung um volle 360° ausgeführt hat. Wenn du das nicht
glaubst, dann gehe selbst einen fünfeckigen Weg nach – zum Beispiel
auf einem Sportplatz oder auch in einem größeren Raum. Beobachte da-
bei, um wie viel du dich insgesamt gedreht hast.
216
Mehr Schleifen: Friedenslogo, Superrosette
Kapitel
8
Bestimmung des Drehwinkels der Turtle zur Zeichnung eines Fünfecks.
Damit ergibt sich
drehwinkel = 360/5
. (Die Division ergibt 72.0°.) Für
ein beliebiges anderes n-Eck muss in dieser Formel 5 durch die Eckenzahl
ersetzt werden. Also:
Fünfeck 5 72°
n-Eck n 360 / n
Damit ergibt sich die einzige noch unklare Anweisung der Funktion
n_eck
:
drehwinkel = 360 / eckenzahl
Wir wollen nun ein Modul mit Funktionen erstellen, die Figuren aus
n-Ecken zeichnen.
>
Öffne in der IDLE ein neues Editor-Fenster!
>
Schreibe einen Kopfkommentar und speichere unter dem Namen
n_eck_arbeit.py
ab!
>
Schreibe die Funktion
n_eck(eckenzahl, seitenlaenge)
!
>
Sichere das Programm, führe es aus und prüfe mit dem IPI durch eini-
ge Aufrufe der Funktion, ob sie korrekt arbeitet!

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

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.