2016-08-06 38 views
0

我可以使用此代码得到一个鼠标点击的3D位置,但如何让两个鼠标点击之间的距离。 请任何人都可以帮助我。如何计算three.js中两次鼠标点击之间的距离?

var vector = new THREE.Vector3(); 

vector.set(
    (event.clientX/window.innerWidth) * 2 - 1, 
    - (event.clientY/window.innerHeight) * 2 + 1, 
    0.5); 

vector.unproject(camera); 

var dir = vector.sub(camera.position).normalize(); 

var distance = - camera.position.z/dir.z; 

var pos = camera.position.clone().add(dir.multiplyScalar(distance)); 
+0

看看http://threejs.org/docs/index.html?q=Vector#Reference/Math/Vector3'.distanceTo(v)' – gaitat

+0

但点没有在屏幕上他们将鼠标点击。如何与一起去......在屏幕上我没有什么,但对于space.and出发点鼠标数和为最终point.I的点击次数计数的点击需要在两者之间的距离。 –

回答

2

你不能。

你不能简单地unproject一个屏幕坐标(2D)世界(3D)坐标使用一些神奇的公式。

如果你真的需要你必须让鼠标点击的3D坐标确定这些点击打在世界上至少一个几何形状和你做一个Raytest公司找出究竟,此时点击打你的几何形状。