设矩形A(xa1,ya1),(xa2,ya2),B(xb1,yb1),(xb2,yb2)
其中:
xa1<=xa2,ya1<=ya2
xb1<=xb2,yb1<=yb2
先看线段相交的判断:
La:xa1,xa2 xa1<=xa2
Lb:xb1, xb2 xb1<=xb2
考虑对立面(只有两种情况):
不相交的条件:xa2<xb1||xa1>xb2
由摩根律,得出相交条件:xa2>=xb1&&xa1<=xb2
矩形A B相交的条件为:分别在X和Y轴上的投影相交。
也就是:
对X轴,线段相交条件,有
xa2>=xb1(1)
xa1<=xb2(2)
又
xa1<=xa2(3)
xb1<=xb2(4)
(1),(3)<=> xa2>=max(xa1,xb1);
(2),(4)<=> xb2>=max(xa1,xb1);
min(xa2,xb2)>=max(xa1,xb1);
同理可得:min(ya2,yb2)>=max(ya1,yb1);
故相交条件为:
min(xa2,xb2)>=max(xa1,xb1)&&min(ya2,yb2)>=max(ya1,yb1)
其中:
xa1<=xa2,ya1<=ya2
xb1<=xb2,yb1<=yb2
时间: 2024-10-12 13:06:52