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.

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² )

Ludwig Resch