我刚刚开始一个小型粒子模拟器,我希望扩展它以解决一些物理问题,但我在尝试为它们设置动画时遇到了问题。基本上取决于您选择哪种随机分布,粒子将在给定长度的区域中“振荡”。我想在前面的 10 个步骤中展示粒子的“历史”。
这是代码
from numpy import *
import matplotlib.pyplot as plt
import pylab
import time
pylab.ion()
N = 10
r = random.randint(-100,100,2*N).reshape(N,2)
line, = plt.plot(r[:,0], r[:,1],'o')
for i in range(100000):
newdatax = r[:,0] + random.rand(N)
newdatay = r[:,1] + random.rand(N)
line.set_ydata(newdatay)
line.set_xdata(newdatax)
plt.title("At timestep: %d" %i)
plt.hold(True)
plt.draw()
time.sleep(1.0/30)
我想要的是行更新不会在每次迭代时清除画布并重绘,我只是希望它这样做,例如,每 10 帧(迭代),这将使我更容易在视觉上跟踪粒子。
我还想实现另一件事,但并非绝对必要,是否可以在每个“o”周围绘制一个框(正方形)或一个圆形或一个三角形?这样该点以该框/圆/三角形为中心?这将再次使跟踪粒子变得更加容易。如果我可以指定哪个“o”(点)获得此属性(正方形),那就更好了。