D3DXMatrixRotationYawPitchRoll()
函數用指定的偏航,俯仰和滾轉建立矩陣。是否有一個iphone開發者的等價函數?iphone開發者有沒有相當於D3DXMatrixRotationYawPitchRoll()的?
我發現繪製一條蜿蜒小路或過山車here.
一個美麗的小樣本項目這不是大量的代碼,這些註釋似乎大多是可以理解的,但代碼是依靠少數的DirectX函數I」 m還不夠聰明,可以在C中重新創建,供我的iphone項目使用。
有人能指出我在正確的方向嗎?我需要根據偏航,俯仰,滾轉值創建一個旋轉矩陣。
此的DirectX函數簽名是這樣的:
D3DXMATRIX * D3DXMatrixRotationYawPitchRoll(
__inout D3DXMATRIX *pOut,
__in FLOAT Yaw,
__in FLOAT Pitch,
__in FLOAT Roll
);
是否有穀氨酸*()等效嗎?
(...小時的閱讀後)
好了,相當多的閱讀(具有非常多了去了)後,這是我收集:
This網站是一個很好的幫助!
看來,我將需要3個歐拉角轉換(這是俯仰,滾轉,偏航的稱呼)爲三個獨立的單位四元數:
Qx = [ cos(a/2), (sin(a/2), 0, 0)]
Qy = [ cos(b/2), (0, sin(b/2), 0)]
Qz = [ cos(c/2), (0, 0, sin(c/2))]
然後這些組合成一個四元數有:
Qcombined = QX * QY * QZ
然後,我可以這樣產生的「單位」四元數轉換回的那種旋轉矩陣使OpenGL會這樣想:
Matrix = [ 1 - 2y2 - 2z2 2xy - 2wz 2xz + 2wy
2xy + 2wz 1 - 2x2 - 2z2 2yz - 2wx
2xz - 2wy 2yz + 2wx 1 - 2x2 - 2y2 ]
您不需要爲此使用四元數。只需爲軸建立三個旋轉矩陣並乘以它們即可。 – 2010-07-06 19:01:31
如果沒有四元數,那麼就不會有靈活鎖定的可能性嗎? (我仍然試圖建立一些這裏發生的事情的心理圖像) – user360092 2010-07-07 14:15:55
不,如果你每次都從三個角度重建矩陣,那麼沒有。 – 2010-07-08 02:18:43