Javascript 使用THREE.JS滚动球
我一直在使用THREE.JS在WebGL中开发这个小台球游戏 现在,我在将球从一个位置(例如Javascript 使用THREE.JS滚动球,javascript,three.js,webgl,Javascript,Three.js,Webgl,我一直在使用THREE.JS在WebGL中开发这个小台球游戏 现在,我在将球从一个位置(例如Vector3(0,0,0)滚动到另一个位置Vector3(10,50,200)时遇到了一个问题。运动不是问题,但是我就是不能计算出旋转。我是这样做的,或者说,尝试: 首先我得到距离: var movement = new THREE.Vector3(); movement.subVectors(to, from); var distance = movement.length(); 接下来我计算角度
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);
有人知道如何实现这种轮换吗
谢谢你的帮助
mesh.rotation.set(along_x, along_y, along_z);
mesh.rotation.z += 0.1;
您可以在网格上使用applyTransformation
,然后将注视向量指向to
vector,然后围绕x轴应用简单的动画旋转(因为注视向量=对象的z轴)
希望这有帮助。我真的不知道你的意思,如何精确对齐球体,使z方向指向目标?此示例有帮助吗?我自己解决了这个问题,却忘了自己回答,不过是的,这会有帮助。