2017-07-30 94 views
0

我现在正在制作一个游戏,用户可以制作一个形状(它可以是用户希望用于曲线的任何形状)并让它们彼此交互。我需要一个准确的碰撞检测算法,可以运行速度很快(最多150个poligons),我设法impressment SAT
但它似乎分崩离析在更复杂的shapes.Can有人指示我相关的算法为我的情况?每种形状的碰撞检测(2D)

回答

0

SAT适用于凸多边形。

在一般情况下(您的形状可以是凹形的),您可以保存多边形的边列表并检查与sweep line algorithm的边交点。 (另请注意,一个多边形可能完全包含其他多边形)

在某些情况下,为每个形状创建凸包并检查船体与SAT相交是否值得。如果发生,则使用更高级的算法来检查真实交集是否存在。

+0

我的最终目标是在运动时使用这种算法,您认为扫描线就足够了吗?也许我可以将形状分为三角形和SAT。 –