我是靠谱客的博主 积极流沙,最近开发中收集的这篇文章主要介绍C++ 如何判断两个矩形框有交集,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

矩形框是否有交集的判断

本人也查找了一些方法,发现直接套用公式,无法满足需求,主要是自己没有花一点时间去思考;

矩形框的判断,主要方法是判断两个矩形没有交集,然后再取反,就能判断出矩形框是否存在交集;

但是其中重要的一点是需要结合坐标系,主要是y轴数据的变化

坐标系一(普通坐标系)

在这里插入图片描述
蓝色刻度是x轴,红色刻度是y轴;

(x11, y11)和 (x12, y12)是红色矩形框的坐标

(x21, y21)和 (x22, y22)是蓝色矩形框的坐标

存在以下情况说明矩形框无交集

x12 < x21 || x22 < x11 ||  y12 > y21  || y22 > y11

接口如下

bool cal(int32_t x11,int32_t y11,int32_t x12,int32_t y12,int32_t x21,int32_t y21,int32_t x22,int32_t y22)
{    
    if(!(x12 > x21 || x22 > x11 ||  y12 > y21  || y22 > y11))
    {
        return true;   //有交集

    }else{
        return false;   //无交集
    }
}

坐标系二(针对图像中的矩形数据)

在这里插入图片描述
蓝色刻度是x轴,红色刻度是y轴;

(x11, y11)和 (x12, y12)是红色矩形框的坐标

(x21, y21)和 (x22, y22)是蓝色矩形框的坐标

存在以下情况说明矩形框无交集

x12 < x21 || x22 < x11 ||  y12 < y21  || y22 < y11

接口如下

bool cal(int32_t x11,int32_t y11,int32_t x12,int32_t y12,int32_t x21,int32_t y21,int32_t x22,int32_t y22)
{    
    if(!(x12 < x21 || x22 < x11 ||  y12 < y21  || y22 < y11))
    {
        return true;   //有交集

    }else{
        return false;   //无交集
    }
}

最后

以上就是积极流沙为你收集整理的C++ 如何判断两个矩形框有交集的全部内容,希望文章能够帮你解决C++ 如何判断两个矩形框有交集所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(65)

评论列表共有 0 条评论

立即
投稿
返回
顶部