私は 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);
このローテーションを達成する方法を知っている人はいますか?
助けてくれてありがとう!