C 矩形相交 相包含 相離關係判斷

2022-03-17 19:02:43 字數 751 閱讀 1145

矩形相交 包含 問題。參考

假定矩形是用一對點表達的(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軸上都小於兩個矩形長或寬的一半之和.這樣,分兩次判斷一下就行了.

bool crossline(rect r1,rect r2)

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

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

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

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

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

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