javascript - 获取相机三js中两个物体的距离

标签 javascript position three.js

我在空间中有两个正方形,类似于立方体一的前壁和后壁以及顶点

x=-2 y=-1138 z=-2;
x=-2 y=-1134 z=-2;
x=2 y=-1138 z=-2;
x=2 y=-1134 z=-2

第二个

x=-2 y=1134 z=2;
x=-2 y=1138 z=2;
x=2 y=1134 z=2;
x=2 y=1138 z=2

当我像这样计算来自相机的 distanceTo 时

var point1 = this.camera.matrixWorld.getPosition().clone();
var point2 = this.mesh.cubePlane3.children[0].matrixWorld.getPosition().clone();
var distance = point1.distanceTo( point2 );  

我对 20,09 的距离始终相同。这些方 block 在空间中旋转,因此仅改变旋转,我需要以某种方式找出哪堵墙更靠近相机,以便能够执行某些操作,在立方体中,靠近相机的 3 堵墙不显示,而显示接下来的 3 堵墙。

显然我不明白这背后的数学,例如为什么彼此相邻的墙的 y 坐标为正,下一个为负 + 为什么当一个在 z 轴上比第二个更接近时,距离是相同的值。请有人帮我如何才能靠近墙壁吗?谢谢

最佳答案

每个几何体都有一个computeBoundingBox函数。所以你可以这样做: var bbox = Geometry.computeBoundingBox(); 对于您感兴趣的每个几何图形,然后使用 bbox.center() 获得几何体的中心。更快的计算是在几何体上使用computeBoundingSphere。 然后您只需比较中心与相机位置的关系即可。

关于javascript - 获取相机三js中两个物体的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14601804/

相关文章:

3d - 匹配世界空间中的对象矩阵 - Three.js

javascript - 表数据未从我的 JavaScript 代码插入到我的表中

javascript - 页面加载时出现蓝屏

jquery - 是否可以使元素忽略位置:relative?

javascript - 从页面流中移除类似于固定位置的元素

javascript - 如何在 Threejs 中正确加载 Json 文件

javascript - 导入自定义 NPM 库时无法在模块外使用导入语句

javascript - Foundation 5/显示模态错误/未捕获的类型错误 : Cannot read property 'css' of undefined

Javascript 元素相对于屏幕的位置

javascript - 在 three.js 中使用基本纹理 Material 时出现异常抗锯齿