Grafiti Zum Inhaltsverzeichnis Zum Index
2D-Transformationen
Komposition von Transformationen
Beispiele
Vorherige Seite Nächste Seite
Trennlinie

Beispiele

 
 
Komposition von Transformationen untereinander

Die Mathematik und Funktionsweise der einzelnen Transformationen sollte Dir bekannt sein, bevor Du weiterliest. Im folgenden soll die Komposition der Transformationen untereinander eingeführt werden. Anhand von zwei Beispielen wirst Du die Rotation und Skalierung um, bzw. an einem beliebigen Punkt kennenlernen. Anschließend kannst Du Deine Erkenntnisse an einem Applet ausprobieren und Deine Überlegungen überprüfen.  

 
 
1. Beispiel: Rotation um einen beliebigen Punkt

Zeichnung - TRT

 

Bisher wurde die Rotation immer mit dem Ursprung des Koordinatensystems als Mittelpunkt ausgeführt. Das ist nicht besonders hilfreich, wenn man ein Objekt um seinen eigenen Mittelpunkt drehen möchte.

Durch die zusammengesetzten Transformationen können wir das Ziel aber trotzdem mit dem bisher Erlernten erreichen: Die Rotation wird einfach um zwei Translationen erweitert. Sie werden folgendermaßen kombiniert:

Matrix Translation-Rotation-Translation

Wie im Abschnitt vorher, mußt Du nur die Matrizen aufstellen

Matrix Translation-Rotation-Translation

und ausmultiplizieren.

Matrix Translation-Rotation-Translation

Der Grundgedanke ist recht simpel. Wir verschieben das Objekt, in diesem Fall ein Haus, und legen den gewünschten Drehmittelpunkt auf den Ursprung des Koordinatensystems. Nach der Drehung wird das Haus mit den gleichen Werte, aber umgekehrten Vorzeichen, zurückgeschoben. Dadurch kann um jeden beliebigen Punkt gedreht werden.

Um das Haus um den eigenen Mittelpunkt zu drehen, muß dieser nur noch gefunden werden. Im oberen Beispiel drehen wir um den unteren linken Punkt. Der Punkt ist gesetzt durch ein Tupel (x,y). Willst Du jetzt das Haus um diesen Punkt drehen, mußt Du die Werte nur in die Translationsvariable übernehmen und jeweils das Vorzeichen wechseln.  

 
 
2. Beispiel: Skalierung als reine Größenänderung eines Objekts

Die Skalierung kann auch als reine Größenveränderung benutzt werden. Der Bezugspunkt, nämlich der Ursprung des Koordinatensystems bleibt hier erhalten. Wir verschieben unser Haus aber in diesen Ursprung, damit wir bei der anschließenden Skalierung wirklich nur eine Größenänderung bekommen und der lästige Effekt des unkontrollierten Verschiebens verschwindet. Wir gehen wie folgt vor: Wir schieben das Haus in den Ursprung und skalieren dann. Anschließend schieben wir es mit den gleichen Werten zurück:

Matrix Translation-Skalierung-Translation

Das Ergebnis folgender Matrizenmultiplikation,

Matrix Translation-Skalierung-Translation

ist eine Skalierungsfunktion, die es ermöglicht ein Objekt in seiner Größe zu verändern ohne dabei die Position zu verändern. Objekte können an der gleichen Position wachsen oder schrumpfen.

Matrix Translation-Skalierung-Translation

Probiere das am Applet auf der nächsten Seite aus. Teste mal, ob das auch gehen würde, wenn Du die Transformationen nicht zusammengesetzt hättest, sondern die Skalierung allein ausgeführt hättest.  

 
 
Ausblick

Auf der nächsten Seite kannst Du das eben Gelesene an einem Applet ausprobieren. Mach Dir dabei auch Gedanken über mögliche andere sinnvolle Kombinationen und solche bei denen Probleme in der Reihenfolge auftauchen können. Anschließend wird noch ein Anwendungsfall gezeigt. Der Wechsel von Weltkoordinaten zu Bildschirmkoordinaten.  


Trennlinie
Abteilung Computergrafik und Softwareergonomie Zum Seitenanfang Vorherige Seite Nächste Seite

Letzte Änderung 20. Januar 2001 © Copyright Palle Klante