2009-05-28 221 views
0

我有一个球在一个立方体内移动,我检测它何时离开立方体(带有一个边界球和一个边界框)。 现在我想检测球从哪一侧出去。然后我可以将球重定向到正确的方向。我怎么能用球的“世界”矩阵来做到这一点?XNA碰撞检测

我应该自己跟踪球的坐标,还是应该从世界矩阵中推导出它们?

回答

2

我会重新开始碰撞。你有六个平面(每一个[point,normal unit vector]对)和一个球体([point,radius] pair)。

检查对每架飞机的点。要做到这一点,从点上减去平面上球体半径放大的单位矢量。 (Point - = PlaneUnitVector * radius)

现在,用一些向量数学,你可以看到它所在的平面的哪一侧。

然后,您将使用飞机的单位矢量进行反弹计算。

接下来的问题是您一次穿越多个飞机的情况。