Graphics Reference
In-Depth Information
Obige Quaternion q für die Drehung unterscheidet sich fundamental von einer
Euler-Rotationsmatrix, ganz abzusehen von der Tatsache, dass man für die allge-
meine Drehung eine ganze Abfolge von Matrizentransformationen benötigt. Die
Quaternion als Darstellung einer Rotation ist dagegen einfach zu verstehen, da
hierfür nur ein Rotationswinkel und eine Rotationsachse erforderlich sind. Aber
auch mit dieser Drehungsquaternion ist noch nicht viel anzufangen. Um die Qua-
ternion für die derzeitigen, durchgehend auf Matrixtransformationen basierenden
Programme nutzbar zu machen, muss sie in eine Matrix umgewandelt werden. Eine
universelle Klasse von Quaternionen - wie bei Matrizen - gibt es leider nicht. Ihre
Favorisierung zur Darstellung von allgemeinen Rotationen in der Computergrafik
beruht hauptsächlich auf der Möglichkeit, diese mit nur einer Rotationsmatrix zu
vollziehen.
Um eine Quaternionrotation mit anderen Transformationen, wie Translation,
Skalierung, Scherung und Spiegelung zu verknüpfen, bleibt nur der Weg zu-
rück über eine Matrix. Gerade in vielen Anwendungen, wie z. B. in OpenGL ,
wird grundsätzlich mit Matrizen gerechnet. Die Konvertierung einer Quaternion
q D . a ; b ; c ; d / mit dem Skalarteil a sowie den komplexen Anteilen b ; c ; d erfolgt
durch folgende Konvertierungsmatrix [K] :
Durch die Produktbildung eliminieren sich die komplexen Basisvektoren i ; j ; k und
die weitere Rechnung erfolgt nur noch mit Termen reeller Zahlen. Die gesuch-
te Rotationsmatrix [R ® ] zum Quaternion q erhält man nun durch Einsetzen ihrer
Komponenten in die Konvertierungsmatrix:
a D cos .®=2/
b D a x sin .®=2/
c D a y sin .®=2/
d D a z sin .®=2/
sowie a x C a y C a z
D 1 normierter Vektor f a g/
1 2. c 2 C d 2 / D 1 2 c 2 2 d 2
D 1 a y 2 sin .2®=2/ a z 2 sin .2®=2/
D 1 .1 cos ®/ . a y C a z /
D cos ® C a x .1 cos ®/
R 1;1 W
Search WWH ::




Custom Search