如何计算重叠区域?

时间:2011-08-22 06:36:13

标签: math

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

enter image description here

1 个答案:

答案 0 :(得分:11)

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

如果这些是否定的,则没有重叠。