在 C++ 中查明兩個矩形是否重疊。
我們知道可以利用兩個座標點表示一個矩形,左上角和右下角。假設有兩個矩形,需要檢查它們是否重疊。有四個座標點 (l1, r1) 和 (l2, r2)。
- l1 是第一個矩形的左上角
- r1 是第一個矩形的右下角
- l2 是第二個矩形的左上角
- r2 是第二個矩形的右下角
我們假設矩形與座標軸平行。為了解決此問題,我們需要檢查幾個條件。
- 一個矩形位於另一個矩形的上邊緣上方
- 一個矩形位於另一個矩形的左邊緣的左側。
示例
#include<iostream>
using namespace std;
class Point {
public:
int x, y;
};
bool isOverlapping(Point l1, Point r1, Point l2, Point r2) {
if (l1.x > r2.x || l2.x > r1.x)
return false;
if (l1.y < r2.y || l2.y < r1.y)
return false;
return true;
}
int main() {
Point l1 = {0, 10}, r1 = {10, 0};
Point l2 = {5, 5}, r2 = {15, 0};
if (isOverlapping(l1, r1, l2, r2))
cout << "Rectangles are Overlapping";
else
cout << "Rectangles are not Overlapping";
}輸出
Rectangles are Overlapping
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP