可能重复:
Circle-Rectangle collision detection (intersection)
How to determine the collision of a circle with a rectangle?
我想检测圆与一般定位块的交叉或碰撞。 该块是矩形的,可以是任何大小或旋转。
这背后的数学是什么?
答案 0 :(得分:0)
编写一个函数,检查任意段 ab 是否与圆 C 相交。编写第二个函数,检查点 p 是否在圆 C 中。然后调用第一个函数四次,对于四个矩形边,如果所有这些都失败,则在一个角上调用第二个函数(以检查矩形是否完全在圆内)。根据您对“碰撞”的定义,您可能还需要检查圆圈是否完全位于矩形内部!
如果您要在实时模拟中调用数百万次,有多种方法可以加快计算速度。最明显的是首先检查围绕圆 C 的方 S ,然后才进行(略微)更昂贵的圆测试。