如何计算重叠面积?

5
有两个重叠的矩形,我需要计算它们重叠的区域(宽度和高度)。 请看这张图片: enter image description here

这种问题似乎更适合在数学堆栈交换网站上提出。 - Mike Bailey
2
这是一个常见的编程面试问题。 - selbie
我认为这个问题不应该被关闭为离题。它是与编程有关的有效问题,并且可以有一个明确的答案(已经有一个)。 - tzot
1个回答

10
如果矩形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. 

如果其中任何一个数是负数,则它们不会有交集。


我用这个帮助我解决了一个编程问题。它可能没有“代码”,但确实提供了算法-这是编码的重要部分。 - Phil
也许这不是提问的合适场所,但它仍然帮助我组合了一个很好的信号处理程序包。对于一个扎实的答案点赞。 - Mizmor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接