判斷兩矩形是否相交

2021-07-04 08:24:53 字數 766 閱讀 7586

判斷兩矩形是否相交,因若矩形相交時,在x軸方向和y軸方向必然存在重疊的部分,因此可將其轉化為兩條直線是否重疊的問題上。

假設矩形的表示方法為:

class rectangle

;

x,y為矩形的位置點,width表示長,height表示寬。width與height可為正負數。

width>0,height>0時,點(x,y)在矩形的左下角;

width>0,height<0時,點(x,y)在矩形的左上角;

width<0,height>0時,點(x,y)在矩形的右下角;

width<0,height<0時,點(x,y)在矩形的右上角;

判斷是否矩形r1,r2是否相交可轉化為x軸與y軸的直線是否相交,判斷兩直線是否相交的思路是相交部分的直線長度必然》0:

bool iscross(const rectangle &r1,const rectangle &r2)

上述方法,可順便求出相交部分的width和height,但其正負號以及相交矩形的位置點(x,y)則需再另行判斷,即上述方法不管矩形以什麼形式來表示均適用。

先將兩直線的起點與終點進行排序(排序為日常的排序,非絕對值後再排序),若位置點在矩形的左邊,取排序後的第2點為相交直線的起點;若位置點在矩形的右邊,取排序後的第3點為相交直線的起點。

如在x軸方向上,直線ab,直線cd,若ab>0或cd>0時(位置點在左邊),width為正,當a>c,x=a,當ad,x=b,當b

判斷矩形是否相交

假定矩形是用一對點表達的 minx,miny maxx,maxy 那麼兩個矩形 rect1 rect2 相交的結果一定是個矩形,構成這個相交矩形rect的點對座標是 minx max minx1,minx2 miny max miny1,miny2 maxx min maxx1,maxx2 maxy...

計算幾何 判斷兩矩形是否相交

問題定義 給定兩個邊與座標軸平行的矩形,分別由左上角與右下角兩點指定 以此同時,我們可以用右上和左下的兩個點來進行推出同樣的結果。即矩形 p1,p2 與 p3,p4 判斷兩矩形是否相交。我的思路 如下圖所示,首先求出p1與p3點在x方向較大值與y方向較大值的交點,在下圖中就是p3,用紅點 記為m點 ...

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

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