如何判斷兩個矩形相交

2022-08-11 16:51:13 字數 901 閱讀 2787

假定矩形是用一對點表達的(minx, miny) (maxx, maxy),那麼兩個矩形

rect1

rect2  

相交的結果一定是個矩形,構成這個相交矩形rect的點對座標是:  

minx  

=  max(minx1,

minx2)  

miny  

=  max(miny1,

miny2)  

maxx  

=  min(maxx1,

maxx2)  

maxy  

=  min(maxy1,

maxy2)  

如果兩個矩形不相交,那麼計算得到的點對座標必然滿足:  

( minx 

maxx ) 或者 ( miny 

maxy

) 判定是否相交,以及相交矩形是什麼都可以用這個方法一體計算完成。

從這個演算法的結果上,我們還可以簡單的生成出下面的兩個內容:

㈠ 相交矩形: (minx, miny) (maxx, maxy)

㈡ 面積: 面積的計算可以和判定一起進行

if ( minx>maxx ) return 0;

if ( miny>maxy ) return 0;

return (maxx-minx)*(maxy-miny)

第二種方法

兩個矩形相交的條件

:兩個矩形的重心距離在x和

y軸上都小於兩個矩形長或寬的一半之和.這樣

,分兩次判斷一下就行了

.即:重心距離在x軸上投影長度 < 兩個矩形的在x軸的長度之和/2

重心距離在y軸上投影長度 < 兩個矩形在y軸的寬度之和/2

bool crossline(rect r1,rect r2)

如何判斷兩個矩形相交

2009 09 22 00 39 16 標籤 分類 gis 假定矩形是用一對點表達的 minx,miny maxx,maxy 那麼兩個矩形 rect1 rect2 相交的結果一定是個矩形,構成這個相交矩形rect的點對座標是 minx max minx1,minx2 miny max miny1,m...

兩個矩形相交問題 判斷是否相交

最近,面試遇到一道演算法題目如下 兩個矩形,判斷是否相交 如果相交面積大於零,輸出相交部分的左上角以及右下角座標點,否則,輸出 1,1 1,1 沒有給出完善的解決方案,在面試官的細心引導下,解決了兩個線段相交輸出交點的問題。因此下來在網上搜了相關的問題。1 下面是 判斷兩個矩形是否相交的方法 下圖是...

判斷兩個矩形相交以及求出相交的區域

問題 給定兩個矩形a和b,矩形a的左上角座標為 xa1,ya1 右下角座標為 xa2,ya2 矩形b的左上角座標為 xb1,yb1 右下角 座標為 xb2,yb2 1 設計乙個演算法,確定兩個矩形是否相交 即有重疊區域 2 如果兩個矩形相交,設計乙個演算法,求出相交的區域矩形 1 對於這個問題,一般...