C++ 判断两个矩形是否相交 给出左下角坐标和右上角坐标
要判断两个矩形是否相交,可以通过比较两个矩形的边界来判断。
假设第一个矩形的左下角坐标为(x1, y1),右上角坐标为(x2, y2); 第二个矩形的左下角坐标为(x3, y3),右上角坐标为(x4, y4)。
首先,需要判断两个矩形是否在x轴上有重叠区域。如果x2 < x3 或者 x4 < x1,表示两个矩形在x轴上没有重叠,直接返回false。
然后,需要判断两个矩形是否在y轴上有重叠区域。如果y2 < y3 或者 y4 < y1,表示两个矩形在y轴上没有重叠,直接返回false。
如果两个矩形在x轴和y轴上都有重叠区域,则表示两个矩形相交,返回true。
下面是一个C++的实现示例:
bool isRectangleOverlap(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4) {
if (x2 < x3 || x4 < x1) {
return false;
}
if (y2 < y3 || y4 < y1) {
return false;
}
return true;
}
使用示例:
int main() {
int x1 = 0, y1 = 0, x2 = 2, y2 = 2;
int x3 = 1, y3 = 1, x4 = 3, y4 = 3;
bool result = isRectangleOverlap(x1, y1, x2, y2, x3, y3, x4, y4);
if (result) {
cout << "两个矩形相交" << endl;
} else {
cout << "两个矩形不相交" << endl;
}
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/iEPD 著作权归作者所有。请勿转载和采集!