IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    判断两个矩形是否相交

    未央发表于 2014-11-10 05:26:00
    love 0
    假定矩形是用一对点表达的(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)


    未央 2014-11-10 13:26 发表评论


沪ICP备19023445号-2号
友情链接