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 位置之间的距离?的主要内容,如果未能解决你的问题,请参考以下文章