lehrkraefte:snr:informatik:glf23:python:turtle

Turtle-Grafik

Turtle-Grafik meint, dass man mit einer “Turtle” (alias Schildkröte), die über den Bildschirm “läuft”, eine Zeichnung anfertigt. Man kann dieser Turtle Befehle wie “Gehe 100 Pixel vorwärts!” oder “Drehe dich um 30 Grad nach rechts!” geben. Die Turtle zeichnet mit einem Stift, den sie auf Befehl anhebt bzw. absenkt.

Der folgende Pseudocode lässt die Turtle ein Quadrat der Seitenlänge a = 100 zeichnen:

a = 100
Gehe um a Pixel vorwärts!
Drehe dich um 90 Grad nach links!
Gehe um a Pixel vorwärts!
Drehe dich um 90 Grad nach links!
Gehe um a Pixel vorwärts!
Drehe dich um 90 Grad nach links!
Gehe um a Pixel vorwärts!

Zeichne das Haus des Nikolaus ohne Abzusetzen auf ein Blatt Papier.

Übersetze deine Zeichnung in Pseudocode für die Turtle und schreibe diesen auf. Nimm dabei an, dass die Turtle anfangs nach rechts schaut.

Das folgende Programm vermittelt dir die wichtigsten Turtle-Befehle. Wenn du willst, kannst du es abspeichern und z. B. in Visual Studio Code laufen lassen.

turtle-grundbefehle.py
from turtle import *   # Importiert die Turtle-Befehle
a = 100
forward(a)
left(90)
pensize(10)
forward(3 * a)
right(90)
pencolor("blue")
forward(a)
left(90)
penup()
backward(3 * a)
pendown()
forward(2 * a)
exitonclick()    # Sorgt dafür, dass das Zeichenfenster nicht sofort nach dem Zeichnen geschlossen wird,
                 # sondern erst nach Anklicken des Zeichenfensters.

Schreibe nun ein neues Programm, das das Haus des Nikolaus mit Grundseite der Länge a zeichnet (ohne Abzusetzen soll jede Linie nur einmal gezeichnet werden).

Die Variable a soll am Anfang des Programms durch a = 100 definiert werden. Wenn man später den Wert der Variablen a verändert, soll sich die Grösse der Zeichnung entsprechend ändern!

Das Dach soll rot gezeichnet werden, der Rest in einer anderen Farbe deiner Wahl, die Stiftdicke soll 10 betragen.

Empfehlung: Speichere die Länge der Diagonalen in einer Variablen d.

Hinweis: Wie man Wurzel zwei in Python eingibt.

Hinweis: Wie man Wurzel zwei in Python eingibt.

Für eine genaue Zeichnung benötigst du $\sqrt{2}=2^{0.5}$, was du in Python per 2**0.5 erhältst.

Ergänze das folgende Programm so, dass ein n-Eck der Seitenlänge a gezeichnet wird.

Teste dein Programm, indem du die Werte von n und a änderst.

Hinweis

Hinweis

Verwende eine while-Schleife. In jedem Schleifendurchlauf wird eine Seite des $n$-Ecks gezeichnet und die Turtle dreht sich um den richtigen Winkel.

Hinweis zum Drehwinkel nach jeder Vorwärtsbewegung

Hinweis zum Drehwinkel nach jeder Vorwärtsbewegung

Um welchen Winkel hat sich die Turtle insgesamt gedreht, wenn sie das gesamte $n$-Eck gezeichnet hat und wie am Anfang ausgerichtet dasteht?

Antwort

Antwort

Einmal um die eigene Achse, also um $360^\circ$. Da sie sich $n$-mal um denselben Winkel gedreht hat, dreht sie sich nach

jeder Vorwärtsbewegung um …

jeder Vorwärtsbewegung um …

$\frac{360^\circ}n$

from turtle import *
n = 7
a = 100

Schreibe ein Python-Programm, das eine “quadratische Spirale” mit der Turtle zeichnet, und zwar von innen beginnend: Die kleinste Seite soll a lang sein, die Seitenlänge soll jeweils um 10 wachsen und es sollen anzahl Linien gezeichnet werden.

Beispielsweise soll für a = 30 und anzahl = 20 die folgende Zeichnung entstehen.

Hinweis

Hinweis

Verwende eine while-Schleife, die anzahl Mal durchlaufen wird. In jedem Schleifendurchlauf wird eine Linie der Länge a gezeichnet. Die Variable a ist so anzupassen, dass die Linienlänge jeweils um 10 grösser wird.

Du kannst auch das obige $n$-Eck-Programm (für $n=4$) geeignet veändern.

Bonus:

  • Kannst du am Ende die Gesamtlänge der gezeichneten Spirale ausgeben? (im normalen Terminal per print(…))
  • Ändere dein Programm so, dass die folgenden Bilder gezeichnet werden (“Sechseck-Spirale” und “leicht verdrehte” Version davon).

Bonus-Material

Male eine nette Zeichnung deiner Wahl mit der Turtle!

Male eine dreidimensionales Haus (des Nikolaus)!

Weitere Befehle (etwa setposition(), hideturtle(), showturtle(), write(…)) werden in der offiziellen Dokumentation der Turtle-Bibliothek erklärt: https://docs.python.org/3/library/turtle.html

Wem die Turtle zu langsam zeichnet: tracer(0, 0) vor allen Zeichnebefehlen, update() am Ende (oder zwischendurch) zum Anzeigen.

Welche Farbwörter man verwenden darf, findet man hier: https://www.tcl.tk/man/tcl8.4/TkCmd/colors.html

  • lehrkraefte/snr/informatik/glf23/python/turtle.txt
  • Last modified: 2023/11/08 09:35
  • by Olaf Schnürer