Grafiti Zum Inhaltsverzeichnis Zum Index
2D-Transformationen
Skalierung
Mathematik
Vorherige Seite Nächste Seite
Trennlinie

Mathematik

 
 
Die Skalierung etwas konkreter

Im letzten Abschnitt hast Du gesehen, wie einfach die Skalierung auf einen oder mehrere, durch eine Linie verbundene, Punkte angewendet werden kann.

Dein Wissen darüber soll jetzt noch durch die zugehörige Formelschreibweise vertieft werden. Dadurch bekommst Du die Möglichkeit, die Skalierung auch mathematisch anzuwenden. Du hast gesehen, daß Du die Dehnung oder Stauchung einer Linie einfach erreichst, in dem Du zu den x- und y-Werten der beiden zugehörigen Punkte einfach einen Faktor hinzumultiplizierst. In einfacher Formelschreibweise sieht das so aus:

Skalierungs-Punkte und Funktion

Du betrachtest dabei die x- und y-Werte des Punktes separat und multiplizierst zu jedem den entsprechenden Faktor der Dehnung oder Stauchung (je nachdem welches Vorzeichen Du wählst). Zur Vereinfachung (und nicht nur in der Schreibweise) kannst Du den Punkt auch als Vektor ausdrücken, so wie daß schon bei der Translation eingeführt wurde.

Skalierungs - Matrizen

Die Punkte P und sollten Dir in dieser Darstellung eigentlich klar sein. Neu ist die Darstellung der Skalierungsfaktoren in einer Matrix. Ein Spaltenvektor reicht hier nicht mehr aus, da wir eine Multiplikation auf die Punkte ausführen. Diese Matrix wird auch Skalierungsfunktion genannt. Die Parameter sind die beiden Skalierungsfaktoren und der Punktvektor. Wenn Du die einzelnen Vektoren jetzt nach folgender Formel zusammenstellst,

Skalierungs - Gleichung

bekommst Du praktisch die gleiche Darstellung wie in den beiden Gleichungen weiter oben. Zur Verdeutlichung solltest Du den neuen Punkt einfach mal ausrechnen. Da Du die Matrix mit einem Spaltenvektor multiplizierst, muß auch wieder ein Spaltenvektor herauskommen.  

 
 
Wie gehts jetzt weiter?

Wie Du im Abschnitt über die Komposition von Transformationen noch nachlesen kannst, wird es bei der jetzigen Darstellung der Skalierung zu Problemen kommen. Die Translation und Rotation führen in der Darstellung mit homogenen Koordinaten eine Multiplikation auf einer 3×3-Matrix aus, während die Skalierung mit einer 2×2-Matrix auskommt. Wenn wir die drei Transformationen miteinander kombinieren wollen, ist eine einheitliche Darstellung hilfreich und später auch einfacher auszuführen.  

 
 
Benutzung von homogenen Koordinaten bei der Skalierung

Du solltest Dich vor dem Weiterlesen kurz mit homogenen Koordinaten beschäftigen. Es ist für das erste Anwenden nicht unbedingt erforderlich, aber sehr wichtig, daß Du dieses Prinzip verstanden hast. Das Ziel dieses Abschnittes ist die Skalierung auf eine Matrizenmultiplikation mit einer 3×3-Matrix zurückzuführen. Bisher haben wir immer nur zweielementige Spaltenvektoren und die 2×2-Skalierungsmatrix betrachtet. Um die Skalierung als Multiplikation mit einer 3×3-Matrix auszudrücken geht man wie folgt vor: Der Originalpunkt als Spaltenvektor wird nach den Regeln der homogenen Koordinaten um einen Parameter erweitert. Dieser Parameter behält stets den Wert eins. Du kannst den neuen Vektor jetzt mit der Matrix multiplizieren und wirst feststellen, daß der neue Punkt nicht mehr den dritten Parameter gleich eins hat.

Der Vorgang muß noch fortgesetzt werden und die Skalierungsmatrix geschickt zu einer 3×3-Matrix erweitert werden, die weiterhin noch die Skalierungsfaktoren sx und sy enthält, aber zusätzlich noch redundante Informationen. Wenn Du Dir die Regeln der Matrizenmultiplikation ansiehst stellst Du leicht fest, an welcher Stelle noch eine zusätzliche eins eingesetzt werden muß. An die restlichen Stellen kann eine null gesetzt werden, ohne das Ergebnis zu beeinflussen. Das Resultat sollte dann folgende Funktion sein:

Skalierungs - Funktion

Diese Matrix bezeichnet man als Skalierungssfunktion. Zum Verständnis kannst Du ja mal versuchen, ob es noch andere Möglichkeiten gibt aus einem dreielementigen Spaltenvektor multipliziert mit einer beliebigen Matrix wieder einen Spaltenvektor zu bekommen, der den Regeln der homogenen Koordinaten entspricht. Mit Hilfe der Skalierungssfunktion können wir jetzt die Skalierung durch eine Multiplikation mit einer 3×3-Matrix ausdrücken.

Skalierungs - Gleichung

Skalierungs - Matrix

Damit haben wir unser Ziel schon erreicht. Wenn Du das Ergebnis mit den Matrizen der Translation und Rotation vergleichst und Dir noch den Abschnitt über die Komposition von Transformationen ansieht, stellst Du fest welche Vorteile diese Darstellungsart hat. Der Aufwand zur Berechnung eines einzelnen Punktes macht so natürlich wenig Sinn und man würde die einfache Multiplikation vorziehen, aber im Gesamtkonzept bei Anwendung von mehreren Transformationen bringt sie Geschwindigkeitsvorteile in der Berechnung.  

 
 
Ausblick

Auf der nächsten Seite kannst Du die Skalierung an einem Applet ausprobieren. Wenn Du Dir die Translation und Rotation schon angeschaut hast, wird Dir der Aufbau bekannt sein. Die wichtigsten Formeln und die Skalierungsfunktion werden jeweils ausgegeben, so daß Du Dir die Mathematik jetzt nicht sofort merken und nicht immer auf diese Seite zurückspringen mußt.  


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

Letzte Änderung 20. Januar 2001 © Copyright Palle Klante