物理的な問題を解決するために拡張したい小粒子シミュレーターを始めたばかりですが、それらをアニメートしようとすると問題が発生します。基本的に、選択したランダム分布の種類に応じて、粒子は特定の長さの領域で「振動」します。前の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」(ポイント)がこのプロパティ(正方形)を取得するかを指定できれば、さらに良いでしょう。