1. 程式人生 > >計算幾何----判斷兩矩形是否相交

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

問題定義:給定兩個邊與座標軸平行的矩形,分別由左上角與右下角兩點指定(以此同時,我們可以用右上和左下的兩個點來進行推出同樣的結果。),即矩形(P1,P2)與(P3,P4),判斷兩矩形是否相交。

我的思路:如下圖所示,首先求出P1與P3點在X方向較大值與Y方向較大值的交點,在下圖中就是P3,用紅點(記為M點)表示。

然後求出P2與P4點在X方向較小值與Y方向較小值的交點,在下圖中就是P2,用橙色點(記為N點)表示。

如果M點的X座標和Y座標值均比N點相應的X座標和Y座標值小,亦即M和N可以分別構成一個矩形的左上角點和右上角點,則兩矩形相交;其餘情況則不相交。

                                   圖1

下圖給出第二個示例,表明相交則矩形的某一個頂點位於另一矩形內部作為判斷依據是錯誤的。

                            圖2

圖3給出了相互包含的情況:

                            圖3

下圖給出了不相交時的示例,兩矩形為上下關係,可見紅點不在橙色點左上角,不能構成矩形,因此不相交。

                          圖4

下面的例子同上,給出了兩矩形為左右關係的情況。

                 圖5