为什么这个Mayavi动画在随机迭代时停止执行



我读了一些与我相似的问题,但没有一个答案有效。。。我想制作一个动画,一个接一个地绘制列表中的点。问题是,从12级开始,它就停止了。我测试了gc.collect(generation=1(,但它不起作用。。。这是我的代码的末尾:

@mlab.animate(delay=100)
def updateAnimation():
   k=0
   for k in range(len(X)):
      mlab.points3d(X[k], Y[k], Z[k], S[k], color=C[k], scale_factor=10)
      yield
updateAnimation()
mlab.show()

X、 Y、Z、S和C是长度为136的列表。我使用的是python 3.9.12和mayavi 4.8.0。这可能是一些愚蠢的设置。。。但我是马亚维的新手。

非常感谢您的真知灼见。

p3d = mlab.points3d(X[0], Y[0], Z[0], S[0], color=C[0], scale_factor=10)
@mlab.animate(delay=100)
def updateAnimation():
   k=0
   for k in range(len(X)):
      p3d.set(x=X[k], y=Y[k], z=Z[k], s=S[k], color=C[k])
      yield
ua = updateAnimation()
mlab.show()

`

这个(未经测试的代码(是从这里复制的http://docs.enthought.com/mayavi/mayavi/mlab.html#id10

创建可视化一次,然后在updateAnimation过程中对其进行更新。ua = updateAnimation()将结果存储在一个变量中,这样即使从异步协程调用动画,动画也能继续运行。如果数据的形状保持不变,则使用set(),否则使用reset()。这适用于point3d和plot3d,但不幸的是,并非适用于mlab中的所有绘图。

相关内容

  • 没有找到相关文章

最新更新