2011-03-08 205 views
0

我打算制作一个程序,该程序会在奇怪形状的多边形内移动一些圆形形状。使用奇怪形状的多边形进行碰撞检测

我似乎无法弄清楚如何使用边缘进行碰撞检测并使形状正确反弹。

我确信这个问题已经解决过,但我找不到一个很好的例子。

我的主要问题是: 找出圆是否碰到了它周围的多边形的边缘。 一旦命中发生,计算命中点的法线以找出反射向量。

任何人都可以指向正确的方向吗?

感谢,杰森

回答

1

你需要做一个circle line intersection test

为了加快速度,您可以先检查边界框。例如,如果直线的起点和终点都位于圆的最左侧坐标的左侧,则不能有交点。

+0

非常感谢,但还有一个问题。计算法线反映的公式是什么? – Jason 2011-03-08 11:27:06

+0

杰森:看到这个答案:http://wsackoverflow.com/questions/1243614/how-do-i-calculate-the-normal-vector-of-a-line-segment – 2011-03-08 12:53:48

+0

Awsome谢谢! – Jason 2011-03-08 17:59:17