博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断两矩形是否相交
阅读量:6399 次
发布时间:2019-06-23

本文共 1493 字,大约阅读时间需要 4 分钟。

1 //判断矩形是否相交  2 bool FMath::IsRectIntersect(const FRect& rect1, const FRect& rect2)  3 {
4 bool bResult = true; 5 6 double dWidthRectA; 7 double dHeightRectA; 8 9 double dWidthRectB; 10 double dHeightRectB; 11 12 //方便计算,中心点坐标为实际坐标的2倍 13 CPoint centerRectA; 14 CPoint centerRectB; 15 16 //bottom的y坐标比top的大 17 dWidthRectA = rect1.GetBottomRight().GetX() - rect1.GetTopLeft().GetX(); 18 dHeightRectA = rect1.GetBottomRight().GetY() - rect1.GetTopLeft().GetY(); 19 20 dWidthRectB = fabs(rect2.GetBottomRight().GetX() - rect2.GetTopLeft().GetX()); 21 dHeightRectB = fabs(rect2.GetBottomRight().GetY() - rect2.GetTopLeft().GetY()) ; 22 23 centerRectA.x = GetDoubleInt(rect1.GetTopLeft().GetX()/2 + rect1.GetBottomRight().GetX()/2); 24 centerRectA.y = GetDoubleInt(rect1.GetTopLeft().GetY()/2 + rect1.GetBottomRight().GetY()/2); 25 26 centerRectB.x = GetDoubleInt(rect2.GetTopLeft().GetX()/2 + rect2.GetBottomRight().GetX()/2); 27 centerRectB.y = GetDoubleInt(rect2.GetTopLeft().GetY()/2 + rect2.GetBottomRight().GetY()/2); 28 29 30 //判断两个矩形的中心坐标的水平和垂直距离 31 if ( (fabs(double(centerRectA.x - centerRectB.x)) <= (dWidthRectA + dWidthRectB)) 32 && (fabs(double(centerRectA.y - centerRectB.y)) <= (dHeightRectA + dHeightRectB)) ) 33 {
34 bResult = true; 35 } 36 else 37 {
38 bResult = false; 39 } 40 41 return bResult; 42 43 }

本文转自博客园知识天地的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
Git 仓库大扫除
查看>>
设计模式-单例模式
查看>>
es6基础0x014:WeakMap
查看>>
九种 “姿势” 让你彻底解决跨域问题
查看>>
php中mysqli 处理查询结果集总结
查看>>
你不知道的JavaScript运算符
查看>>
小程序开发注意事项
查看>>
ECMAScript7规范中的instanceof操作符
查看>>
Hadoop HDFS原理分析
查看>>
【webpack4】基本配置和入门api
查看>>
Mac使用ssh公钥登录Linux
查看>>
【366天】跃迁之路——程序员高效学习方法论探索系列(实验阶段124-2018.02.06)...
查看>>
POJ3070-Fibonacci(矩阵快速幂)
查看>>
[vue插件]基于vue2.x的电商图片放大镜插件
查看>>
标准的组件结构
查看>>
vue——一个页面实现音乐播放器
查看>>
SVG 扬帆起航
查看>>
NET Core-学习笔记(二)
查看>>
职业生涯上的点点滴滴
查看>>
Linux下添加新硬盘,分区及挂载
查看>>