Sto provando a realizzare un video delle traiettorie di particelle. Tuttavia, in qualche modo la mia scena non si aggiorna mai. Ecco un esempio molto semplice:Animazione di un mayavi points3d plot
from __future__ import absolute_import, division, print_function
from mayavi import mlab
import numpy as np
import math
alpha = np.linspace(0, 2*math.pi, 100)
xs = np.cos(alpha)
ys = np.sin(alpha)
zs = np.zeros_like(xs)
mlab.points3d(0,0,0)
plt = mlab.points3d(xs[:1], ys[:1], zs[:1])
@mlab.animate(delay=100)
def anim():
f = mlab.gcf()
while True:
for (x, y, z) in zip(xs, ys, zs):
print('Updating scene...')
plt.mlab_source.x[0] = x
plt.mlab_source.y[0] = y
plt.mlab_source.z[0] = z
f.scene.render()
yield
anim()
mlab.show()
Se eseguo questo script, mostra una finestra con i due punti e la GUI di animazione. Stampa anche un flusso continuo di messaggi "Aggiornamento scena ..." sul terminale. Tuttavia, la scena non mostra alcun movimento.
Cosa sto sbagliando?
Python 2.7, Mayavi 4.1, 5.8 VTK
Sono nuovo nell'uso di Mayavi anche tu - hai provato a usare mlab.clf (figura = mayavi_scene) per cancellare la figura in ogni ciclo? – Griff