Iは、Xの点で3次元ベクトルに沿って移動するオブジェクトを有するY、Z ...私は、各軸に係る物体を回転させる必要があります(X- y軸、およびz軸)を含む。度ベクトルのOpenGLの方向(X、Y、Z)
は、どのように私は度の面でこれらの測定値を得るのですか? this質問を見てみると
(私はOpenGLを使用してのみglRotatef(...)
を知っています)[glRotatef(...)のドキュメントhere] 、答えは
viewvectorを与える=
<x, y, z>
R = SQRT( X 2 +y²+ Z 2)
PHI =上記Arctan2(Y、X)
シータ= ARCCOS(Z/R)
しかしはthis wikiページから私は理解している:
PHI => Z軸
シータの周りに角度= [イグナシオ・バスケス - エイブラムスから編集]> Xとの間の角度/ y平面
が、私はYどのように見つけるのですか?または私はする必要がありますか?
本当の問題は、どのように私はこれはglRotatef(...)
の用語で表現するんですか?
3番目の角度は、移動方向に影響しないため、任意です。特定の値を強制したい場合は、別の制約が必要です。 –
したがって、正しく理解するには、 'glRotatef(theta、1.0、1.0、0.0)'と 'glRotatef(phi、0.0、0.0、1.0)'が使えますか? – Wallter
glRotatef(phi、0,0,1); glRotatef(theta、1,0,0); –