两个旋转立方体之间的碰撞检测

时间:2010-09-06 12:55:57

标签: c++ c algorithm

  

可能重复:
  Collision detection between two general hexahedrons

现在我通过查找最小值和最大值以及进行边界框检查来进行碰撞检测。不幸的是,我的播放器立方体与相机一起旋转,当玩家处于45度角时,这会产生一些令人讨厌的结果。限制是每个立方体都是轴对齐并且有8个顶点,但是玩家可能会被旋转(基本上我对每个顶点都是sin,cos并围绕立方体的中心旋转。鉴于此,我怎样才能进行准确的碰撞检测我的播放器已旋转?

由于

3 个答案:

答案 0 :(得分:1)

找到每对平面的交点线,然后确定该交叉线是否至少部分位于两个多边形内。

或者,对于更简单的解决方案,假装玩家是一个球体。

答案 1 :(得分:1)

也许Separating axis theorem适用于您的问题的三维。

答案 2 :(得分:-1)

如果其中一个立方体没有旋转,那么很容易检查单个点是否在立方体内(带边界检查)。因此,取下旋转立方体的每个8节点,检查它是否属于未旋转的立方体。