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 回答