Canvas中的矩形相交问题

矩形相交问题

近期碰到一个问题,需要在一个Canvas画布中,画出多个矩形且不重叠,即矩形相交且不相互包含。
矩形1(x1,y1,w1,h1)
矩形2(x2,y2,w2,h2)
即左上角x坐标,左上角y坐标,宽,高

判断两个矩形的中心坐标的水平和垂直距离

矩形1中心(x1c,y1c)
矩形2中心(x2c,y2c)
当中心满足一下条件,即可说明两个矩形相交

  1. |x1c-x2c|<=w1/2+w2/2
  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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容