zurück

Drehung um eine Achse

Der VRML Befehl

rotation v1 v2 v3 phi , für den Punkt x = ( x1, x2, x3 )

erfordert eine 3x3 Matrix.Wie errechnet man am einfachsten diese Matrix.
Ein beliebiger Punkt x kann man - zu einem Vektor v - in zwei Komponenten zerlegen:
a) die gleichlaufende Komponente: k1 = ( vvT / v² ) * x
b) die orthogonale Komponente: k2 = ( I - vvT / v² ) * x
Die gleichlaufende Komponente ändert sich bei der Drehung nicht. Die orthogonalen Komponente, und das Vektorprodukt von v mit x, spannen ein zwei-dimensionales Koordinatensystem auf. Es reicht dann, wenn man die Drehung in diesem Koordinatensystem ausführt.

Vektorprodukt ( v ( normiert ), x ) = Bi * x

Bi der Bivektor von vn. vn = v-normiert; damit die beiden Koordinatenachsen gleich lang sind oder, gleichbedeutend, die Matrix nicht von der Länge von v abhängt.

x' = ( vvT / v² + cosinus ( phi ) * ( I - vvT / v² ) + sinus( phi ) * Bi ) * x

Fertig ist die Matrix. Dieses Ergebnis ist auch als Rodrigues-Formel bekannt.
Warum ist der Sinus positiv? Die Projektion von x auf die Orthogonal-Ebene entspricht der X-Achse des Koordinatensystems. Nur diese wird gedreht. Von der üblichen zwei-dimensionalen Drehmatrix wird also nur die erste Spalte benutzt (y=0).
So auch erhält man eine unitäre Matrix mit mehr Dimensionen aber nur einen Winkel (phi):

U = vvT / v² + e i * phi * ( I - vvT / v² )

Allgemein kann man komplex symmetrische unitäre Matrix mit reellen orthogonalen Eigenvektoren konstruieren mit

Q i = v i * v iT / vi² , z i = e i * phi i , i = 1 ... k, k<=n
U = z 1 * Q 1 + ... z k * Q k + ( I - Q 1 - ... Q k ) = I + ( z 1 - 1 ) * Q 1 + ... ( z k -1 ) * Q k

Die Vektoren vi müssen zueinander orthogonal sein.
Für (komplex-) symmetrische Matrizen gilt: Haben alle Eigenwerte den Betrag eins, so ist die Matrix unitär, da Produkte unitärer Matrizen unitär bleiben.
Anmerkung:
Bekannt ist die Matrix I - 2vvT / v² : Die Spiegelung an der Orthogonalebene von v.
Die orthogonale Komponente bleibt unverändert, die gleichlaufende geht in die entgegengesetzte Richtung.
Anmerkung 2:
M * MT = I, rechnet man nach, fällt auf: Bi2 = - ( I - vvT / v² )
Matrizenmultiplikation:
Ein Skalarprodukt ( vTw ) oder das dyadische Produkt ( vwT ) lässt sich als Matrix-Produkt schreiben. Bei einem Matrix-Produkt muss die Spaltenzahl der ersten Matrix mit der der Zeilenanzahl zweiten Matrix übereinstimmen. Das Ergebnis hat dann die Anzahl der Zeilen der ersten und die Spaltenzahl der zweiten Matrix. In den Einträgen stehen die Skalarprodukte aus Zeilen der ersten Matrix mit den Spalten der zweiten Matrix. Man kann aber auch die Matrizenmultiplikation als Summe der dyadischen Produkte aus Spalten der ersten Matrix mit den Zeilenvektoren der zweiten Matrix sehen.

Ludwig Resch