1、球的碰撞
已知两球碰撞前的速度,求两球碰撞之后的速度是游戏的关键。
下面就阐述一下这里的原理:
我们可以计算得出这样一个结论:对于两个等质量小球的对心碰撞(两球速度方向在同一条直线上的碰撞),碰撞之后,交换速度。
但是对于不是对心的碰撞呢?这里可以把速度分成沿着对心的方向的速度分量,与垂直于对心方向上的速度分量。具体如下图:
如图,对于球1,其速度方向可以分为垂直于对心方向的速度
其值为Vx1*Sin(a)-Vy1Cos(a),这个方向上的速度碰撞前后不会变化。
根据上面交换速度的结论,得到球1对心方向的速度变成了Vx2*Cos(a)+Vy2*Sin(a)。
所以球1碰撞后的速度变成了下图所描述的样子。
故小球碰撞后的速度如下
X方向:(Vx1*Sin(a)-Vy1Cos(a))*Sin(a)+(Vx2*Cos(a)+Vy2*Sin(a))*Cos(a)
Y方向:(Vx1*Sin(a)-Vy1Cos(a))*Cos(a)+(Vx2*Cos(a)+Vy2*Sin(a))*Sin(a)
求球2的碰撞后速度原理也一样。