两个矩形求相交区域

两个矩形求相交区域

// 判断两个矩形是否相交,相交返回经纬边界
bool hill_shade::check_compute_intersection(float block_left, float block_right, float block_top, float block_bottom,
    float b_left, float b_right, float b_top, float b_bottom,
    float& intersection_left, float& intersection_right,
    float& intersection_top, float& intersection_bottom)
{
    // 判断两个矩形是否相交
    if (block_left > b_right || b_left > block_right || block_top < b_bottom || b_top < block_bottom) {
        return false;  // 两个矩形不相交
    }

    // 计算相交矩形的边界值
    intersection_left = std::max(block_left, b_left);
    intersection_right = std::min(block_right, b_right);
    intersection_top = std::min(block_top, b_top);
    intersection_bottom = std::max(block_bottom, b_bottom);

    return true;  // 两个矩形相交
}

你可能感兴趣的:(C++,算法,矩形相交)