页首Html代码

算法学习

1.判断矩形是否和圆相交

转自Milo Yip https://www.zhihu.com/question/24251545

设c为矩形中心,h为矩形半長,p为圆心,r为半径。

方法是计算圆心与矩形的最短距离 u,若 u 的长度小于 则两者相交。

1. 首先利用绝对值把 p - c 转移到第一象限,下图显示不同象限的圆心也能映射至第一象限,这不影响相交测试的结果:

 

然后,把 v 减去 h,负数的分量设置为0,就得到圆心与矩形最短距离的矢量 u。下图展示了4种情况,红色的u是结果。

 

 

 

最后要比较 u 和 r 的长度,若距离少于 r,则两者相交。

posted @ 2019-12-18 10:05  noigel  阅读(137)  评论(0编辑  收藏  举报
js脚本