A.Q*_*oga 5 physics collision-detection
我一直在学习关于phisics编程中的碰撞,我有一个很大的疑问.
在球体中思考,当一个球体同时与2个球体碰撞时,我认为使两个球体移动的力量大小必须除以2.但是当我编程它的时候,我总是看到一个球体的速度比第二个球体的速度快,导致我编程它的方式首先与另一个球体碰撞.让我们展示一个图像来清楚地绘制问题:
首先它检测红色球体.然后检测到碰撞,力的大小就像只有一个球体.然后它检测橙色球体,力量小于第一个.
知道我必须使用什么来编程这个,或者我是否有任何误解?
mod:
此外,如果你帮助我寻找能够很好地实现这一目标的机制,我会给你50多个.
问题是,对于二体碰撞,能量守恒和动量守恒基本上足以确定结果,但对于三体问题,情况不再如此。即使你按照 Mark 和 Daren 的建议去做,并在一个时间步内确定所有碰撞体,它也不会真正让你有任何进展,因为 1)你仍然不知道如何在碰撞后移动物体;2)每次碰撞期间要考虑多少个对象的主要问题不是时间步长,而是对象的变形,如果正确对待这一点,时间步长内的更新顺序并不重要。例如,如果您有非常软的物体,它们可能会接触很多时间步,而非常硬的物体只有几个时间步。
这个问题的好答案有点棘手,其原因包含在您的奖金问题中,即机制是什么。该机制基本上只是您在简化问题中没有考虑的事情:物体的变形、滑动、旋转等,但这些通常是三体碰撞中的主要问题。
你做什么完全取决于你需要多少准确度。您可以假装所有碰撞都发生在两个物体之间,或者第三个碰撞两个物体总是完全对称的(这是非常罕见的事件)。作为更准确的开始,您可以认为它们是可变形的物体,假设每次碰撞都有一个所有物体都变形最大的时刻,以及这些变形产生的力是多少,并根据这些力将物体发送出去( F=dp/dt)。不过,还可以进行其他近似,例如根据首先被击中的物体来划分动量传递,并给出一个与 do(变形量)/(到下一个物体的距离)成比例的量,或者类似的东西。