我正在实现一个物理引擎来模拟类似蠕虫的生物。问题是,它们能够相互游过并占据空间的同一点。所以你对环境有一些了解,我在这里提供一个视频:http: //www.box.net/shared/mlddkslszbxd59cfdhpc
所以我需要做的是结合一个碰撞检测和解决算法来克服这个问题。对于检测部分,我一直在使用包围圈;每个蠕虫都有一个外部粗圆圈,如果交叉,则会触发围绕每个身体部分放置的较小细颗粒检测圆圈的检测:
那一点相对容易。更困难的一点是在发生碰撞时决定做什么。我的第一个想法是简单地迫使有问题的点质量彼此远离,但这会产生一些相当奇怪的效果。我猜想一种更现实的方法会改变违规点质量的速度,从而基本上将它们击落。那么我的问题是如何推导出这些速度和相关的力。
以防万一它不完全明显,每个蠕虫都是由弹簧和点质量制成的。蠕虫的每个身体部分在静止时呈矩形,有 4 个点质量和 6 个弹簧(因为还有两个对角弹簧)。
为任何帮助干杯,我真的很感激!:-) 本。