判斷兩個矩陣是否重疊

2021-09-11 19:43:00 字數 890 閱讀 7872

題目描述

給定兩個矩陣:

前提:兩個矩陣的邊均與x軸和y軸平行,即軸對齊的矩形

將第乙個矩形記作a,第二個矩形記作b,判斷矩形a與矩形b是否重疊(邊沿重疊也認為是重疊),如果重疊則返回重疊面積。。

演算法分析

反向思考,我們不妨先解決出「不重疊」的情況,即b矩陣,可能在a的左側、右側、上側、下側。

提交**:

#include#include#includeusing namespace std;

struct rectangle

};int main()

double width = min(p2_x, p4_x) - max(p1_x, p3_x);

double height = min(p2_y, p4_y) - max(p1_y, p3_y);

cout << width * height << endl;

return 0;

}

若對於每個矩形,我們給出它的一對相對頂點的座標,此時兩個矩形的交的面積:

#include#includeusing namespace std;

double max(double x1, double x2);

double min(double x1, double x2);

int main()

double max(double x1, double x2)

double min(double x1, double x2)

判斷兩個矩形是否重疊

兩個矩形的邊均與x軸或y軸平行,即軸對齊的矩形 將第乙個矩形記做a,第二個矩形記做b 判斷矩陣a與矩陣b是否重疊 邊沿重疊也認為是重疊 第一種方案,正向思維 按照一般的思路,先列舉出所有的矩形重疊的情況,然後,判斷是否是其中一種,如圖所示,共有四種重疊情況,我們使用紫色代表矩形a,紅色代表矩形b,並...

C 判斷兩個矩形是否重疊

矩形以列表 x1,y1,x2,y2 的形式表示,其中 x1,y1 為左下角的座標,x2,y2 是右上角的座標。如果相交的面積為正,則稱兩矩形重疊。需要明確的是,只在角或邊接觸的兩個矩形不構成重疊。給出兩個矩形,判斷它們是否重疊並返回結果。示例 1 輸入 rec1 0,0,2,2 rec2 1,1,3...

演算法 判斷兩個區間是否重疊

判斷兩個區間是否重疊 假設區間表示為 start,end 先存在兩個區間a,b.兩個區間的關係有兩種 重疊與不重疊 重疊的情況有4種,兩種相交,兩種包含 很容易想到,此處不示意 不重疊有兩種情況 a在b前面,a在b後面 因此很容易得到判斷區間重疊的方法 1 正向判斷,列出四種重疊的情況,滿足其一,則...