20.2 粒子的运动

我们希望粒子按照自然逼真的方式运动。为简单起见,在本书中,我们将粒子的净加速度(net acceleration)限定为一个常量;例如,由重力产生的加速度。(我们也可以为由其他作用力产生的加速度指定大概的近似值,比如风力。)另外,我们的粒子不做任何碰撞检测。

p(t)为一个粒子沿着一条曲线运动(到时间t时)的位置。当时间等于t时,粒子的瞬时速度(instantaneous velocity)为:

v(t)=p(t)

当时间等于t时,粒子的瞬时加速度(instantaneous acceleration)为:

a(t)=v(t)=p(t)

回顾以下微积分知识:

1.如果函数F(t)为函数f(t)的任意一个原函数(也可理解为不定积分),则F(t)的导数为f(t);也就是Fʹ(t)=f(t)。

2.如果函数F(t)为函数f(t)的任意一个原函数,e为任意常量,则F(t)+e也为f(t)的一个原函数。而且,对于f(t)的每个原函数的形式都是F(t)+e

3.我们使用积分符号表示f(t)的任意原函数,

f(t)dt=F(t)+c

由速度和加速度的定义可知,速度函数是加速度函数的积分,而位置函数是速度函数的积分。也就是:

p(t)=v(t)dtv(t)=a(t)dt

现在,假设加速度为常量(即,它不随时间而变化)。当时间t=0时,粒子的初始速度v(0)=v0、粒子的初始位置p(0)=p0。然后把常量加速度代入速度函数:

v(t)=a(t)dt=ta+c

我们用初始速度来求解常量:

v(0)=0a+c=v0

则速度函数为:

v(t)=ta+v0

我们把它代入位置函数,求得:

p(t)=v(t)dt=(ta+v0)dt=12t2a+tv0+k

我们用初始位置来求解常量:

p(0)=120a+0v0+k=k=p0

则位置函数为:

p(t)=12t2a+tv0+p0

换言之,粒子的运动轨迹p(t)完全取决于它的初始位置、初始速度和加速度常量(其中,时间t≥0)。这不难理解,因为当我们知道粒子从哪个地方开始运动、有多快以及朝哪个方向运动,还有整个过程中的加速情况,我们就可以计算出粒子的运动轨迹。

让我们来看一个例子。假设,在坐标系原点上放置一门大炮,它的炮管与x轴成30°角(参见图20.2)。在该坐标系中,p0=(0,0,0)(即,炮弹的初始位置位于原点),重力加速度常量a= (0,−9.8,0)m/s2(即,由重力产生的加速度为9.8 米/秒2)。另外,假设我们已经测出大炮在开火的一瞬间,炮弹的初始速度为50米/秒。那么,初始速度v0=50(cos30°,sin30°,0)m/s≈(43.3,25.0,0)m/s。记住,速度(velocity)是由速率(speed)和方向(direction)组成的,我们要将速率乘以单位方向向量(cos30°,sin30°,0),这样就得到了炮弹的运动轨迹:

图20.2
图20.2 给出粒子的初始位置、初始速度和重力加速度,我们可以计算出粒子在xy平面上随时间而移动的轨迹(这里没有标出时间单位)。

如果我们把炮弹的运行轨迹绘制在xy平面上(z坐标始终为0),就可以得到如图20.2所示的曲线。这是我们预测出来的受重力影响的运动轨迹。

注意:你也可以不做上面那样的函数推导。如果你已经知道了粒子使用的轨迹函数p(t),那么可以直接把它写入程序。例如,当你希望粒子按照一个椭圆轨迹运动时,可以直接以一个参数化的椭圆方程来作为p(t)。

文件下载(已下载 943 次)

发布时间:2014/8/28 下午6:58:43  阅读次数:4160

2006 - 2025,推荐分辨率 1024*768 以上,推荐浏览器 Chrome、Edge 等现代浏览器,截止 2021 年 12 月 5 日的访问次数:1872 万 9823 站长邮箱

沪 ICP 备 18037240 号-1

沪公网安备 31011002002865 号