旋转矩形的近似重叠区域

时间:2016-05-20 15:43:55

标签: algorithm geometry rectangles clipping

我需要估计任意大小和方向的两个矩形的重叠率。

我知道如何使用Sutherland-Hodgman算法执行精确计算,该算法可以针对这种情况进行优化。

无论如何,因为我需要集中使用该功能并且不需要完美的准确性(比如可以容忍10%的误差),我想知道它是否无法以更快的方式进行评估,最好是无分支的。

如果有帮助,可以假设两个矩形的长宽比相同,并且区域的比例不超过4。

更新

  1. 对于未旋转的矩形,公式为

    (min(W0,DX + W1) - max(-W0,DX-W1))。(min(H0,DY + H1) - max(H0,DY-H1))

    如果两个因素中的任何一个为负数,则为零,其中DXDY为中心坐标之间的差异,WH表示相应的半尺寸。

  2. 当您改变相对旋转角度时,可能值得查看给定放置中心和给定尺寸的公共区域的曲线。

1 个答案:

答案 0 :(得分:0)

Sutherland-Hodgman算法用于凸夹多边形与任意一个的交叉。我希望专门为凸凸案例设计的算法更快。

我对O'Rourke算法(O(m + n))有类似问题的实践经验 (两组成千上万个旋转矩形之间的交叉区域)

Code link is here - convconv。 AFAIR,矩形可以进行一些简化。

Another algorithm

我怀疑任何近似方法都能更快地找到结果且控制精度。