1 rectint函数
A 和 B 是一个思维向量 [x,y,width,height]
area = rectint(A,B)
2 Python实现
class Rectangle:
def __init__(self, x, y,w,h):
self.x = x
self.y = y
self.width = w
self.height = h
ra = Rectangle(3., 3., 5., 5.)
rb = Rectangle(1., 1., 4., 4.)
# intersection here is (3, 3, 4, 3.5), or an area of 1*.5=.5
def calc_area(rect1, rect2):
xl1, yb1, xr1, yt1 = rect1.x,rect1.y,rect1.x+rect1.width,rect1.y+rect1.height
# (xl1, yb1)为矩形左下角坐标, (xr1, yt1)为右上角坐标
xl2, yb2, xr2, yt2 = rect2.x,rect2.y,rect2.x+rect2.width,rect2.y+rect2.height
# (xl2, yb2)为矩形左下角坐标, (xr2, yt2)为右上角坐标
xmin = max(xl1, xl2)
ymin = max(yb1, yb2)
xmax = min(xr1, xr2)
ymax = min(yt1, yt2)
width = xmax - xmin
height = ymax - ymin
if width <= 0 or height <= 0:
return 0
cross_square = width * height
return cross_square
print(area(ra, rb))
# 4.0