Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang.

Ähnliche Präsentationen


Präsentation zum Thema: "Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang."—  Präsentation transkript:

1 Quaternionen Eugenia Schwamberger

2 Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang A: Körper, Schiefkörper Anhang B: Vektorprodukt, Skalarprodukt Literatur

3 Komplexe Zahlen Definition Es sei C = R*R – das kartesische Produkt. An Stelle des geordnetes Paar (x, y) schreiben wir x + iy C für x, y R. Grafische Darstellung

4 Komplexe Zahlen 2 Addition (x + iy) + (u + iv) = (x + u) + i(y + v) Multiplikation (x + iy) · (u + iv) = (xu – yv) + i(xv + yu) Kommutativer Körper mit 1 = 1 + i · 0 als Einselement der Multiplikation Für z = x + iy Betrag |z| = Konjugierte z* = x – iy

5 Quaternionen 1 Einführung Erst beschrieben von W.R. Hamilton, im 1843 Eingeführt im Feld von Computergrafik von Shoemake, im 1995 Was sind Quaternionen?

6 Quaternionen 2 Definition: Ein Quaternion q ist ein Quadrupel, bestehend aus dem Skalar q w und dem Vektor q v q = ( q v, q w ) = (q x, q y, q z, q w ) = i q x + j q y + k q z + q w mit q x, q y, q z, q w R und ij = k, ji = -k, jk = i, kj = -i, ki = j, ik = -j

7 Quaternionen 3 Der Vektor q v = (q x, q y, q z ) heißt der imaginäre Teil und q w heißt der reelle Teil von Quaternion q Für imaginäre Teil Addition Produkt Kreuzprodukt und andere Vektoren als Quaternionen v = (v, 0) Skalare als Quaternionen s = (0, s)

8 Quaternionen 4 Multiplikation ist nicht kommutativ Quaternionen bilden einen Schiefkörper Multiplikation von zwei Quaternionen · i jk i k-j j -k i k j-i

9 Quaternionen 5 Skalarprodukt s q = (o, s) (g v, q w ) = (s g v, s q w ) q s = (g v, q w ) (0, s) = (g v s, q w s) = (s g v, s q w ) Kreuzprodukt q v x r v = (i q x + j q y + k q z )x(i r x + j r y + k r z ) = i (q y r z – q z r y ) + j (-q x r z + q z r x ) + k (q x r y - q y r x ) q x r x - q y r y – q z r z => q v x r v = m v

10 Quaternionen 6 Multiplikationen von zwei Quaternionen q r = ( i q x + j q y + k q z + q w )x(i r x + j r y + k r z + r w ) = i (q y r z – q z r y + q x r w – q w r x ) + j (-q x r z + q z r x + q y r w + q w r y ) + k (q x r y – q y r x + q z r w – q w r z ) + q w r w - q x r x - q y r y – q z r z = (q v xr v + r w q v + q w r v, q w r w – q v r v )

11 Quaternionen 7 Addition q + r = (q v, q w ) + (r v, r w ) =(q v + r v, q w + r w ) Konjugierte Quaternionen q* = (q v, q w )* = ( - q v, q w ) Der Norm N(q) bzw. ||q||² N(q) = q q* = q* q = q v q v + q w ² = q x ² + q y ² + q z ² + q w ² Die Identität I = (0, 1)

12 Multiplikative Inverse Behauptung Die zu einem Quaternion q multiplikative Inverse ist q -1 = q * /N(q) Wir leiten diese Formel von der Definition des Normen her. q -1 · q = q · q -1 = 1 Gilt für Inverse N(q) = q · q* 1 = (q · q* ) / N(q) => q -1 = q*/N(q)

13 Regeln Für Konjugierte Quaternionen (q*)* = q (q + r)* = q* + r* (q r)* = r* q* Für den Norm von Quaternionen N(q*) = N(q) N(q r) = N(q) N(r)

14 Gesetze für Multiplikationen Distributivgesetze p (s q + t r) = s p q + t p r wobei p, q, r sind Quaternionen, und s, t - Skalaren (s p + t q) r = s p r + t q r Assoziativität p (q r) = (p q) r

15 Einheitsquaternionen Quaternionen mit N(q) = 1 heißen Einheitsquaternionen. q = (u q sin, cos ) für drei-dimensionalen Vektor u q mit N(u q ) = 1, weil N(q) = n(u q sin, cos ) = sin² (u q u q ) + cos² = sin² + cos² = 1 Die menge aller Einheitsquaternionen bildet eine Einheitssphäre im vierdimensionalen Raum.

16 Rotation mit Quaternionen Sei gegeben Vektor P (p x p y p z p w ) T Wir bringen die Koordinaten von P in ein Quaternion p ein, p = (p x, p y, p z, p w ). Angenommen, dass wir ein Einheitsquaternion q = (u q sin, cos ) haben, dann gilt: qpq -1 rotiert p um die Achse u q mit dem Winkel 2 Anmerkung Für Einheitsquaternion q gilt q* = q -1

17 Rotation mit Quaternionen 2 Gegeben sei zwei Vektoren v 1 und v 2 N(v 1 ) = N(v 2 ) = 1 cos = v 1 · v 2 u q = (v 1 xv 2 ) / |v 1 xv 2 | N(u q ) = 1 q = v 2 · v 1 * = (v 1 xv 2, v 1 · v 2 ) q = (u q sin, cos )

18 Rotation mit Quaternionen 3 (q v 1 q*) liegt in der gleichen Ebene wie v 1 und v 2 und schließt mit v 2 den Winkel ein. (q v 1 q*)v 2 * = (q v 1 ((v 2 v 1 )*)*)v 2 * = q (v 1 v 1 )(v 2 *v 2 *) = q = (v 2 · v 1 * )

