Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Quaternionen Eugenia Schwamberger.

Ähnliche Präsentationen


Präsentation zum Thema: "Quaternionen Eugenia Schwamberger."—  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 Grafische Darstellung
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 Multiplikation
(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: q = ( qv, qw ) = (qx, qy, qz, qw)
Ein Quaternion q ist ein Quadrupel, bestehend aus dem Skalar qw und dem Vektor qv q = ( qv, qw ) = (qx, qy, qz, qw) = i qx + j qy + k qz + qw mit qx, qy, qz, qw R und ij = k, ji = -k, jk = i, kj = -i, ki = j, ik = -j

7 Quaternionen 3 Der Vektor qv = (qx, qy, qz) heißt der imaginäre Teil und qw 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 · i j k Multiplikation ist nicht kommutativ
-1 -j -k -i Multiplikation ist nicht kommutativ Quaternionen bilden einen Schiefkörper Multiplikation von zwei Quaternionen

9 Quaternionen 5 Skalarprodukt Kreuzprodukt qvxrv = qvxrv= mv
s q = (o, s) (gv , qw) = (s gv , s qw) q s = (gv , qw) (0, s) = (gv s , qw s) = (s gv , s qw) Kreuzprodukt qvxrv = (i qx + j qy + k qz)x(i rx + j ry + k rz) = i (qyrz – qzry) + j (-qxrz + qzrx) + k (qxry - qyrx) qxrx - qyry – qzrz => qvxrv= mv hamilton

10 Quaternionen 6 (qvxrv + rwqv + qwrv, qwrw – qvrv)
Multiplikationen von zwei Quaternionen q r = (i qx + j qy + k qz + qw )x(i rx + j ry + k rz + rw) = i (qyrz – qzry + qxrw – qwrx) + j (-qxrz + qzrx + qyrw + qwry) + k (qxry – qyrx + qzrw – qwrz) + qwrw - qxrx - qyry – qzrz = (qvxrv + rwqv + qwrv, qwrw – qvrv)

11 Quaternionen 7 Addition Konjugierte Quaternionen
q + r = (qv, qw) + (rv, rw) =(qv + rv, qw + rw) Konjugierte Quaternionen q* = (qv, qw)* = ( - qv, qw) Der Norm N(q) bzw. ||q||² N(q) = q q* = q* q = qv qv + qw² = qx² + qy² + qz² + qw² 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) =>

13 Regeln Für Konjugierte Quaternionen Für den Norm von 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 = (uq sin, cos) für drei-dimensionalen Vektor uq mit N(uq) = 1, weil N(q) = n(uq sin, cos) = sin² (uq uq) + cos²  = sin²  + cos²  = 1 Die menge aller Einheitsquaternionen bildet eine Einheitssphäre im vierdimensionalen Raum.

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

17 Rotation mit Quaternionen 2
Gegeben sei zwei Vektoren v1 und v2 N(v1) = N(v2) = 1 cos = v1 · v2 uq = (v1xv2) / |v1xv2| N(uq) = 1 q = v2 · v1* = (v1xv2, v1 · v2)  q = (uq sin, cos )

18 Rotation mit Quaternionen 3
(q v1q*) liegt in der gleichen Ebene wie v1 und v2 und schließt mit v2 den Winkel  ein. (q v1q*)v2* = (q v1((v2v1)*)*)v2* = q (v1v1)(v2*v2*) = q = (v2 · v1* )

19 Rotation mit Quaternionen 4
Das Produkt qpq-1 führt p = (pv, pw) nach p‘ = (pv‘, pw‘) über, wobei N(pv) = N(pv‘) 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 = (uqsin, cos), uq= (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 Mq folgendermaßen konvertiert werden: 1-s(qy² +qz²) s(qxqy - qwqz) s(qxqz + qwqy) Mq = s(qxqy + qwqz) 1-s(qx² +qz²) s(qyqz – qwqx) s(qxqz - qwqy) s(qyqz + qwqx) 1-s(qx² +qy²) Wobei s= 2/N(q)

22 Matrix Conversion 2 Wenn N(q) =1, dann
1-2(qy² +qz²) 2(qxqy - qwqz) 2(qxqz + qwqy) Mq = 2(qxqy + qwqz) 1-2(qx² +qz²) 2(qyqz – qwqx) (qxqz - qwqy) 2(qyqz + qwqx) (qx² +qy²)

23 Matrix Conversion 3 Rückwärtsumrechnung
m21q - m12q = 4qwqx m02q - m20q = 4qwqy (*) m10q - m01q = 4qwqz  d.h. wenn qw bekannt ist, können wir die qx, qy, qz berechnen.

24 Matrix Conversion 4 „trace“ einer Matrix M - tr(M)
tr(Mq) = 4- 2s(qx² +qy² +qz²) = 4 ·(1- (qx² +qy² +qz²) /(qx² +qy² + qz² + qw²)) = 4qw² / (qx² +qy² + qz² + qw²) = 4qw² / N(q)

25 Matrix Conversion 5 Dieses Resultat liefert die folgende Umrechnung für Quaternionen: qw = 0.5 tr (Mq) qx = (m21q - m12q) / 4qw (**) qy = (m02q - m20q) / 4qw qz = (m10q - m01q) / 4qw

26 Matrix Conversion 6 Lösung ist nicht stabil, Division von kleinen Zahlen wird vermieden. Deshalb setzen wir zuerst t = qw² - qx² - qy² - qz² ein, daraus folgt m00 = t + 2qx² m11 = t + 2qy² m22 = t + 2qz² u = m00 + m11 + m22 = 2 + qw²

27 Matrix Conversion 7 Wir halten folgendes fest:
4qx² = m00 - m11 - m22 + m33 4qy² = - m00 + m11 - m22 + m33 4qz² = - m00 - m11 + m22 + m33 4qw² = 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)tq = = slerp(q, r, t) = q  sin((1 –t)) / sin + r  sin(t) / sin  mit cos = qxrx + qyry + qzrz + qwrw. 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 Schiefkörper Die Multiplikation ist nicht kommutativ
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 Skalarprodukt |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."

Ähnliche Präsentationen


Google-Anzeigen