quaternionen eugenia schwamberger. inhalt : komplexe zahlen quaternionen einheitsquaternionen...

32
Quaternionen Eugenia Schwamberger

Upload: teresia-schmelzer

Post on 05-Apr-2015

110 views

Category:

Documents


1 download

TRANSCRIPT

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

Quaternionen

Eugenia Schwamberger

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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