1.判断矩形是否和圆相交
转自Milo Yip https://www.zhihu.com/question/24251545
设c为矩形中心,h为矩形半長,p为圆心,r为半径。
方法是计算圆心与矩形的最短距离 u,若 u 的长度小于 r 则两者相交。
1. 首先利用绝对值把 p - c 转移到第一象限,下图显示不同象限的圆心也能映射至第一象限,这不影响相交测试的结果:
然后,把 v 减去 h,负数的分量设置为0,就得到圆心与矩形最短距离的矢量 u。下图展示了4种情况,红色的u是结果。
最后要比较 u 和 r 的长度,若距离少于 r,则两者相交。