【问题标题】:Minimum distance between two 3D Cubes/Cuboids两个 3D 立方体/长方体之间的最小距离
【发布时间】:2021-08-06 23:25:38
【问题描述】:

有两个 3D 立方体/长方体,每个都由不同的顶点定义(p1、p2、p3、p4、p5、p6、p7、p8),我如何找到立方体之间的最小距离?

我一直在研究一个简单的欧几里得 3D 距离算法,其中包含每个立方体的最小值和最大值,但它不适用于旋转的立方体。有没有解决这个问题的整体方法?在这张图片中有两个立方体的两个示例以及我要计算最小距离的可能位置:

【问题讨论】:

标签: algorithm 3d geometry distance


【解决方案1】:

我没有看到捷径,所以我会根据暴力案例用尽来回答。这不是最快的方法,而是一种非常稳健的方法。

您正在寻找从立方体 A 中的一点到立方体 B 中的点的最短连接线。在两端,这条最短的线肯定不会在立方体内部结束,而是在立方体的表面、边缘或顶点上立方体(假设立方体不重叠)。所以你得到了 9 个案例:

  • 顶点/顶点
  • 顶点/边
  • 顶点/表面
  • 边/顶点
  • 边缘/边缘
  • 边缘/表面
  • 表面/顶点
  • 表面/边缘
  • 表面/表面

我们可以省略表面/表面情况,因为只有表面相互平行才有可能,在这种情况下,使用边或顶点的其他情况将给出相同的距离。

对于每种情况,您都可以在网上找到计算(无限延伸的)几何对象距离的公式,然后您应该检查是否停留在有限的表面或边缘内。

最后,您可以返回有效距离的最小值。

当然,可以有很多优化,不包括不能产生最短距离的情况,例如指向远离另一个立方体的表面,但这需要仔细分析。

【讨论】:

  • 不幸的是计算边缘和表面方程,计算所有事物之间的距离然后检查限制在计算时间上是昂贵的,我已经优化以排除彼此相对的表面/顶点/线,但是仍然需要太多时间(我需要为近乎实时的应用程序计算这个)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
相关资源
最近更新 更多