矩形相交判斷超簡單方法

設矩形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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章