Ich versuche ein Video über die Flugbahnen von Teilchen zu machen. Allerdings wird meine Szene irgendwie nie aktualisiert. Hier ist ein sehr einfaches Beispiel:Animieren eines 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()
Wenn ich dieses Skript ausführen, zeigt es ein Fenster mit den zwei Punkten und der Animations-GUI. Es wird auch ein kontinuierlicher Stream von "Aktualisiere Szene ..." Nachrichten auf dem Terminal ausgegeben. Die Szene zeigt jedoch keinerlei Bewegung.
Was mache ich falsch?
Python 2.7, MayaVi 4.1, VTK 5.8
Ich bin auch neu mit Mayavi - haben Sie versucht mit mlab.clf (figure = mayavi_scene), um die Zahl in jedem Zyklus zu löschen? – Griff