3

2 つのメッシュ オブジェクトがあります。アンカーとロッド。画像に示すように、アンカーは z 軸を中心に回転します。ロッドは前後にしか動かないはずです。画像は次のとおりです: http://imageshack.us/photo/my-images/841/7a83.png/

しかし、私は行列計算を理解しようとして立ち往生しています。たとえば、アンカーが 45 度回転し、x 軸に面している場合、どうすればロッドを前後に動かすことができますか?

4

2 に答える 2

3

z 軸を中心とした回転の場合:

var rotation = new THREE.Matrix4().makeRotationZ(Math.PI/2);

翻訳の場合、 z はあなたの delta です:

var translation = new THREE.Matrix4().makeTranslation(0, 0, z);

翻訳から始めて、2 つの変換を組み合わせることができます。

var 変換 = 新しい THREE.Matrix4().makeTranslation(0, 0, z).makeRotationZ(Math.PI/2);

var transformation = rotation.multiply(translation);

次に、ジオメトリに変換を適用します。

geometry.applyMatrix(transformation);
于 2013-11-04T13:24:19.850 に答える