2011-08-22 182 views
3

有两个重叠的矩形,我需要计算重叠区域(宽度和高度)。请这个图片:如何计算重叠区域?

enter image description here

+0

这类问题似乎更适合数学堆栈交换网站。 –

+2

这是一个常见的编程面试问题。 – selbie

+0

我相信这不应该被视为offtopic。这是一个与编程有关的有效问题,它可以有一个明确的答案(它已经有一个)。 – tzot

回答

8

如果直角R1是X1,Y1和具有宽度W1,H1,同样矩形R2是X2,Y2与宽度W2和高度H2,然后你可以找到左红色区域等的边缘(假设两个矩形的宽度和高度是正如此位置是左下方的角):

left = max(x1, x2); 

类似地,对于右,底部和顶部:

right = min(x1 + w1, x2 + w2); 
bottom = max(y1, y2); 
top = min(y1 + h1, y2 + h2); 

的重叠区域的大小是

height = top - bottom 
width = right - left. 

如果任一如果这些是否定的,不存在重叠。

+0

我用这个来帮助我解决一个编程编程。它可能没有“代码”;但它确实提供了算法 - 编码的一个重要部分。 – Phil

+0

可能不是这类问题的正确站点,但仍然帮助我为信号处理提供了一个很好的小包。 +1为一个坚实的答案 – Mizmor