1 / 32

Quaternionen

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

alexis
Download Presentation

Quaternionen

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. 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 Komplexe Zahlen

  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 qw und dem Vektor qv q = ( qv, qw ) = (qx, qy, qz, qw) = iqx + j qy + k qz + qw mit qx, qy, qz, qw Rund ij = k, ji = -k, jk = i, kj = -i, ki = j, ik = -j

  7. Der Vektor qv = (qx, qy, qz) heißt der imaginäre Teil und qwheiß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) Quaternionen 3

  8. Quaternionen 4 • Multiplikation ist nicht kommutativ • Quaternionen bilden einen Schiefkörper • Multiplikation von zwei Quaternionen

  9. 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

  10. Quaternionen 6 • 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 • 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) = qq* = 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 = 1Gilt 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 = (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 undv2 und schließt mitv2 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 / 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

  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) 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 1 • Wobei s= 2/N(q)

  22. 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

  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. 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 Transformation mit Quaternionen

  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

More Related