我试图检测并处理几个形状不规则的圆形物体之间的碰撞。
我认为,我必须使用像素完美的碰撞检测。我是对的(我想这不是很有效率)?
但是如何计算碰撞的结果呢?我想模拟"弹跳"对象。
很容易计算出"反弹"具有规则形状的角度。但在这种情况下呢?如何进行?有没有众所周知的方法?
答案 0 :(得分:2)
任何处理碰撞的算法都需要使用曲线本身的精确定义,而不仅仅是其像素格式,它不是矢量化的,无论如何都无法在2D空间上正确拉伸或转换。
在3D世界中,典型的方法是将所有表面划分为三角形。因此,为了计算碰撞,它等效于计算圆心与每个三角形的距离,其具有良好建立的算法和数学表示。现在将其缩小为2D,我认为你需要
确定碰撞。注意这样你也可以很好地处理弹跳情况,其中碰撞角度= =弹跳角度。
有几种方法可以加速这一过程。一种常见的方法是将不规则形状的每个部分环绕成一个圆圈。 (2D)或"球体(3D)。如果外圆/球体不与您的圆相撞,则其中包含的线也不会。
您可以阅读计算机图形以了解有关此类内容的更多信息。