Erscheinen und verblassen

Folgende Animation besteht aus 100 Bildern, die nacheinander abgespielt werden, wie ein Film.

opacity

Eine Form immer gleicher Form und Grösse wird langsam sichtbar:

Hier sehen Sie fünf mögliche Zwischenschritte:

basic0basic0basic0basic0basic0

Zwei Dreiecke überlagern sich teilweise, um einen Stern darzustellen. Deshalb verändert sich die Opazität (Undurchsichtigkeit) des Sterns ungleichförmig (heterogen).

Dekomposition / Arbeitsschritte

  1. die (Farb-) Konstanten erstellen
  2. eine erste Funktion verfassen, die die Figur im momentanen Zustand zeichnet und diese als immer gleichgrosse Grafik zurückgibt, also eigentlich die einzelnen Frames eines Films
  3. eine zweite Funktion verfassen, die diese Figurpositionen (oder -konfigurationen) zu einer Liste von Grafiken vereint und zurückgibt
  4. mit dem Ausgabebefehl show_animation die Grafikliste als Film abspielen

1. Konstanten

Loading...

1.a Opazität: Exkurs

Opazität bedeutet Undurchsichtigkeit, sie ist also das Gegenteil von Transparenz.

Jede Farbfunktion in PyTamaro bietet mit dem letzten Parameter eine optionale (freiwillige und oft versteckte) Möglichkeit, die Farbopazität darzustellen: rgb_color, hsl_color und hsv_color.

  • Englisch: opacity – (alpha) of the color, where 0 means fully transparent and 1 fully opaque. By default, all colors are fully opaque.
  • Deutsch: opazitaet - die Undurchsichtigkeit (alpha), wobei 0 komplett durchsichtig und 1 komplett undurchsichtig entspricht. Standardmässig sind alle Farben vollständig undurchsichtig.

Dank der Opazität kann man

  • in einem Film Formen erscheinen und verschwinden lassen (wie in der Titelanimation),
  • einen Farbfilter über (einen Teil anderer Figuren) legen
  • eine Hintergrundfigur durch eine teil-opake Vordergrundfigur durchscheinen lassen

Beispiel

Loading...

Aufgabe

Legen Sie die dreieck_reihe vor ein weisses, ein schwarzes und ein grünes Rechteck (Breite = 300, Höhe = 100) und geben Sie diese Grafiken aus.

Loading...
show_graphic(overlay(dreieck_reihe, rectangle(300, 100, white)))
show_graphic(overlay(dreieck_reihe, rectangle(300, 100, green)))

Bei den transparent(er)en Dreiecken schimmert die Farbe des Hintergrundes durch, deshalb erscheinen die Figuren mit einem tieferen Opazitätswert heller, dunkler, grüner, grauer etc.

2. Einzelne Frames

Aufgabe

Ergänzen Sie folgende Funktion, so dass genau die Bilder aus der Tabelle (für die Titelgrafik) ausgegeben werden. op gibt Opacity an.

Loading...

Toolbox

Fügen Sie die Funktion Ihrer Toolbox hinzu.

3. Filmfunktion

Erstellen Sie eine neue Filmfunktion, die 100 Bilder oder Versionen der Figur erstellt und diese in eine Liste von Grafiken einfügt. Diese Liste von Grafiken ist der Rückgabewert der Filmfunktion. So kann dann die Liste von Grafiken als Titelanimation abgespielt werden. (Spicken Sie so wenig wie nötig bei der Funktion vom wachsenden Mond.)

Aufbau

  1. Filmfunktion, die eine Grösse entgegennimmt und eine Liste von Grafiken zurückgibt -> list[Graphic]
    1. Akkumulator als leere Liste erstellen, z. B. film oder frame_liste
    2. in einer for-Schleife die Liste mit den Grafiken der sich bewegenden Figur füllen
    3. die Grafikliste zurückgeben
  2. mit show_animation die Filmfunktion aufrufen und erhaltene Grafikliste als Film abspielen
Loading...

Umkehren

Sie kennen das Konzept [start:stop:step] nun schon von Strings und der range(start,stop,step)-Funktion. Man kann das in Python auch auf Listen anwenden. Praktischerweise können Sie sich damit wieder ganz viel Mühe ersparen, denn mit Slicings kann man die Filmfunktion aufrufen und die Ausgabe kurzerhand mit [::-1] umkehren.

umgekehrte_liste = erstelle_eine_liste(40, 2, magenta)[::-1]

Aufgabe

Ergänzen Sie folgende Zelle, um den Film rückwärts darzustellen.

Loading...

Listen konkatenieren

Listen können Sie auch mit + aneinanderhängen, Fachbegriff konkatenieren:

Loading...

Zwei Filme konkatenieren

Aufgabe

Erstellen Sie mittels Konkatenation folgende Animation:

film_konkateniert

Verwenden Sie die Funktion wieder, die einen Film erstellt. Sie müssen also nur 1-3 Zeilen Code schreiben.

Loading...

Toolbox

Fügen Sie auch diese Funktion Ihrer Toolbox hinzu.

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 in Schleifen neue Elemente hinzufügen.
  • Sie können Funktionen in Schleifen mit verschieden Argumenten, z. B. opacity für die Funktion rgb_color, aufrufen, um sich leicht ändernde Elemente zu erstellen.
  • Sie können Listen umkehren und konkatenieren.

PyTamaro

  • Sie können show_animation verwenden, um Listen von Grafiken als Animation auszugeben.

This activity has been created by Gall and is licensed under CC BY-SA 4.0.

Erscheinen und verblassen

Logo of PyTamaro

PyTamaro is a project created by the Lugano Computing Education Research Lab at the Software Institute of USI

Privacy PolicyPlatform Version 6ce8f936 (Mon, 01 Jun 2026 10:33:56 GMT)