如上图,把矩形的相交(区域重叠)分成三种(可能也有其他划分),对于第三种情况,如图中的(3),两个矩形相交,但并不存在一个矩形的顶点在另一个矩形 内部。所以那种思路存在一个错误,对于这种情况的相交则检查不出。
仔细观察上图,想到另一种思路,那就是判断两个矩形的中心坐标的水平和垂直距离,只要这两个值满足某种条件就可以相交。
矩形A的宽 Wa = Xa2-Xa1 高 Ha = Ya2-Ya1
矩形B的宽 Wb = Xb2-Xb1 高 Hb = Yb2-Yb1
矩形A的中心坐标 (Xa3,Ya3) = ( (Xa2+Xa1)/2 ,(Ya2+Ya1)/2 )
矩形B的中心坐标 (Xb3,Yb3) = ( (Xb2+Xb1)/2 ,(Yb2+Yb1)/2 )
所以只要同时满足下面两个式子,就可以说明两个矩形相交。1) | Xb3-Xa3 | <= Wa/2 + Wb/2
2) | Yb3-Ya3 | <= Ha/2 + Hb/2
即:
| Xb2+Xb1-Xa2-Xa1 | <= Xa2-Xa1 + Xb2-Xb1
| Yb2+Yb1-Ya2-Ya1 | <=Y a2-Ya1 + Yb2-Yb1
(2) 对于这个问题,假设两个矩形相交,设相交之后的矩形为C,且矩形C的左上角坐标为(Xc1,Yc1),右下角坐标为(Xc2,Yc2),经过观察上图,很 显然可以得到:
Xc1 = max(Xa1,Xb1)
Yc1 = max(Ya1,Yb1)
Xc2 = min(Xa2,Xb2)
Yc2 = min(Ya2,Yb2)
这样就求出了矩形的相交区域。
另外,注意到在不假设矩形相交的前提下,定义(Xc1,Yc1),(Xc2,Yc2),且Xc1,Yc1,Xc2,Yc2的值由上面四个式子得出。这样, 可以依据Xc1,Yc1,Xc2,Yc2的值来判断矩形相交。
Xc1,Yc1,Xc2,Yc2只要同时满足下面两个式子,就可以说明两个矩形相交。
3) Xc1 <= Xc2
4) Yc1 <= Yc2
即:
max(Xa1,Xb1) <= min(Xa2,Xb2)
max(Ya1,Yb1) <= min(Ya2,Yb2)
本文目录一览: 1、求一个可破解QQ密码的软件,可用,必有重谢 2、QQ解密软件什么软件可以解密QQ密码 3、谁有解qq密码的软件 求链接 4、有没有破QQ密码的软件 5、我的qq密码...
这款飞毛腿的型号为SPK-B100,外包装采用抽屉式,质小轻盈、双入双出是这款产品的特点。打开后我们可以看到这款充电宝的个头确实非常小巧,尺寸为93.8x62.5x23.9mm,重约198g左右...
一、ddos黑客技术qq群(黑客技术qq交流群)方法总结 1、寻求黑客交流群在QQ查找里面。选群用户查找..分类选-技术联盟-黑客技术..然后查找..很多黑客群..你可以找找多加几个。对自己有帮助`...
本文导读目录: 1、“黑老大”覆灭记:刚想控制当地娱乐场所,就被警方抓获,结果怎样? 2、“九江涉黑第一案”万飞团伙覆灭记,凶手恶贯满盈,后来怎样了? 3、杨天勇特大犯罪集团覆灭记,凶手罪行累...
连年来,美食行业的成长也是如火如荼。所以美食产物也是不绝的涌现出来,所以创业行业美食产物一试在尽最大的尽力来满意公共消费者的需求和公共消费者的口胃,所以美食产物与时俱进长短常有须要性的,这样的成长是切...
每个人都希望拥有一个健康的身体,但是很多人在饮食方面不注意,有时候大鱼大肉,暴饮暴食,导致了肠胃不好。那么肠胃不好怎么办?吃什么可以清肠胃?下面八戒就为大家介绍14种清肠胃食物。 14种清肠胃食物...