如何进行正确的2d网格到圆形碰撞检测

时间:2012-03-27 20:07:45

标签: c++ c 2d collision-detection

我正在尝试为我的游戏做一个网格到圆圈的碰撞系统。我已经看到一些例子,你迭代网格的所有顶点并检查它们是否在圆圈内。但问题是有时顶点不在圆内,而是顶点形成的线。在这种情况下,碰撞检查在评估为true时评估为false。如何对这种类型进行良好的碰撞检测? (用c / c ++)

3 个答案:

答案 0 :(得分:3)

如果您需要,可以计算从直线到圆心的距离。但我认为这样做太昂贵了。如果距离低于收音机,则可能发生碰撞。您需要检查线的这一部分是否在点之间。 Distance line to point

答案 1 :(得分:2)

实际上,一个快速谷歌让你知道这是一个已经堆栈溢出的问题的重复:Circle line-segment collision detection algorithm?

答案 2 :(得分:1)

迭代所有边缘。并且不要担心顶点:如果顶点在圆圈内,一些边界必然会穿过它(除非整个网格在圆圈内,我猜不太可能)。