我在空间中有两个正方形,类似于立方体一的前壁和后壁以及顶点
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/