Die Funktion getview berechnet aus den Mausinformationen die
Transformationsmatrix. Aus den Mauskoordinaten x und y
wird die Rotationsmatrix berechnet; mit der linken und rechten
Maustaste wird die Distanz zum Objekt und somit auch die Translationsmatrix
verändert (Siehe dazu Formel (1.12) in Abschnitt
1.3.1 auf Seite
).
Wir sehen, dass der Rotationsteil gerade dem linken oberen 3x3 Teil der
Transformationsmatix und die z-Distanz zum Weltnullpunkt dem Element
(3,4) entspricht. Somit muss die Matrixmultiplikation von Rotations-
und Transformationsmatrix nicht explizit durchgefüht werden; es
genügt, die einzelnen Elemente zusammenzufügen.
An dieser Stelle soll nochmals speziell auf die vielleicht eher ungewöhliche Schreibweise der Matrixdarstellung (5.1) hingewiesen werden, welche in der Implementation benützt wurde.
Die erste Form (5.1) lässt sich durch Transponieren in die zweite (5.2) überführen. Dabei werden folgende Grundregeln (5.3) der linearen Algebra benützt, welche sich beliebig erweitern lassen (5.4):
Zum einlesen der Mausinformationen werden folgende SRGP-Funktionen benützt:
Abbildung 5.9 zeigt den Pseudocode der Funktion.
27
Abbildung 5.9: Pseudocode der Funktion getview