矩形相交 包含 问题。参考

假定矩形是用一对点表达的(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;
}

转载于:https://www.cnblogs.com/benpaobadaniu/p/4693732.html

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

  1. java判断线与矩形相交_判断任意多边形与矩形的相交(线段与矩形相交或线段与线段相交)...

    任意多边形与矩形的相交,其实就是判断多条线段是否与这个矩形相交,再简单点就是判断线段是否与矩形的每一条边相交了.那现在,我们先来看看判断一条线段与矩形的其中一条线段的相交的情况(上方水平线): (图形 ...

  2. 判断矩形是否相交(包含,点相交,边相交)

    矩形的相交问题也是一个常用的问题,最近碰到的有点多,连续碰到了三四题了,每次都要重新写,不如直接总结出来,直接写成一个板子,以后就能抄了: 目前只考虑没有角度的矩形相交 首先是矩形的相交问题:矩形的相 ...

  3. 几何算法:矩形碰撞和包含检测算法

    大家好,我是前端西瓜哥.今天来讲讲几何算法中,比较经典的算法:矩形碰撞和包含检测算法. 矩形碰撞检测是被广泛使用的算法. 比如在游戏中,为了优化图形碰撞判断效率(复杂不规则图形之间的碰撞算法很复杂), ...

  4. 编码器A相B相Z相的定义

    编码器的信号又A相.B相.Z相的定义,这个和电机的ABC相的没有关系,本文介绍编码器A相.B相.Z相的概念. 编码器A相B相Z相的概念 谓U相.V相.W相是指的电机的主电源的三相交流供电,与编码器没有 ...

  5. 编码器z相 C语言代码,编码器a相b相z相的使用方法

    编码器a相b相z相的使用方法 编码器只有A相.B相.Z相信号的概念.A相.B相.Z相是编码器的通道输出信号,所谓的U相.V相.W相是交流电机主电源的三相主回路供电. 编码器的A相.B相.Z相信号中,A ...

  6. 判断两个矩形相交以及求出相交的区域

    问题:给定两个矩形A和B,矩形A的左上角坐标为(Xa1,Ya1),右下角坐标为(Xa2,Ya2),矩形B的左上角坐标为(Xb1,Yb1),右下角 坐标为(Xb2,Yb2). (1)设计一个算法,确定两 ...

  7. 如何判断两个矩形相交

    假定矩形是用一对点表达的(minx, miny) (maxx, maxy),那么两个矩形        rect1{(minx1, miny1)(maxx1, maxy1)}        rect2 ...

  8. java判断两个矩形是否相交_判断矩形相交以及求出相交的区域

    问题:给定两个矩形A和B,矩形A的左上角坐标为(Xa1,Ya1),右下角坐标为(Xa2,Ya2),矩形B的左上角坐标为(Xb1,Yb1),右下角 坐标为(Xb2,Yb2). (1)设计一个算法,确定两 ...

  9. c语言两个矩形相交部分坐标,C++判断矩形相交的方法

    本文实例讲述了C++判断矩形相交的方法.分享给大家供大家参考.具体如下: 已知2矩形原点和宽高,判断2矩形相交,相交矩形 相交判断原理: 假定矩形是用一对点表达的(minx, miny) (maxx, ...

  10. 步进电机的细分驱动中1-2相, W1-2相, 2W1-2相, 4W1-2相 表示什么意思?

    今天碰到一个很古老的问题:步进电机的1-2相, W1-2相, 2W1-2相, 4W1-2相 表示什么意思? 有意思的是,很多年前没看步进电机驱动器的说明书了,自己也完全不记得了,那时候也没有写博客的习 ...

最新文章

  1. USB 之三 常用抓包/协议分析工具(Bus Hound、USBlyzer、USBTrace、USB Monitor Pro等)
  2. boost::multiprecision模块实现MPC后端对多精度复数的使用的测试程序
  3. 数值和布尔值的解构赋值
  4. django学习----01HelloWorld
  5. JVM垃圾回收算法标记清除和复制算法
  6. php mysql插入多个列_php mysql插入多条记录
  7. Javascript特效:电商商品展示放大镜
  8. 苹果Mac3D建模软件SketchUp Pro很专业
  9. 第三章:Servlet基础
  10. 如何加密文件及文件夹
  11. 高一数学微课堂【教学视频】
  12. 100+道Java经典面试题(面中率高)
  13. 微信反编译(二)源码还原
  14. 数据项、数据字典、模式等基本概念辨析 数据库系统结构
  15. 微软自带dns服务器,微软改进Windows 10加密DNS服务器配置(DoH) 现在设置起来更方便...
  16. 适用于计算机/手机的常用音乐播放器推荐
  17. SpringBoot使用@Slf4j注解
  18. win10使用技巧----便签固定到桌面
  19. 三极管判断极性的方法
  20. 谷歌seo自建博客做外链有用吗?谷歌外链怎么做?

热门文章

  1. ajax基本概念,方法
  2. tp cli模式产生日志导致web环境写入不了
  3. chromium之message_pump_win之二
  4. 学习webbench需要掌握的基础知识(webbench源代码学习心得)
  5. Activemq 使用ssl说明
  6. JAX-WS编写webservice
  7. 天气暖和了,我却感冒了
  8. Connect By在10g中得增强, nocycle关键字等
  9. 数字电平(一):TTL和CMOS
  10. 20190820 On Java8 第十章 接口