2010-10-26 16 views
14

Czy obrót kwaterniaka jest tylko wektorem z X, Y, Z, w którym obiekt obróci się w kierunku i rolką, która obraca obiekt na swojej osi?Co to jest rotacja kwaternionów?

Czy to takie proste?

Czy dla X = 0, Z = 0 i Y = 1 obiekt będzie skierowany do góry?
A jeśli masz Y = 0, Z = 0 i X = 1 obiekt zostanie skierowany w prawo?

(przy założeniu, że x prawy, Y i głębokość Z)

Odpowiedz

35

kwaternion zawiera 4 części, które mogą być związane z kątem θ oraz wektor osi n. Obrót spowoduje obrót obiektu wokół osi n pod kątem .

Na przykład, jeśli mamy sześcianu

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

następnie obrót o 90 ° wokół osi (x = 0, y = 0, z = 1) obraca "5" twarzą z od lewej do przodu.

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

(Uwaga:. To jest opis osi/kąt obrotu, który jest co OP myli Na jak quaternion stosowana jest do obrotu, patrz http://en.wikipedia.org/wiki/Quaternions_and_spatial_rotation)

+0

leftways or rightways? – clamp

+0

@clamp: Zależy, czy system jest leworęczny, czy praworęczny. – kennytm

+0

OP powiedział "Y up i Z depth". – LarsH

15

quaternion w ogóle jest przedłużeniem liczba złożona na 4 wymiary. Więc nie, nie są to tylko x, y i z, i kąt, ale są blisko. Więcej poniżej ...

Quaternions mogą być wykorzystane do represent rotation, więc są one przydatne dla grafiki:

kwaterniony jednostkowe zapewniają wygodny notacji matematycznej do reprezentowania kierunków i obrotów obiektów w trzech wymiarach . W porównaniu do kątów Eulera są one łatwiejsze do komponowania, a unikają problemu blokady kardana. W porównaniu do macierzy rotacyjnych są one bardziej stabilne liczbowo i mogą być wydajniejsze .

więc jakie są 4 elementy i how do they relate to the rotation?

[UNIT kwaternion] Temperatura (W, X, Y, Z) oznacza obrót wokół osi skierowanej przez wektor (x, Y, z), przez kąt alfa = 2 cos -1 w = 2 -1 sin sqrt (2 x 2 + y + z).

Wracając do Twojego pytania,

Czyli jeśli X = 0, z = 0 i y = 1. obiekt będzie skierowany do góry?

... No obiekt będzie obracać się wokół tego <0,1,0> wektorem, to znaczy będzie się obracać wokół osi y, obracając ją w lewo, jak widać z powyższego, jeśli system graficzny wykorzystuje obracanie prawy. (A jeśli podłączymy w = sqrt (1 - (0 + 1 + 0)), twoja kwatera jednostki to (0,0,1,0), i obróci się o kąt 2 cos -1 0, = 2 * 90 stopni = 180 stopni lub pi radianów.)

A jeśli masz Y = 0, Z = 0 i X = 1 obiekt zostanie skierowany w prawo?

Obróci się wokół wektora <1,0,0>, oś x, więc obróci się w kierunku przeciwnym do ruchu wskazówek zegara, patrząc od dodatniego kierunku x (np. W prawo). Tak więc góra obraca się do przodu (180 stopni, aby obracała się, dopóki nie zwrócony w dół).