因此,在d <(r1 r2)这样的简单条件下,两个圆之间的碰撞检测很容易被覆盖,但如果物体在2个时间步之间相互穿过会发生什么?

我想编写一个程序,在一个球池中移动一个圆柱体,其初始速度和加速度不是0.如果厚度使计算复杂化太多,那么我可以考虑细线非常硬的细线与无限厚度

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

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

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

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

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

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

如何计算罚款?我对计算适当的穿透力和碰撞力的正常法线也有点困惑 .