赞
踩
今天我们来讲一下Python中的动态绘图库--matplotlib.animation,以粒子运动轨迹为例来说明如何绘制动态图。
假设按照圆周运动,如下图所示:
image-20200829214510346
为了模拟这个运动,我们需要如下信息:粒子的起始位置、速度和旋转方向。因此定义一个通用的Particle类,用于存储粒子的位置及角速度。
class Particle:
def __init__(self, x, y, ang_vel):
self.x = x
self.y = y
self.ang_vel = ang_vel
对于特定粒子,经过时间t后,它将到达圆周上的下一个位置。我们可以这样近似计算圆周轨迹:将时间段t分成一系列很小的时间段dt,在这些很小的时段内,粒子沿圆周的切线移动。这样就近似模拟了圆周运动。粒子运动方向可以按照下面的公式计算:
v_x = -y / (x **2 + y **2) ** 0.5
v_y = x / (x **2 + y **2) ** 0.5
计算经过时间t后的粒子位置,必须采取如下步骤:
1)计算运动方向(v_x和v_y)
2)计算位置(d_x和d_y),即时段dt、角速度和移动方向的乘积
3)不断重复第1步和第2步,直到时间过去t
class ParticleSimulator:
def __init__(self, particles):
self.partic
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。