2011-08-02 65 views
4

我有一個四元數的旋轉,通常由4個值描述:a b c d。 讓我們說它轉換x軸,以便我從前面看一些物體。現在我想改變這個旋轉,所以我從後面看對象。 所以基本上我想改變從前到後的觀點,但這樣做使用這種旋轉。如何計算四元數旋轉的相反視圖?

如何計算反向旋轉?

+0

你爲什麼想通過對象的旋轉辦呢?如果您在相機位置和視圖向量改變的情況下執行此操作,則更容易。 – Sorceror

回答

2

wikipedia page學習,看來,如果要執行繞ž軸旋轉180°,那麼相應的四元數旋轉,簡直是:

0 0 0 1 

這裏的關鍵是公式其中(w,x,y,z)=(a,b,c,d)。事實上,由於cos(90°)= 0且sin(90°)= 1,因此用(0,0,1)代替alpha爲180°和u給出(0,0,0) ,1)。

編輯:作爲基督教已指出的那樣,向上方向不必是Ž,而可以是任何單元矢量Ù =(X,Y,Z)(否則由除以正常化它其規範)。在這種情況下,對應的180°quaterion旋轉將

0 x y z 

我們以圍繞對象移動應用此旋轉,說你有位置的相機c_posc_dir方向vetors,然後簡單地(左)通過q = (0 x y z)進行結合,並相應地移動相機位置。像

c_dir = q * c_dir * q^-1 
c_pos = 2 * o_pos - c_pos 

其中o_pos是所述對象的位置,並且c_dir東西應該被轉換爲四元數與0實部。

+1

要繞其旋轉的軸是其相機/物體的上軸,該軸不必是z軸,而是由他定義。否則很好的答案。 –

+0

另外,爲了得到我的投票,你需要解釋如何將這個旋轉應用到他當前的四元數中。我第二什麼@基督教勞說。 :) –

-2

就我而言,我HEL這個..

原來的四元(x和y Z^w)的 相反面向季(Y-X w^-z)