我一直在使用 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);
有谁知道如何实现这种旋转?
谢谢你的帮助!