判断矩形与矩形、圆、三角形的相交问题

注:以下的矩形均为轴对齐矩形

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
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值