Die Titelanimation besteht aus 200 Bildern, die nacheinander abgespielt werden, wie ein Film. Hier sehen Sie fünf Zwischenschritte:
Do Now!
Diskutieren Sie zu zweit: Wie könnte Code aufgebaut sein, um diesen wachsenden Mond herzustellen?
Lösungsvorschlag
- die Farbkonstanten des Himmels und des Mondes erstellen
- eine erste Funktion verfassen, die einen Mond vor einen Himmel zeichnet und diesen als eine Grafik zurückgibt
- eine zweite Funktion verfassen, die diese verschiedenen Mondbilder zu einer Grafikliste vereint und zurückgibt
- mit dem Ausgabebefehl show_animation die Grafikliste als Film abspielen
Farbkonstanten erstellen
Mondfunktion
Erstellen Sie eine Funktion, die einen Mond (Grösse mond_durchmesser
) vor einem Himmel (Grösse himmel_seite
) als Grafik zurückgibt. Die Beispielausgabe besteht aus 5 verschiedenen Mondgrafiken, wie oben dargestellt.
Filmfunktion
Erstellen Sie eine Funktion, die mit der Mondfunktion eine Liste von Mond-Grafiken zurückgibt. Dabei soll die Titelanimation entstehen.
Aufbau
- Filmfunktion, die eine Grösse entgegennimmt und eine Liste von Grafiken zurückgibt
-> list[Graphic]
- Akkumulator als leere Liste erstellen, z. B.
film
- in einer for-Schleife die Liste mit Grafiken vom wachsenden Mond füllen
- die Grafikliste zurückgeben
- mit show_animation die Filmfunktion aufrufen und erhaltene Grafikliste als Film abspielen
Argumente von show_animation
show_animation akzeptiert folgende drei Argumente:
- eine Grafikliste als
list[Graphic]
- die Anzeigedauer in Millisekunden als
int
- ein Wahrheitswert
bool
, der bestimmt, ob die Animation in einer Endlosschleife abgespielt wird (true
) oder nicht (false
).
Letztere zwei sind optional.
Do Now!
Ergänzen Sie oben bei
show_animation
die Anzeigedauer zu
80
. Wird der Film jetzt schneller oder langsamer? Weshalb?
Langsamer, die Anzeigedauer jedes Bildes hat sich verdoppelt: von 40 (Standardwert) auf 80 ms.
Do Now!
Fügen Sie nach 80 den Wahrheitswert
False
ein. Was verändert sich und weshalb?
Die Animation wiederholt sich jetzt nicht mehr endlos oft, sondern hört nach einer Iteration (Wiederholung) auf. Die Grafikliste wird also nur einmal abgespielt.
Toolbox
- Fügen Sie die Funktion
mond
Ihrer Toolbox hinzu, ohne die Funktion wachsender_mond
.
- Fügen Sie die Funktion
wachsender_mond
Ihrer Toolbox hinzu. Die Funktion mond
importieren Sie dazu aus Ihrer Toolbox.
Damit können Sie in folgenden Aktivitäten beide Funktionen separat verwenden, um weitere Mondbewegungen darzustellen.
Was Sie geübt und gelernt haben
Allgemein
- Sie können bestehende Programme sinnvoll abändern und erweitern.
- Sie können Probleme lösen, indem Sie diese in Teilprobleme zerlegen.
- Sie können Datentypen und -strukturen sinnvoll einsetzen.
- Sie können Funktionen in Ihre eigene Bibliothek aufnehmen.
Python
- Sie können Listen erstellen und Elemente, wenn sinnvoll mit Schleifen, einfügen.
- Sie können Funktionen in Schleifen mit verschiedenen Argumenten aufrufen, um sich leicht ändernde Elemente zu erstellen.
PyTamaro
- Sie kennen die Funktion show_animation und können sie verwenden, um Grafiken auf verschiedene Art zu animieren.
- Sie können die drei Parameter von show_animation verwenden, um die Geschwindigkeit und Wiederholung des Films zu ändern.
- Sie können eine Funktion, die eine andere Funktion benutzt, in die Toolbox aufnehmen.