2004/09/30 | 碰撞问题——自修
类别(Flash进修) | 评论(2) | 阅读(325) | 发表于 16:41
问题:用flash演示现实中的小球运动时,并不是(也不可能)将每一瞬间展示出来,而是周期性地截取一些时间点进行展示。演示时,我们根据前一时间点的状态(始态)计算出后一时间点的状态(终态),计算时需考虑匀速,变速,碰撞等情况。本篇即是讨论碰撞情况的计算。

Flash 动画

如上图所示,有A球和B球,其速度分别为V1,V2,半径分别为R1,R2。
1。判断——是否相碰:根据运动的相对性原理,可将A球的速度反向后叠加到B球上,然后将A球看作静止的,而B球的速度则是-V1V2的合向量(以下简称V)。沿着合向量V的方向作延长线,并从A球的球心向此延长线作垂线,得到线段AC,如果AC<=(R1+R2),则两球必然相碰,否则不会相碰。
2。计算——何时相碰:B球沿合向量V方向运动,当运动到B'处时与A球相碰,运动的距离为BB',则运动时间t=BB'/V,求BB'的问题是个较简单的三角问题,仔细看图即知。

Flash 动画

3。确定——最终状态:假设始态与终态间的时间间隔为T(一个截图周期),前面已计算出从始态到碰撞之间的时间t,那么从碰撞到终态的时间当然就是(T-t)了。碰撞前,各小球分别以初始的速度V1,V2运动,根据S=V*t即可求得各自在碰撞前的位移量。碰撞后,小球的速度发生变化,假设变为V1',V2',只要求得这两个向量,碰撞后发生的位移也就立即可得了。上图即是求解V1',V2'的示意图。图中,将原来的速度V1,V2分别向直线AB方向和垂直AB的方向作投影。再根据动量定理m1*v1=m2*v2'(上图中假设了m1=m2)求得传递的动量,最后计算合向量,即求得V1'V2'。
0

评论Comments