要判断两个矩形是否相交,可以通过比较两个矩形的边界来判断。

假设第一个矩形的左下角坐标为(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;
}
``
C++ 判断两个矩形是否相交 给出左下角坐标和右上角坐标

原文地址: https://www.cveoy.top/t/topic/iEPD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录