两个2d圆圈之间的碰撞响应

时间:2011-09-17 10:01:28

标签: java physics collision

我正在尝试编写一个卡片,其中两个圆圈会发生碰撞然后在弹性碰撞中反弹。每个圆都有一个位置,速度,质量和半径。我已经完成了碰撞检测,但我不知道如何确保产生的速度是真实的。

我知道作用于每个部队的力量是相同的,并且已经计算出所产生的力的角度,但我需要找到力量的大小。鉴于速度和速度,如何解决速度

我正在使用力量,因为它非常适合程序的其他部分,如果有更简单的方法请告诉我。

2 个答案:

答案 0 :(得分:2)

首先,弄清楚球如何从具有任意角度的墙壁反弹。如果 v 是速度矢量而 a 是法线(垂直于墙壁并指向它的单位矢量),那么 v' = v - 2( v。a a 为您提供反弹后的速度。

其次,考虑两个相等但相反动量的球的碰撞,就像两个相同但相反但速度相反的相同球,彼此掠过。每个球都会像撞击墙一样,即与两个球相切的线。

第三,为了处理一般情况,我们使用Center of Mass Frame。质心的速度为:

v CM =(m A v A + m v <子>乙 的)/(米<子> A + M <子>乙

这是两个球似乎具有相同和相反动量的观察者的速度。观察者框架中的速度是:

v A ' = v A - v CM
v B ' = v B - v CM

现在我们使用上面的解决方案(“秒”)来找到碰撞后的速度, v A '' v B < / sub>''(仍然在CM框架中)。最后,我们转回原始框架:

v A ''' = v A '' + v CM
v B ''' = v B '' + v CM

答案 1 :(得分:0)

使用动量守恒定律和能量守恒定律。你必须为每个圆圈假设一些虚构的质量,这样才能解决碰撞后产生的速度。

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

m1.v1 + m2.v2(碰撞前)= m1.v1 + m2.v2(碰撞后)(动量的缺点) 上面的eqn是一个向量方程式。

应用能量守恒:潜在的能量+动力能量(前列)= Pot Ener + Kien能量(碰撞后)