[cocos2d-x]判断两个矩形是否有交叉区域
2024-10-20 08:42:14
bool Rect::intersectsRect(const Rect& rect) const
{
return !( getMaxX() < rect.getMinX() ||
rect.getMaxX() < getMinX() ||
getMaxY() < rect.getMinY() ||
rect.getMaxY() < getMinY());
}
可以用这个函数来判断两个矩形是否有交叉区域,比如用来判断飞机是否碰撞,渔网和鱼是否碰撞等
交叉的时候上面的判断条件就等价于:
1、getMaxX() < rect.getMinX()
2、rect.getMaxX() < getMinX()
3、getMaxY() < rect.getMinY()
4、rect.getMaxY() < getMinY()
当同时满足上面四个条件时,可以判断为交叉。
简单的理解方法:
而判断不交叉只需要上述四个条件有一个为真即不交叉。从图中可以看出:
1、当A的minX比B的maxX还要大时,不交叉。
2、当A的maxX比B的minX还要小时,不交叉。
3、当A的minY比B的maxY还要大时,不交叉。
4、当A的maxY比B的minY还要小时,不交叉。
反之,如果要交叉,上面四个条件都要同时为假,才能判定为交叉,即:
1、A的minX比B的maxX还要小,同时
2、A的maxX比B的minX还要大,同时
3、A的minY比B的maxY还要小,同时
4、A的maxY比B的minY还要大,此时才交叉。
最新文章
- ZeroMQ接口函数之 :zmq_sendmsg – 从一个socket上发送一个消息帧
- AX 2012 template table use in Query
- mysql高性能索引策略
- 下一代GNU/Linux显示服务Wayland 1.12正式发布
- 对于Spark1.3进行编译
- JS实现页面回到顶部效果
- zedboard 驱动理解
- Qt入门(12)——Qt国际化
- TCP/IP笔记 四.应用层(1)——DNS
- Java经典案例之-判断质数(素数)
- Javascript 面向对象编程—封装
- 一个ios的各种组件、代码分类,供参考
- 【LOJ 6041】「雅礼集训 2017 Day7」事情的相似度
- mysql递归
- shell删除三天前或者三天内的文件
- java总结:double取两位小数的多种方法
- Q: Is Consul eventually or strongly consistent?
- mybatis中namespace配置方式
- kafuka资料学习
- jsonp的工作原理
热门文章
- Linux系统管理_用户管理
- 微服务 Zipkin 链路追踪原理(图文详解)
- 编辑距离(Minimum Edit Distance)
- jmeter时间戳
- 利用nginx自带的反向代理以及轮询功能实现应用的负载均衡
- PHP 代码解一元二次方程
- vcenter异常死机无法重启
- C++ 之 宏定义
- [Kogel.Subscribe.Mssql]SQL Server增量订阅,数据库变更监听
- day07 方法重写&;super、this、static关键字&;JVM的类加载顺序题目