2014-04-03 37 views

Odpowiedz

36

gdzie V1 i V2 są typu THREE.Vector3:

function distanceVector(v1, v2) 
{ 
    var dx = v1.x - v2.x; 
    var dy = v1.y - v2.y; 
    var dz = v1.z - v2.z; 

    return Math.sqrt(dx * dx + dy * dy + dz * dz); 
} 

Aktualizacja: W wydaniu R74 z Three.js metoda .distanceTo(v) mogą być użyte.

+0

Can nie widzą powodu, dla którego w tej sprawie głosowano w dół. Naprawiono to jako – Mircea

+0

Zgaduję, że został wycofany, ponieważ nie było go w Javascript, i to właśnie jest napisane w Three.js, zdecydowanie nie jest to powód, by zignorować imo. Właśnie dodałem edycję, dzięki za odpowiedź @gaitat – captDaylight

+0

Downvoting, ponieważ istnieje istniejąca funkcja w Three.js. Czy mógłbyś zaktualizować swoją odpowiedź, aby to odzwierciedlić? Dzięki! –

2

w JavaScript:

function dist(x0,y0,z0,x1,y1,z1){ 

deltaX = x1 - x0; 
deltaY = y1 - y0; 
deltaZ = z1 - z0; 

distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY + deltaZ * deltaZ); 

return distance; 
} 
+5

W pliku three.js użyj metody 'Vector3.distanceTo()': distance = vec1.distanceTo (vec2); ' – WestLangley

+0

@WestLangley, czy mógłbyś napisać to jako odpowiedź? –

+0

@EugeneKulabuhov Zrobione. – WestLangley

10

W three.js, aby obliczyć odległość między dwoma pozycjami 3D, należy użyć metody Vector3.distanceTo():

var distance = vec1.distanceTo(vec2); 

Three.js r.74