• C:矩形相交、相包含、相离关系判断


    矩形相交 包含 问题。参考

    假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形
        rect1{(minx1, miny1)(maxx1, maxy1)}
        rect2{(minx2, miny2)(maxx2, maxy2)}  
    相交的结果一定是个矩形,构成这个相交矩形rect{(minx, miny) (maxx, maxy)}的点对坐标是:  
        minx   =   max(minx1,   minx2)  
        miny   =   max(miny1,   miny2)  
        maxx   =   min(maxx1,   maxx2)  
        maxy   =   min(maxy1,   maxy2)  
       
    如果两个矩形不相交,那么计算得到的点对坐标必然满足:  
      ( minx  >  maxx ) 或者 ( miny  >  maxy ) 
       
    判定是否相交,以及相交矩形是什么都可以用这个方法一体计算完成。

    从这个算法的结果上,我们还可以简单的生成出下面的两个内容:

    ㈠ 相交矩形:  (minx, miny) (maxx, maxy)

    ㈡ 面积: 面积的计算可以和判定一起进行
            if ( minx>maxx ) return 0;
            if ( miny>maxy ) return 0;
            return (maxx-minx)*(maxy-miny)

    第二种方法

    两个矩形相交的条件:两个矩形的重心距离在X和Y轴上都小于两个矩形长或宽的一半之和.这样,分两次判断一下就行了.

    bool CrossLine(Rect r1,RECT r2)
    {
    if(abs((r1.x1+r1.x2)/2-(r2.x1+r2.x2)/2)<((r1.x2+r2.x2-r1.x1-r2.x1)/2) && abs((r1.y1+r1.y2)/2-(r2.y1+r2.y2)/2)<((r1.y2+r2.y2-r1.y1-r2.y1)/2))
    return true;
    return false;
    }

     
  • 相关阅读:
    用函数装饰一首诗
    [转]最常用的15大Eclipse开发快捷键技巧
    [转]python 模块 chardet下载及介绍
    python手动设置递归调用深度
    view-xpath
    开源项目的贡献流程
    MIT许可证
    scrapy分布式的几个重点问题
    【bzoj1026】[SCOI2009]windy数 数位dp
    【bzoj5064】B-number 数位dp
  • 原文地址:https://www.cnblogs.com/benpaobadaniu/p/4693732.html
Copyright © 2020-2023  润新知