Phase 4 | Animationen durch Koordinatentransformationen
🪧 Worum geht es in dieser Phase?
Jetzt gehen wir den trickreicheren Weg bei Animationen: Und zwar transformieren wir das Koordinatensystem! Es gibt drei Transformationen, mit denen wir uns beschäftigen:
- Translation (Verschiebung)
- Rotation (Drehung)
- Skalierung (Vergrößerung/Verkleinerung)
Dazu werdet ihr in drei Gruppen arbeiten und euch anschließend eure Ergebnisse vorstellen. Hier findet ihr ein Beispielprogramm, um euch das Koordinatensystem anzeigen zu lassen.
Zum Zeichnen des Koordiantensystems verwende den Befehl drawGrid(0)
.
🌱 Gruppe 1: Translation (Verschiebung)
- 👥👥 Verwende den Befehl
translate(50, 50)
mit verschiedenen Parametern, in einem Beispielprogramm deiner Wahl. - 👥👥 Verwende den Befehl
translate(mouseX, mouseY)
, um ein Quadrat an die aktuelle Position des Mauszeigers zu zeichnen.
🌱 Gruppe 2: Rotation (Drehung)
- 👥👥 Verwende den Befehl
rotate(radians(45))
mit verschiedenen Parametern. - 👥👥 Schaffst du es, ein Objekt im Kreis drehen zu lassen. Tipp: Verwendet eine Variable, um den aktuellen Drehwinkel zu speichern.
- 👥👥 In der Besprechung werden wir über Grad- und Bogenmaß sprechen. Vielleicht findest du schon heraus, was es damit auf sich hat. Vergleiche etwa die Befehle
rotate(radians(90))
undrotate(PI/2)
.
🌱 Gruppe 3: Skalierung (Vergrößerung/Verkleinerung)
- 👥👥 Verwende den Befehl `scale(2)'' mit verschiedenen Parametern.
- 👥👥 Schaffst du es, ein Objekt stetig größer (oder kleiner oder beides) werden zu lassen?
- 👥👥 Teste und vergleiche die Befehle
scale(2, 1)
mitscale(1, 2)
.
„Da die Skalierung vom Ursprung ausgeht, verschiebt sich das Objekt auch, wenn es nicht direkt auf dem Ursprung liegt.“ (Kipp)
Sobald draw()
beendet ist, wird das Koordinatensystem wieder an seinen „normalen“ Platz gestellt mit (0,0) in der linken, oberen Ecke. D.h. das Bild sitzt also wieder bündig in seinem Rahmen, wenn draw()
neu startet.
:::
Übungsaufgaben
Für die folgenden Übungsaufgaben könnt ihr dieses GeoGebra-Applet zur Hilfe nehmen:
-
👤 Fingerübung 1: https://michaelkipp.de/processing/transformationen.html#sec_10_1_1
-
👤 Fingerübung 2: Fingerübungen 2: https://michaelkipp.de/processing/transformationen.html#sec_10_2_7
-
👤 Fingerübung 3: Knifflige Übungsaufgaben: https://michaelkipp.de/processing/transformationen.html#sec_10_2_8
-
👤 Erweitere das Rotorblattprogramm um die fehlenden Rotorblätter: https://editor.p5js.org/f.fiebig/sketches/Df1DSV3Mt
:::