1

私は THREE.JS を使用して WebGL でこの小さなビリヤード ゲームに取り組んできました。

今、ある位置Vector3(0, 0, 0)から別の位置にボールを転がすことに問題がありVector3(10, 50, 200)ます。動きは問題ありませんが、回転がうまくできません。これが私がそれを行う方法です、またはしようとしています:

まず、距離を取得します。

var movement = new THREE.Vector3();
movement.subVectors(to, from);
var distance = movement.length();

次に角度を計算します

var angle = (distance / (radius * 2 * Math.PI));

その後、少し混乱します。実際のオブジェクトを回転させるためにどのメソッドを使用すればよいかわかりません。四元数を試してみました。

var quaternion = new THREE.Quaternion().setFromAxisAngle(movement.normalize(), angle);
mesh.rotation.setEulerFromQuaternion(quaternion);

このローテーションを達成する方法を知っている人はいますか?

助けてくれてありがとう!

4

1 に答える 1

0
mesh.rotation.set(along_x, along_y, along_z);
mesh.rotation.z += 0.1;

applyTransformationメッシュで使用できます。その後、lookAt ベクトルがベクトルを指すようにしto、x 軸を中心に単純なアニメーション回転を適用する必要があります (lookAt ベクトル = オブジェクトの z 軸であるため)。

お役に立てれば。

于 2013-06-05T22:26:08.203 に答える