0

所以 2 个圆之间的碰撞检测很容易用 d < (r1 + r2) 之类的简单条件覆盖,但是如果对象在 2 个时间步长内相互穿过会发生什么?

我想编写一个程序,在一个初始速度和加速度不为 0 的球池中移动一个圆柱体。如果厚度使计算过于复杂,那么我可以考虑具有无限厚度的极硬线细线

碰撞问题图解,未按比例绘制 http://i.imgur.com/An1GJxI.png

圆柱体直立并与 z 轴对齐。它的底座以恒定的速度在一个任意方向上滑动,因此无论它从碰撞中获得多大的力,它的路径都不会改变。球在随机运动中移动,它们自己的碰撞是单独计算的,这里不关心。

我想使用惩罚碰撞响应,但我无法确定穿透深度。如果有更简单的非弹性碰撞响应,我也可以尝试。

因为它是数值解,所以每个时间步的位置是谨慎的。如果速度没有被限制,可能会出现以下问题:

对于单个时间步,球和圆柱体都在移动,如果它们的速度足够快,球将从 Tn 直接穿过圆柱体到 Tn+1,并且不通过简单距离测试 d < (r1 + r2 )

如果球和球体相互穿过,如果发生附图中的问题,我应该如何使用一阶近似找到撞击点?检查它们是否碰撞的正确条件是什么?应该如何计算惩罚力以反映正确的碰撞?

惩罚力应该如何计算?我对计算适当的穿透力和适当的碰撞力法线也有些困惑。

4

0 回答 0