(数值上)计算两个长方体

时间:2017-01-26 13:43:11

标签: algorithm computational-geometry intersection numerical-methods

我给了两个长方体,只有一个轴对齐(另外两个没有必要)和它们的顶点坐标(在全局坐标系中),我知道它们是相交的。我正在寻找一种可以计算交叉口体积的算法。

要检查交叉点,我使用了分离轴定理。

2 个答案:

答案 0 :(得分:1)

两个任意矩形的交集可以通过Sutherland-Hodgman程序(https://en.wikipedia.org/wiki/Sutherland%E2%80%93Hodgman_algorithm)构建。简而言之,您将其中一个矩形与另一个划分的半平面夹在一起。结果将从四边形到八边形。

enter image description here

使用鞋带配方找到多边形的区域。

十字路口是一个棱柱,你知道它的底座和高度。

请注意,您可以将过程概括为3D并实现具有半空间的凸多面体的交点(使用半空间剪切每个面并连接新形成的边以获得截面的面)。这允许您解决任意定向长方体的问题。

答案 1 :(得分:0)

由于其中一个轴是对齐的,算法可以是:

  • 在对齐的轴方向上投影2D中的立方体,
  • 计算2D中两个矩形之间的交叉区域,
  • 在对齐轴上的1D中投影长方体,
  • 计算1D段的交集,
  • 结果体积是面积乘以线段交叉长度。