2011-02-04 18 views
2

へ/からピッチヨーロールを設定する私は、設定されたコードは次のようになりますかなり確信している:の取得とOpenGLモデルビュー行列

function setPYR(float pitch, float yaw, float roll) { 
    glLoadIdentity(); 
    glRotatef(pitch, 1, 0, 0); 
    glRotatef(yaw, 0, 1, 0); 
    glRotatef(roll, 0, 0, 1); 
} 

は、どのように私は、現在のモデルビュー行列から、ピッチ、ヨーとロールを得ることができます?

+0

変数に変数を保存してから、保存した値を返さないのはなぜですか? –

+0

ほとんどの場合、最初に保存する必要はありません –

答えて

1

The Matrix and Quaternions FAQをご覧ください。

+0

このリンクは、Q36がオイラー角(ヨー、ピッチ、ロール)からモデルビュー行列に移行する適切な方法を示しています。しかし、私が誤解されていないならば、このアプローチにはジンバルロックの問題があります。 (少なくとも、Q36に従って実装するときは、ジンバルロックの問題にぶつかります。)このルートに進む方が良いとは思いませんか?Q60。オイラー回転角をクォータニオンに変換するにはどうしたらいいですか?*そして* Q54。四元数を回転行列に変換するにはどうすればいいですか?*?たぶん[this](http://www.arcsynthesis.org/gltut/Positioning/Tut08%20Quaternions.html)も役立つかもしれません。 – bluenote10

+0

https://developer.android.com/reference/android/opengl/Matrix.html#setRotateEulerM(float[],%20int,%20float,%20float,%20float) –

関連する問題