quaternionen eugenia schwamberger. inhalt : komplexe zahlen quaternionen einheitsquaternionen...
TRANSCRIPT
![Page 1: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/1.jpg)
Quaternionen
Eugenia Schwamberger
![Page 2: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/2.jpg)
Inhalt :Komplexe ZahlenQuaternionenEinheitsquaternionen Rotation mit Quaternionen Beispiel
Matrix ConversionAnhang A: Körper, SchiefkörperAnhang B: Vektorprodukt, SkalarproduktLiteratur
![Page 3: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/3.jpg)
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
![Page 4: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/4.jpg)
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 MultiplikationFür z = x + iy Betrag |z| = Konjugierte z* = x – iy
² ²y x
![Page 5: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/5.jpg)
Quaternionen 1 Einführung
Erst beschrieben von W.R. Hamilton, im 1843Eingeführt im Feld von Computergrafik von Shoemake, im 1995Was sind Quaternionen?
![Page 6: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/6.jpg)
Quaternionen 2Definition: 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
![Page 7: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/7.jpg)
Quaternionen 3
Der Vektor qv = (qx, qy, qz) heißt der imaginäre Teil und qw heißt der reelle Teil von Quaternion qFür imaginäre Teil
Addition Produkt Kreuzprodukt und
andere
Vektoren als Quaternionen v = (v, 0)
Skalare als Quaternionen s = (0, s)
![Page 8: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/8.jpg)
Quaternionen 4
Multiplikation ist nicht kommutativQuaternionen bilden einen SchiefkörperMultiplikation von zwei Quaternionen
· i j k
i -1 k -j
j -k -1 i
k j -i -1
![Page 9: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/9.jpg)
Quaternionen 5
Skalarprodukt 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
![Page 10: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/10.jpg)
Quaternionen 6
Multiplikationen von zwei Quaternionenq 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)
![Page 11: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/11.jpg)
Quaternionen 7
Addition 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)
![Page 12: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/12.jpg)
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)
![Page 13: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/13.jpg)
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)
![Page 14: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/14.jpg)
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
![Page 15: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/15.jpg)
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.
![Page 16: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/16.jpg)
Rotation mit QuaternionenSei 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
![Page 17: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/17.jpg)
Rotation mit Quaternionen 2
Gegeben sei zwei Vektoren v1 und v2
N(v1) = N(v2) = 1
cos = v1 · v2
uq = (v1xv2) / |v1xv2|
N(uq) = 1q = v2 · v1* = (v1xv2, v1 · v2)
q = (uq sin, cos )
![Page 18: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/18.jpg)
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* )
![Page 19: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/19.jpg)
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
![Page 20: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/20.jpg)
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 / 2 + 0.5k)
Berechne q p q*(3/2-0.5k)(2j + 6k)(3/2 + 0.5k) =(i + 3j + 3 3k + 0.5 · 6)(3/2 + 0.5k) = (3i + j +6k) =>
P‘ = (1.73 1 6)T
![Page 21: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/21.jpg)
Matrix Conversion
Ein Quaternion q kann in eine Matrix Mq folgendermaßen konvertiert werden: 1-s(qy² +qz²) s(qxqy - qwqz) s(qxqz + qwqy) 0 Mq = s(qxqy + qwqz) 1-s(qx² +qz²) s(qyqz – qwqx) 0 s(qxqz - qwqy) s(qyqz + qwqx) 1-s(qx² +qy²) 0 0 0 0 1Wobei s= 2/N(q)
![Page 22: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/22.jpg)
Matrix Conversion 2
Wenn N(q) =1, dann 1-2(qy² +qz²) 2(qxqy - qwqz) 2(qxqz + qwqy) 0 Mq = 2(qxqy + qwqz) 1-2(qx² +qz²) 2(qyqz – qwqx) 0 2(qxqz - qwqy) 2(qyqz + qwqx) 1 - 2(qx² +qy²) 0 0 0 0 1
![Page 23: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/23.jpg)
Matrix Conversion 3
Rückwärtsumrechnung m21
q - m12q = 4qwqx
m02q - m20
q = 4qwqy (*) m10
q - m01q = 4qwqz
d.h. wenn qw bekannt ist, können wir die qx, qy, qz berechnen.
![Page 24: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/24.jpg)
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)
![Page 25: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/25.jpg)
Matrix Conversion 5
Dieses Resultat liefert die folgende Umrechnung für Quaternionen: qw = 0.5 tr (Mq)
qx = (m21q - m12
q) / 4qw (**)
qy = (m02q - m20
q) / 4qw
qz = (m10q - m01
q) / 4qw
![Page 26: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/26.jpg)
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²
![Page 27: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/27.jpg)
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)
![Page 28: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/28.jpg)
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!
![Page 29: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/29.jpg)
Transformation mit Quaternionen
VorteileDie 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.
NachteileMehr MathematikNicht sehr gut für Kameraorientierungen geeignet
![Page 30: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/30.jpg)
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
![Page 31: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/31.jpg)
Anhang B
Vektorprodukt |vu| = |v|·|u| · sin(v, u) vu ist orthogonal zu v und u Bilden ein Rechtsystem in der
Reihenfolge : v, u, vu.
Skalarprodukt u · v = |v|·|u| · cos(v, u)
![Page 32: Quaternionen Eugenia Schwamberger. Inhalt : Komplexe Zahlen Quaternionen Einheitsquaternionen Rotation mit Quaternionen Beispiel Matrix Conversion Anhang](https://reader036.vdocuments.net/reader036/viewer/2022062404/55204d6749795902118bd68a/html5/thumbnails/32.jpg)
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