7

回転に基づいて three.js でキューブを移動しようとしていますが、その方法がわかりません。

今のところ、A & D キーで立方体の z 回転を回転させることができます。W キーを使用すると、回転に対して前方に移動したいと思います。

2D から、次のようにします。

float angle = GradToRad(obj.rotation);
obj.x = obj.x + cos(angle) * velocity;
obj.y = obj.y + sin(angle) * velocity;

これが現在の実装のイメージです。 3D キューブ three.js

three.jsで同様のものを適用するにはどうすればよいですか?

4

3 に答える 3

12

オブジェクトは、正の Z 軸に面していると見なすことができます。したがって、オブジェクトを独自の座標系に対して前方に移動するには、次を使用できます

Object3D.translateZ( distance );

three.js r.57

于 2013-04-10T14:17:49.640 に答える
0

回転と並進の両方を単一の (同次射影) 4×4 行列で表現するのが最も簡単かもしれません。three.jsのメンバーは既にそれを行っていますが、それを直接使用するには to を設定するObject3D.matrix必要があるかもしれません。次に、メソッドを使用してオブジェクトを独自の参照フレームに移動できます。matrixAutoUpdatefalsetranslate

于 2013-04-10T14:16:43.933 に答える