使用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
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短