2012-04-04 127 views
0

我有一個物體沿着X,Y,Z三維向量傳播......我需要根據每個軸旋轉物體(x-軸,y軸和z軸)。OpenGL矢量方向(X,Y,Z)

如何在度數方面獲得這些測量結果?

(我使用OpenGL和只知道glRotatef(...))glRotatef(...)文檔here] 看着this問題,答案給出

viewvector = <x, y, z>

R =開方( X 2 + Y 2 + Z 2)

披= arctan2(Y,X)

THETA =反餘弦(Z/r)的

但從this wiki頁我明白:

披=>圍繞Z軸

THETA角= [從伊格納西奧巴斯克斯 - 拉姆斯編輯]> x與角度/ y飛機

但我如何找到Y?還是我需要?

真正的問題是,我怎麼用glRotatef(...)來表示這個?

+0

第三個角度是任意的,因爲它不影響行進方向。如果你想強制一個特定的值,你需要另一個約束。 – 2012-04-04 04:58:09

+0

因此,如果我要正確理解,'glRotatef(theta,1.0,1.0,0.0)'和'glRotatef(phi,0.0,0.0,1.0)'會起作用嗎? glRotatef(phi,0,0,1); – Wallter 2012-04-05 03:22:07

+0

glRotatef(phi,0,0,1); glRotatef(THETA,1,0,0); – 2012-04-05 03:57:59

回答

1

Theta是XY平面上方的角度。 Phi是圍繞Z軸的角度。通常,n維極座標具有n-1個角度分量和1個半徑分量。

+0

感謝您的澄清 - 現在我怎麼得到它與glRotatef(...)旋轉它? – Wallter 2012-04-04 05:00:40

+0

首先,您可以不再擔心theta和phi,因爲'glRotate *()'取向量,而不是角度。至於滾動,這是你需要自己確定的東西。 – 2012-04-04 05:02:59

相關問題