Three.js - 如何计算两个3D位置之间的距离?

18

我已经尝试在Google上搜索了几个不同的东西,但似乎找不到任何有用的信息。所以想把问题上传到Stack Overflow平台上。

谢谢!

3个回答

64

其中v1和v2的类型为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 );
}

更新: 在three.js的r74版本中,可以使用.distanceTo( v )方法。


1
看不出为什么会有人对此进行负面评价。已经修复。 - Mircea
我猜它被踩是因为它不是用JavaScript编写的,而Three.js确实是用JavaScript编写的,但这并不是踩它的理由。我刚刚添加了一个编辑,感谢您的回答@gaitat。 - captDaylight
1
由于Three.js中已经存在一个功能,因此我会将您的回答评为负分。请您更新您的回答以反映出这一点。谢谢! - Eugene Kulabuhov
@EugeneKulabuhov 这个合适吗? - gaitat
@gaitat 太好了!谢谢你! - Eugene Kulabuhov

31

在 three.js 中,要计算两个 3D 位置之间的距离,请使用 Vector3.distanceTo() 方法:

var distance = vec1.distanceTo( vec2 );

three.js r.74


这个返回的距离是用米来计算的吗? - norbekoff

3

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;
}

7
在 three.js 中,使用 Vector3.distanceTo() 方法:distance = vec1.distanceTo( vec2 ); - WestLangley
@WestLangley,请您把它发布为一个答案好吗? - Eugene Kulabuhov
@EugeneKulabuhov 完成。 - WestLangley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接