请帮助。我正在研究一种具有此要求的算法。
给定4个“右”矩形(右边的矩形边缘平行于x或y),找到任何一个覆盖的区域
例如,下图中的4个矩形中的任何一个都覆盖了灰色区域。enter image description here
我不太明白这个问题。有人可以帮帮我吗?
答案 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个矩形的情况会有点乏味,但我怀疑使用循环编程仍然比较容易,而不是使用循环。