lc 1401. 圆和矩形是否有重叠

补题:比赛时做得比较麻烦,逛讨论区时发现了个很简洁的做法

怎样判断平面上一个矩形和一个圆形是否有重叠? - Milo Yip的回答 - 知乎
https://www.zhihu.com/question/24251545/answer/27184960

https://leetcode-cn.com/problems/circle-and-rectangle-overlapping/solution/circle-and-rectangle-overlapping-by-ikaruga/

在这里插入图片描述
在这里插入图片描述
思路

  1. 计算矩形的中心点 (x0, y0)

  2. 计算矩形的中心点到圆点的向量 p
    2.1. 通过绝对值,将圆形转移至第一象限
    2.2. 在哪个象限并不重要,他们之间是相对关系

  3. 计算矩形的中心点到矩形右上角的向量 q

  4. 通过 p - q 得到从矩形右上角到圆点的向量 u
    4.1. 将分量为负数设置为 0
    4.2. 分量为负,说明可以找到更短的距离,设置为 0 相当于做垂线
    4.3. 当 x 和 y 都为负,说明圆点在矩形内

  5. 比较 u 和圆形半径 radius 的长度

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值