js、C++ 判断两个矩形是否相交代码

方法一 用js写示例

//矩形碰撞检测,设矩形的左上顶点是(x, y), 宽w, 高h, 那么只要存在以下情况一定不相交, 否则是相交的
function rectangleCol(x1, y1, w1, h1, x2, y2, w2, h2) {
    var maxX = x1 + w1 >= x2 + w2 ? x1 + w1 : x2 + w2;
    var maxY = y1 + h1 >= y2 + h2 ? y1 + h1 : y2 + h2;
    var minX = x1 <= x2 ? x1 : x2;
    var minY = y1 <= y2 ? y1 : y2;


    if (maxX - minX < w1 + w2 && maxY - minY < h1 + h2) { //边界值 
        return true; //相交
    } else {
        return false;
    }
}

方法二用C++ 写示例

int Controller::isRectOverlap( MyDiv & r1, MyDiv & r2)
    int   r1left      =r1.x;
    int   r1top       =r1.y;
    int   r1right     =r1left + r1.w - 1;
    int   r1bottom    =r1top + r1.h - 1;
    int   r2left      = r2.x;
    int   r2top       = r2.y;
    int   r2right     = r2left + r2.w - 1;
    int   r2bottom    = r2top + r2.h - 1;

    if((r1left > r2right || r1top > r2bottom || r2left > r1right || r2top > r1bottom)) {
       return 0;//不相交
    }
    return 1;
}

如图已知矩形1、矩形2的宽高坐标,判断连个矩形是否有相交处:

猜你喜欢

转载自blog.csdn.net/qq_40015157/article/details/129316914