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

Posted

技术标签:

【中文标题】Three.js - 如何计算两个 3D 位置之间的距离?【英文标题】:Three.js - How can I calculate the distance between two 3D positions? 【发布时间】:2014-05-15 18:36:22 【问题描述】:

我已经尝试在 Google 上搜索几种不同的内容。似乎我什么都找不到。我想我不妨将问题上传到 Stack Overflow。

谢谢!

【问题讨论】:

【参考方案1】:

其中 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 )方法。

【讨论】:

看不到对此投反对票的原因。修复它 我猜它被否决了,因为它不是用 javascript 编写的,这就是 Three.js 所写的,绝对不是对 imo 投反对票的理由。我刚刚添加了一个编辑,感谢@gaitat的回答 投反对票,因为 Three.js 中有一个现有的函数。您能否更新您的答案以反映这一点?谢谢! @EugeneKulabuhov 这合适吗? @gaitat 完美!谢谢!【参考方案2】:

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

var distance = vec1.distanceTo( vec2 );

three.js r.74

【讨论】:

【参考方案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;

【讨论】:

在three.js中,使用Vector3.distanceTo()方法:distance = vec1.distanceTo( vec2 ); @WestLangley,您能否将其发布为答案? @EugeneKulabuhov 完成。

以上是关于Three.js - 如何计算两个 3D 位置之间的距离?的主要内容,如果未能解决你的问题,请参考以下文章

THREE.js:计算物体上一点的世界空间位置

three.js 路径导航

如何在three.js中的位置半径内获取其他3D对象

three.js(13)-三角形面

Three.js 3D缩放到鼠标位置

如何使用 three.js 绘制自定义 3d 表面?