我有一個四元數的旋轉,通常由4個值描述:a b c d
。 讓我們說它轉換x軸,以便我從前面看一些物體。現在我想改變這個旋轉,所以我從後面看對象。 所以基本上我想改變從前到後的觀點,但這樣做使用這種旋轉。如何計算四元數旋轉的相反視圖?
如何計算反向旋轉?
我有一個四元數的旋轉,通常由4個值描述:a b c d
。 讓我們說它轉換x軸,以便我從前面看一些物體。現在我想改變這個旋轉,所以我從後面看對象。 所以基本上我想改變從前到後的觀點,但這樣做使用這種旋轉。如何計算四元數旋轉的相反視圖?
如何計算反向旋轉?
從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_pos
和c_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實部。
要繞其旋轉的軸是其相機/物體的上軸,該軸不必是z軸,而是由他定義。否則很好的答案。 –
另外,爲了得到我的投票,你需要解釋如何將這個旋轉應用到他當前的四元數中。我第二什麼@基督教勞說。 :) –
就我而言,我HEL這個..
原來的四元(x和y Z^w)的 相反面向季(Y-X w^-z)
你爲什麼想通過對象的旋轉辦呢?如果您在相機位置和視圖向量改變的情況下執行此操作,則更容易。 – Sorceror