给定4个“右”矩形(右边的矩形边缘平行于x或y),找到任何一个覆盖的区域

时间:2018-01-09 10:29:00

标签: algorithm geometry rectangles

请帮助。我正在研究一种具有此要求的算法。

给定4个“右”矩形(右边的矩形边缘平行于x或y),找到任何一个覆盖的区域

例如,下图中的4个矩形中的任何一个都覆盖了灰色区域。enter image description here

我不太明白这个问题。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

一种方法是使用应用于区域的Inclusion-Exclusion principle。 这是3个矩形的情况:

A = Area( R[0]) + Area( R[1]) + Area( R[2])
  - ( Area( inter( R[0], R[1])) 
    + Area( inter( R[0], R[2]))
    + Area( inter( R[1], R[2]))
    )
  + Area( inter( inter( R[0], R[1]), R[2]))

其中

Area(R) gives the area of a rectangle R, and 
inter( R, S) is the rectangle that is the intersection of R and S

4个矩形的情况会有点乏味,但我怀疑使用循环编程仍然比较容易,而不是使用循环。