【发布时间】:2011-09-17 10:01:28
【问题描述】:
我正在尝试编写一个模拟,其中两个圆圈会发生碰撞,然后在弹性碰撞中弹开。每个圆都有一个位置、速度、质量和半径。我已经完成了碰撞检测,但我不知道如何确保得到的速度是真实的。
我知道作用在每个上的力是相同的,并且已经计算出合力的角度,但我需要找出力的大小。给定速度和速度,如何求解速度
我正在使用强制,因为它非常适合程序的其余部分,如果有更简单的方法,请告诉我。
【问题讨论】:
我正在尝试编写一个模拟,其中两个圆圈会发生碰撞,然后在弹性碰撞中弹开。每个圆都有一个位置、速度、质量和半径。我已经完成了碰撞检测,但我不知道如何确保得到的速度是真实的。
我知道作用在每个上的力是相同的,并且已经计算出合力的角度,但我需要找出力的大小。给定速度和速度,如何求解速度
我正在使用强制,因为它非常适合程序的其余部分,如果有更简单的方法,请告诉我。
【问题讨论】:
首先,弄清楚球是如何从任意角度的墙上反弹的。如果 v 是速度向量,a 是法线(垂直于壁并指向壁外的单位向量),则 v' = v - 2 (v .a) a 为您提供反弹后的速度。
其次,考虑两个相同但相反动量的球的碰撞,就像两个相同但速度相同的球,互相扫视。每个球都会像撞墙一样,即与两个球相切的线。
第三,处理一般情况,我们使用Center of Mass Frame。质心的速度为:
vCM = (mAvA + mBvB)/(mA+mB)
这是观察者的速度,在观察者看来,两个球似乎具有相等且相反的动量。该观察者框架中的速度是:
vA' = vA - vCM
vB' = vB - vCM
现在我们使用上面的解决方案(“秒”)来求碰撞后的速度,vA'' 和 vB''(仍在 CM 框架中)。最后我们回到原来的帧:
vA''' = vA'' + vCM
vB''' = vB'' + vCM
【讨论】:
使用动量守恒定律和能量守恒定律。您必须为每个圆假设一些虚构的质量,这样您就可以求解碰撞后产生的速度。
设 m1 和 m2 分别是圆 c1 和 c2 的质量,速度分别为 v1 和 v2。那么,
m1.v1 + m2.v2(碰撞前)= m1.v1 + m2.v2(碰撞后)(动量的缺点) 上面的eqn是一个向量方程。
应用能量守恒:势能 + 动能(碰撞前)= 锅能 + 肯能(碰撞后)
【讨论】: