2016-08-06 30 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公司找出究竟,此時點擊打你的幾何形狀。

相關問題