python 粒子动画_Python教程之粒子运动轨迹动态绘图

今天我们来讲一下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

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值