假定矩形是用一對點表達的(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劃線 當然,四個角的肯定不太標準 如果圓心在...