我试图使粒子的运动轨迹的视频。 然而,不知何故我的场景永远不会更新。 这里是一个非常简单的例子:
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()
如果我运行此脚本,它显示了两分,动画GUI的窗口。 它还打印的连续流中的“更新场景...”的消息在终端上。 然而,现场并没有展示任何任何运动。
我究竟做错了什么?
Python 2.7版,4.1 Mayavi的,VTK 5.8