1

これは非常に基本的な問題ですが、どこにも完全な答えが見つかりません。

オブジェクトが特定の SPEED で z 軸に沿って移動しているとします。(例: -0.2 opengl 単位) 次に、オブジェクトをローカル軸を中心に、rotationX 、Y および Z 角度で回転させます。

質問: オブジェクトの次の位置は?

私は次の方程式を使用しています(間違っていることは知っていますが、正しくすることはできません)

    positionX += -SPEED * Math.sin(rotationY * Utils.DEG)* Math.cos(rotationX * Utils.DEG);
    positionY += SPEED * Math.sin(rotationX * Utils.DEG);       
    positionZ += -SPEED * Math.cos(rotationX * Utils.DEG)* Math.cos(rotationY * Utils.DEG);

私の間違いはどこですか?

4

1 に答える 1

0

オブジェクトの方向を表すベクトルを格納します。

回転時に、方向ベクトルを回転します。

移動するとき、

positionX += SPEED * orientation.X
positionY += SPEED * orientation.Y
etc.
于 2012-06-25T17:52:29.710 に答える