我目前正在制作一个用户可以制作形状的游戏(它可以是用户想要用于曲线的每个形状)并让它们相互交互。我需要一个可以快速运行的精确碰撞检测算法(某事物)像最多的150个poligons,我设法实现SAT 但它似乎在更复杂的形状上崩溃。有人指示我根据我的情况相关算法吗?
答案 0 :(得分:0)
SAT适用于凸多边形。
在一般情况下(您的形状可以是凹形),您可以保存多边形的边列表并检查与sweep line algorithm的边缘交点。 (另请注意,一个多边形可能完全包含其他多边形)
在某些情况下,为每个形状创建凸包并检查与SAT的船体交叉是否值得。如果发生,则使用更高级的算法来检查是否存在真正的交叉点。