In dieser Aufgabe geht es darum, eine erste spaßige Erfahrung mit Python-Modulen zu machen. Vor allem geht es darum, zu üben, wie man sich in Dokumentationen einarbeitet. Dazu schauen wir uns das Modul turtle
an, mit dem man relativ einfach Muster zeichnen kann. Um auf der VM turtle
zu nutzen, müsst ihr zusätzlich das Packet python3-tk
installieren (mit sudo apt install python3-tk
). Danach könnt ihr turtle
in Python ganz einfach mit import turtle
in euer Projekt importieren.
Story: Meister Pyoogway hat eine Weisheit erlangt. Anstatt wie jedes andere Tier mit Pinsel und Papier zu zeichnen (langweilig), befestigt man eine Hacke am Hinterteil und läuft dann auf einem großen Feld hin und her (viel cooler). Damit dabei sinnvolle Zeichnungen entstehen, befolgt man spezielle Laufalgorithmen. Hilf Meister Pyoogway, den Leuten im Tal des Pythons von dieser Technik zu überzeugen, indem du ihm passende Algorithmen schreibst!
Zunächst müssen Sie sich in turtle
einarbeiten. Die offizielle Dokumentation finden Sie hier. Beantworten Sie folgende Fragen:
turtle
?forward
backward
right
left
circle
up
down
color("green")
shape("turtle")
Entwickeln Sie nun Methoden, um die unten gelisteten Muster zu zeichnen. Die Größe der Muster soll mit passenden Parametern einstellbar sein:
Füllen Sie die Muster mit Farbe! Dazu benötigen Sie weitere Methoden - schauen Sie in die Dokumentation!
Zeichnen Sie zusätzlich folgende Muster:
Diese folgenden Muster sind extrem schwer und wurden nur inkludiert um zu zeigen, was man so abgespactes zeichnen kann mit (rekursiven) Algorithmen.
Schreiben Sie ein Programm, mit dem man die Schildkröte zur Laufzeit steuern kann.
Ein Quadrat lässt sich ganz einfach zeichnen:
import turtle as t
def draw_square(length):
# Zeichne vier Seiten die...
for i in range(4):
# ... jeweils 'length' lang und
t.forward(length)
# und orthogonal zueinander sind
t.right(90)
Wenn man ein Quadrat zeichnen kann, kann man ganz einfach auch ein Würfel zeichnen (Man braucht den guten alten Pythagoras (und somit einen Weg, um eine Quadratwurzel zu berechnen: from math import sqrt
(Wow, zwei Module in einem Projekt!))).
Überlegen Sie sich beim gleichseitigen Dreieck, wie das noch mal mit den Winkel war.
Für den Smily benötigen Sie die circle
Methode.
Für das Herz lässt sich die circle
Methode auch nutzen oder man implementiert eine 2-D Herzfunktion (siehe https://mathworld.wolfram.com/HeartCurve.html) und lässt die Schildkröte mittels der Methode setpos
von Punkt zu Punkt springen (definitiv cooler und meiner Meinung nach sogar einfacher).
Sie können dazu die input
Methode verwenden.