Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用THREE.JS滚动球_Javascript_Three.js_Webgl - Fatal编程技术网

Javascript 使用THREE.JS滚动球

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(); 接下来我计算角度

我一直在使用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);
有人知道如何实现这种轮换吗

谢谢你的帮助

mesh.rotation.set(along_x, along_y, along_z);
mesh.rotation.z += 0.1;
您可以在网格上使用
applyTransformation
,然后将注视向量指向
to
vector,然后围绕x轴应用简单的动画旋转(因为注视向量=对象的z轴)


希望这有帮助。

我真的不知道你的意思,如何精确对齐球体,使z方向指向目标?此示例有帮助吗?我自己解决了这个问题,却忘了自己回答,不过是的,这会有帮助。