矩形相交问题
近期碰到一个问题,需要在一个Canvas画布中,画出多个矩形且不重叠,即矩形相交且不相互包含。
矩形1(x1,y1,w1,h1)
矩形2(x2,y2,w2,h2)
即左上角x坐标,左上角y坐标,宽,高
判断两个矩形的中心坐标的水平和垂直距离
矩形1中心(x1c,y1c)
矩形2中心(x2c,y2c)
当中心满足一下条件,即可说明两个矩形相交
- |x1c-x2c|<=w1/2+w2/2
- |y1c-y2c|<=h1/2+h2/2
相交矩形的面积
假设两个矩形相交,设相交之后的矩形3,且矩形3的左上角坐标为(x3_1,y3_1),右下角坐标为(x3_2,y3_2)
x3_1=max(x1,x2)
y3_1=max(y1,y2)
x3_2=max(x1+w1,x2+w2)
y3_2=max(y1+h1,y2+h2)
即可求出相交矩形的面积
由此问题也衍生出其他相关的计算几何问题,也可以做相关的了解
参考:
https://yq.aliyun.com/articles/398884
https://www.cnblogs.com/zhoug2020/p/7451340.html
网友评论