1.3.2 引入速度概念修改位置属性

在物理学中,位置变化的快慢可以用速度来描述。这里首先定义一个速度向量,该向量一般是<vx,vy,vz>的形式,我们也可以定义一个某方向的速率标量。比如定义ball.velocity=vector(10,0,0)和velocity=10的效果可能是一样的。首先看以下程序段:

本段程序第一行加载了3D模块,第二行在坐标(-5,0,0)处建立了一个蓝色的半径为0.5的小球,第三行定义了速度矢量,第四行到第六行根据“末位置=初位置+速度×时间”对位置信息进行更新。

执行程序,只发现小球在最右侧位置,没有观察到小球的移动,这主要是由于程序执行过快的原因。

在Python中,我们经常用dt描述时间的微小变化量,这里定义dt=0.1,则上述程序的后三行变成如下语句:

为能够观察出小球移动的间隔效果,我们人为地放慢程序运行速度,在每个小球位置之间使程序人为强制暂停1秒钟,为此要引入time模块,并用time.sleep(1)的语句告诉程序暂停1秒钟。整个程序修改如下(完整的程序代码见“源代码\1-3-2.py”):

运行程序后发现:小球出现后,每隔1秒钟,小球才会移动到下一个位置。