判断矩形与矩形、圆、三角形的相交问题
注:以下的矩形均为轴对齐矩形
1.矩形与矩形的相交判断
参考自:
力扣--矩形面积
力扣--矩形重叠
判断两个矩形是否相交最简单算法_程序员正茂的博客-CSDN博客_矩形相交算法
快速判断两个矩形是否相交_szfhy的博客-CSDN博客_判断两个矩形是否相交
如何判断两个矩形相交_Season的博客-CSDN博客_判断两个矩形相交
主要有两种方法。
1)方法一:用边界判断
第一个矩形:(x1,y1),(x2,y2)
第二个矩形: (x3,y3),(x4,y4)
如果满足max(x1,x3)<=min(x2,x4)&&max(y1,y3)<=min(y2,y4),则相交。
亦可转化为:x1 <= x4 && x3 <= x2 && y1 <= y4 && y3 <= y2
并且新构成的矩形为(max(x1,x3),max(y1,y3))、(min(x2,x4),min(y2,y4))。可以根据新的点求出矩形的面积,如果用新的点求出的边长小于0,说明是不相交的。
2)方法二:用两个矩形的中心坐标的向量来判断
假设两个矩形的中心为p1、p2。那么其构成的向量p1p2的x分量的绝对值要小于两矩形长的一半,向量p1p2的x分量的绝对值要小于两矩形宽的一半。
2.矩形与圆的相交判断
主要有以下三种比较好的方法,相较于矩形与矩形之间的相交判断难了一个档次。
1)方法一
具体推导见参考链接:
怎样判断平面上一个矩形和一个圆形是否有重叠? - 知乎
力扣力扣--【圆和矩形是否有重叠】
这种做法很巧妙,可以理解为是在找出圆心距离矩形最近的距离,然后判断该距离是否小于圆的半径。
2)方法二
具体推导见参考链接:
力扣--一张图,秒懂。
这种做法相对方法一好理解,就是找到圆心在哪些区域圆是与矩形相交的,然后依次判断圆心是否在这些区域即可。
3)方法三
力扣 验证矩形区域内的点到圆心最小距离(x,y 分别独立选择,三行代码(骗浏览))
其实本质上就是方法一的变种,但是更偏向代数去理解。
3.矩形与三角形的相交判断
目前只想到方法一,有待后面继续更新
1)方法一:
参考自:三角形和矩形相交的判断_双杯献酒的博客-CSDN博客
分为三种情况:
三角形和矩形相交
(1)如果三角形在矩形内部, 则三角形和矩形相交.
这种情况判断三角形的三个点是否在矩形内即可。
(2)如果矩形在三角形内部, 则三角形和矩形相交
这种情况判断矩形的四个点是否在三角形内即可。
(3)如果三角形至少有一条边(线段)和矩形的至少一条边(线段)相交,
这时候应该就得通过求出三角形三条边的直线方程,判断直线方程与矩形的交点个数来判断了。
判断矩形与矩形、圆、三角形的相交问题相关推荐
- 平面中判断线段与矩形是否相交
文章目录 1. 原理 2. 实现 3. 参考 1. 原理 这个问题的算法思路挺简单的.分成两步来判断: 判断线段的两个端点是否在矩形内,如果两个端点至少有一个在矩形内,说明线段与矩形相交. 如果两个端 ...
- 判断两个矩形相交以及求出相交的区域
问题:给定两个矩形A和B,矩形A的左上角坐标为(Xa1,Ya1),右下角坐标为(Xa2,Ya2),矩形B的左上角坐标为(Xb1,Yb1),右下角 坐标为(Xb2,Yb2). (1)设计一个算法,确定两 ...
- java判断两个矩形是否相交_判断矩形相交以及求出相交的区域
问题:给定两个矩形A和B,矩形A的左上角坐标为(Xa1,Ya1),右下角坐标为(Xa2,Ya2),矩形B的左上角坐标为(Xb1,Yb1),右下角 坐标为(Xb2,Yb2). (1)设计一个算法,确定两 ...
- java判断线与矩形相交_判断任意多边形与矩形的相交(线段与矩形相交或线段与线段相交)...
任意多边形与矩形的相交,其实就是判断多条线段是否与这个矩形相交,再简单点就是判断线段是否与矩形的每一条边相交了.那现在,我们先来看看判断一条线段与矩形的其中一条线段的相交的情况(上方水平线): (图形 ...
- ARM6818开发板画任意矩形,圆形,三角形,五角星,6818开发板画太极,画五星红旗(含码源与思路)
本文利用6818开发板完成LCD屏上绘制任意的矩形,圆形,三角形或五角星形图案,还有绘制太极,五星红旗的方案. 目录 映射 绘制矩形 代码思路 代码实现 实践出真知 绘制圆形 代码思路 代码实现 绘制 ...
- HTML矩形与矩形、圆形与圆形、矩形与圆形元素的碰撞判断与动画
1. 矩形与矩形 判断两个矩形是否碰撞,判断条件:d1Right > d2Left && d1Bottom > d2Top && d1Left < d ...
- 不使用物理系统判断两个矩形是否碰撞
如图所示,不使用物理系统去检测两个物体是否碰撞的效果. 注意:两个物体如果一直相交,在Update中处理的时候会一直输出,在实际使用时需要注意相交时的处理. 直接上代码: 检测碰撞使用的是两个节点,节 ...
- OpenGL-第一个三角形与矩形(两个三角形)
目录 新建项目,进行配置 项目结构 项目属性配置 依赖项设置 三角形代码 部分函数解释 main.cpp 运行截图 矩形代码 main.cpp 运行截图 简单的三角形与矩形 白色三角形 白色矩形 全部 ...
- Java黑皮书课后题第3章:**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠
**3.28(几何:两个矩形)编写一个程序,提示用户输入两个矩形中心的x坐标和y坐标以及矩形的宽度和高度,然后判断第二个矩形是在第一个矩形内,还是和第一个矩形重叠 题目 题目概述 运行示例 破题 代码 ...
最新文章
- composer自动载入的四种方式
- Net设计模式实例之建造者模式(Builder Pattern)(2)
- java 发送cookie_Java如何在Servlet中发送cookie?
- CS224n笔记一:开端
- 牛客挑战赛30 C 小G砍树 换根dp+组合
- 数据结构 5分钟带你搞定哈希表(建议收藏)!!!
- C++中STL-vector的用法
- [RL] pip 安装 atari-py
- vue项目打包部署-----解决打包后访问资源失败问题
- LeetCode 264.丑数 II(动态规划)
- 基于javaweb的学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)
- 多家多平台拿走的AD封装库Altium-3D封装库+超全原理图库含51+STM32库
- 一文教你如何解决TXC晶振工作不正常的问题
- 【资源分享】Dll Injector(DLL注入器)
- Word 替换为空值时不管用怎么办 出现[只设格式]导致替换无效怎么办
- 利用python3 爬取 网易云 上 周杰伦所有专辑,歌曲,评论,并完成可视化分析已经歌曲情绪化分析...
- 关于 该设备或资源(127.0.0.1)未设置为接受端口 的解决办法
- 易语言调用大漠Ocr文字识别游戏角色坐标
- 如何获取到微信公众号的网址
- 为自己加油!--ThoughtWorks面试后感