所以我一直在研究支持多边形和圆形的 2d 物理引擎。我已经将分离轴定理用于除圆-圆之外的所有碰撞组合。这是引擎的基本格式:
*注意:不是实际代码
推进所有身体。
for every body a
{
Vector2 sum = Vector2.Zero;
for every body b where b != a
{
sum += a.collides(b).MinimumTranslationVector;
}
a.Position += sum;
a.velocity += sum;
}
这是我遇到的问题的视频:http ://www.youtube.com/watch?v=kSZeuP4AiQ0&feature=youtu.be
错误是在开始附近看到的弹簧效应。我一直在绞尽脑汁想这个问题,但我一无所获。谁能告诉我问题是什么?