两个二维圆之间的碰撞响应



我正在尝试编写一个模拟,其中两个圆圈将碰撞,然后在弹性碰撞中弹跳分开。每个圆都有位置、速度、质量和半径。我已经有了碰撞检测,但我不知道如何确保得到的速度是真实的。

我知道作用在两个物体上的力是相同的,并且已经算出了作用力的角度,但是我需要找出作用力的大小。给定速度和速度,如何求解速度

我使用force是因为它很适合程序的其余部分,如果有更简单的方法请告诉我

首先,弄清楚球是如何从任意角度的墙上反弹的。如果v是速度矢量,a是法向量(垂直于墙并指向墙外的单位矢量),则v' = v - 2 (v。A ) A 给出反弹后的速度。

第二,考虑两个动量相等但相反的球的碰撞,就像两个相同的球,速度相等但相反,彼此擦肩而过。每个球都像撞到墙上一样,即两个球的切线。

第三,为了处理一般情况,我们使用质心系。质心速度为

CM v <子> = (m <子> v <子> + m b <子> v b <子>)/(m <子> + m b <子> )

这是一个观察者的速度,对他来说两个球的动量相等且相反。观察者所在坐标系中的速度为:

v <子> = v <子> - v <子>厘米
b v <子> = v b <子> - CM v <子>

现在我们使用上面的解("秒")来求碰撞后的速度,vAv b (仍然在CM坐标系中)。最后我们切换回原始帧:

v <子> " = v <子> " + v <子>厘米
v b <子> " = v b <子> " + v <子>厘米

利用动量守恒定律和能量守恒定律。你必须为每个圆假定一些虚构的质量,这样你才能解出碰撞后的最终速度。

设m1和m2分别为圆c1和c2的质量,速度分别为v1和v2。然后,

m1。V1 + m2。V2(碰撞前)= m1。V1 + m2。V2(碰撞后)(动量控制)上面的eqn是一个向量方程。

应用能量守恒:势能+动能(冷却前)=锅能+动能(碰撞后)

最新更新