我正在尝试开发一种算法来确定两个框(但我认为它适用于任何凸多面体)是否相交。我将使用它进行碰撞检测。
每个多面体的状态都表示为其质心的平移向量和一个方向矩阵(3x3 正交表示对象空间坐标)。
我的一般想法是取两个多面体的每个面,找出它的平面方程(通过应用多面体方向和平移分量),然后遍历另一个多面体的每个顶点,并确定它们是否都是在平面的同一侧,如果它们是,我确定这两个对象不相交。
至于碰撞检测部分,我会检测它们是否相交,如果它们相交,我会在它们接触的那一刻进行二分搜索,并在那个时刻通过找到最接近的另一个对象的顶点来尝试找到碰撞的顶点我之前找到的用来确定接触点的飞机。
我的问题是,这个算法是否正确,如果是,是不是矫枉过正?我可以以某种方式节省一些支票,或加快流程吗?