判斷矩形是否相交

2021-06-19 10:46:34 字數 835 閱讀 7982

假定矩形是用一對點表達的(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)

判斷兩矩形是否相交

判斷兩矩形是否相交,因若矩形相交時,在x軸方向和y軸方向必然存在重疊的部分,因此可將其轉化為兩條直線是否重疊的問題上。假設矩形的表示方法為 class rectangle x,y為矩形的位置點,width表示長,height表示寬。width與height可為正負數。width 0,height 0...

OpenVc判斷矩形是否相交演算法

在opencv中,對於跟蹤的目標,通常用矩形進行圈定,但是opencv的cvfindcontours卻不會那麼精確,通常會將乙個目標分成若干個相鄰或相交或包含關係的矩形,此時需要判斷這些矩的關係,以 便進行融合,矩形之間的關係通常又很複雜,通常會有如下關係 在網上還確實不好找,有的是基於兩條線是否相...

判斷圓和矩形是否相交(非面積相交)

題解。問題很簡單,給你乙個矩形和乙個圓,問你是否他們相交。注意,這裡的相交不是面積相交。也就是說,圓在矩形內 且不相切 是不相交的。或者矩形在圓內 且矩形的四個點不在圓上 也是不相交的。那麼,我們怎麼來判斷呢?中間輪廓線是矩形的邊,各向外和內距離為圓半徑r劃線 當然,四個角的肯定不太標準 如果圓心在...