2010-10-26 4 views
14

Ist die Quaternion-Rotation nur ein Vektor mit X, Y, Z, zu dem das Objekt rotiert, und eine Rolle, die das Objekt um seine Achse dreht?Was ist eine Quaternion-Rotation?

Ist das so einfach?

Bedeutet, wenn Sie X = 0, Z = 0 und Y = 1 haben, wird das Objekt nach oben zeigen?
Und wenn Sie Y = 0, Z = 0 und X = 1 haben, wird das Objekt nach rechts zeigen?

(vorausgesetzt, X rechts, Y und Z-Tiefe)

Antwort

35

A Quaternion hat 4 Komponenten, die in einem Winkel in Beziehung gesetzt werden kann und eine Achse θ Vektor n. Durch die Drehung wird das Objekt um die Achse n um einen Winkel θ gedreht.

Zum Beispiel, wenn wir einen Würfel wie

______ 
|\ 6 \ 
| \_____\  z 
|5 | | : y^
\ | 4 | \| 
    \|____|  +--> x 

Dann wird eine Drehung von 90 ° um die Achse haben, (x = 0, y = 0, z = 1), wird die "5" drehen FACE aus die linke nach vorne.

______ 
|\ 6 \ 
| \_____\  z 
|3 | | : x^
\ | 5 |  \| 
    \|____| y<--+ 

(Anmerkung:. Dies ist die Achse/Winkel Beschreibung der Rotation, die ist, was OP verwechselt Denn wie Quaternion auf eine Drehung angewendet wird, siehe http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation)

+0

links oder rechts? – clamp

+0

@klammer: Hängt davon ab, ob das System linkshändig oder rechtshändig ist. – kennytm

+0

das OP sagte "Y up und Z Tiefe". – LarsH

15

A quaternion im Allgemeinen ist eine Erweiterung eines komplexe Zahl in 4 Dimensionen. Also nein, sie sind nicht nur x, y und z, und ein Winkel, aber sie sind nah. Mehr unter ...

Quaternionen können represent rotation verwendet werden, so dass sie für Grafiken nützlich sind:

Einheit quaternions eine bequeme Orientierungen und Rotationen von Objekten in drei Dimensionen zur Darstellung mathematischer Notation zur Verfügung stellen . Im Vergleich zu Euler Winkel sind sie einfacher zu komponieren und vermeiden das Problem der kardanischen Verriegelung. Im Vergleich zu Rotationsmatrizen sind sie numerisch stabiler und können effizienter sein. So

was sind die 4 Komponenten und how do they relate to the rotation?

[Unit Quaternion] Punkt (w, x, y, z) eine Drehung um die Achse repräsentiert durch den Vektor (x gerichtet ist, y, z) um einen Winkel alpha = 2 cos -1 w = 2 sin -1 sqrt (x 2 + y 2 + z 2 ).

auf Ihre Frage Also zurück,

Bedeutung, wenn Sie X = 0, Z = 0 und Y = 1 wird das Objekt nach oben zeigen?

Nein ... das Objekt, um diesen <0,1,0> Vektor drehen wird, das heißt, es um die y-Achse dreht, dreht gegen den Uhrzeigersinn von oben gesehen, wenn Ihr Grafiksystem einer Rechtsdrehung verwendet. (Und wenn wir w = sqrt (1 - (0 + 1 + 0)), ist Ihre Einheit Quaternion (0,0,1,0), und es wird um Winkel 2 cos -1 0, = 2 * 90 Grad = 180 Grad oder Pi Radianten.)

Und wenn Sie Y = 0, Z = 0 und X = 1 haben, wird das Objekt nach rechts zeigen?

Diese um den Vektor drehen <1,0,0>, die x-Achse, so dass er sich gegen den Uhrzeigersinn dreht, wie von der positiven X-Richtung gesehen (z.B. rechts). Also würde sich die Spitze nach vorne drehen (180 Grad, so dass sie sich drehen würde, bis sie nach unten zeigt).