7

GLSceneには、ローカル方向を中心とした回転のための 3 つのパラメーター (RollAngle、PitchAngle、TurnAngle) があります。下の画像で、キューブをグローバル方向 (オレンジ色の軸) を中心に回転させるにはどうすればよいですか?

ここに画像の説明を入力

4

3 に答える 3

7

軸角度回転をオイラー角度に変換する必要があります。このプロセスをコードで詳細に説明するリンクは次のとおりです

記事から:

yaw   = atan2(y * sin(angle)- x * z * (1 - cos(angle)) 
                , 1 - (y2 + z2 ) * (1 - cos(angle)))   

pitch = asin(x * y * (1 - cos(angle)) + z * sin(angle))   

roll  = atan2(x * sin(angle)-y * z * (1 - cos(angle)) 
             , 1 - (x2 + z2) * (1 - cos(angle)))

編集: ピッチ、ヨー、ロールの命名規則と一致するように変数の名前を変更しました。

于 2011-06-22T17:22:44.070 に答える
3

たぶん、「DummyCube」オブジェクトを親として使用できます。次に、最初にダミーキューブ内のキューブを回転させ、次にDummyCubeを回転させることができます。

于 2011-06-23T18:45:22.333 に答える
1

これは汚いチートですが、オブジェクトが原点 (0,0,0) にあり、シーンにオブジェクトが 1 つしかない場合は、オブジェクトを回転させる代わりに、カメラ (および光源) をオブジェクトの周りでスイングできます。

于 2011-06-22T18:03:42.820 に答える