19 Rotation mit Quaternionen 4 Das Produkt qpq -1 führt p = (p v, p w ) nach p = (p v, p w ) über, wobei N(p v ) = N(p v ) ist, (die Länge des Vektors hat sich nicht geändert) Liegt in der gleichen Ebene wie p Schließt mit dem p den Winkel 2

20 Beispiel Punkt P(0, 2, 6) soll um 60° bzg. der z-Achse rotiert werden. p = 0i + 2j + 6k, q = (u q sin, cos ), u q = (0, 0, -1), = 30° => q = (- 0.5k + cos30°) = ( 3/2 – 0.5k) = q* = ( 3 / k) Berechne q p q* ( 3/2-0.5k)(2j + 6k)( 3/ k) = (i + 3j + 3 3k · 6)( 3/ k) = ( 3i + j +6k) => P = ( ) T

21 Matrix Conversion Ein Quaternion q kann in eine Matrix M q folgendermaßen konvertiert werden: 1-s(q y ² +q z ²) s(q x q y - q w q z ) s(q x q z + q w q y ) 0 M q = s(q x q y + q w q z ) 1-s(q x ² +q z ²) s(q y q z – q w q x ) 0 s(q x q z - q w q y ) s(q y q z + q w q x ) 1-s(q x ² +q y ²) Wobei s= 2/N(q)

22 Matrix Conversion 2 Wenn N(q) =1, dann 1-2(q y ² +q z ²) 2(q x q y - q w q z ) 2(q x q z + q w q y ) 0 M q = 2(q x q y + q w q z ) 1-2(q x ² +q z ²) 2(q y q z – q w q x ) 0 2(q x q z - q w q y ) 2(q y q z + q w q x ) 1 - 2(q x ² +q y ²)

23 Matrix Conversion 3 Rückwärtsumrechnung m 21 q - m 12 q = 4q w q x m 02 q - m 20 q = 4q w q y (*) m 10 q - m 01 q = 4q w q z d.h. wenn q w bekannt ist, können wir die q x, q y, q z berechnen.

24 Matrix Conversion 4 trace einer Matrix M - tr(M) tr(M q ) = 4- 2s(q x ² +q y ² +q z ²) = 4 ·(1- (q x ² +q y ² +q z ²) /(q x ² +q y ² + q z ² + q w ²)) = 4q w ² / (q x ² +q y ² + q z ² + q w ²) = 4q w ² / N(q)

25 Matrix Conversion 5 Dieses Resultat liefert die folgende Umrechnung für Quaternionen: q w = 0.5 tr (M q ) q x = (m 21 q - m 12 q ) / 4q w (**) q y = (m 02 q - m 20 q ) / 4q w q z = (m 10 q - m 01 q ) / 4q w

26 Matrix Conversion 6 Lösung ist nicht stabil, Division von kleinen Zahlen wird vermieden. Deshalb setzen wir zuerst t = q w ² - q x ² - q y ² - q z ² ein, daraus folgt m 00 = t + 2q x ² m 11 = t + 2q y ² m 22 = t + 2q z ² u = m 00 + m 11 + m 22 = 2 + q w ²

27 Matrix Conversion 7 Wir halten folgendes fest: 4q x ² = m 00 - m 11 - m 22 + m 33 4q y ² = - m 00 + m 11 - m 22 + m 33 4q z ² = - m 00 - m 11 + m 22 + m 33 4q w ² = tr(Mq)

28 Sphärische Lineare Interpolation Gegeben sei zwei Einheitsquaternionen q und r und ein Parameter t [0, 1]. Dann ist s (q, r, t) = (rq -1 ) t q = = slerp(q, r, t) = q sin( (1 –t)) / sin + r sin( t) / sin mit cos = q x r x + q y r y + q z r z + q w r w. Diese Funktion berechnet für t = [0, 1] die kürzeste Verbindung (Großkreis) auf der vierdimensionalen Einheitssphäre zwischen q und r. Dies ist für die Interpolation (Animation) von Orientierungen von Körpern ideal geeignet. Nicht sehr gut für die Orientierung der Kamera, da sich der Camera- up Vektor verändern kann!

29 Transformation mit Quaternionen Vorteile Die Rotation erfolgt direkt um die gewünschte Drehachse. Es kann mit dem Verfahren wie SLERP zwischen zwei Orientierungen interpoliert werden Die Verkettung von Rotationen ist effizienter. Nachteile Mehr Mathematik Nicht sehr gut für Kameraorientierungen geeignet

30 Anhang A Körper Sei (K, +, *) eine Menge mit zwei Verknüpfungen. K ist ein Körper, wenn Assoziativgesetz der Multiplikation und der Addition gilt Kommutativgesetz der Multiplikation und der Addition gilt Nullelement und Einselement existieren Inverse der Addition exsistiert Inverse der Multiplikation exsistiert Schiefkörper Die Multiplikation ist nicht kommutativ

31 Anhang B Vektorprodukt |v u| = |v|·|u| · sin(v, u) v u ist orthogonal zu v und u Bilden ein Rechtsystem in der Reihenfolge : v, u, v u. Skalarprodukt u · v = |v|·|u| · cos(v, u)

32 Literatur Tomas Möller, Erik Haines. Real – Time Rendering. Alan Watt. 3D – Computergrafik. B.L. van der Waerden. Hamiltons Entdeckung der Quaternionen. Peter Meyer-Nieberg. Analysis I. Vorlesung SS2001


Herunterladen ppt "Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang."

Ähnliche Präsentationen


Google-Anzeigen