
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?forwardbackwardrightleftcircleupdowncolor("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.