gpt4 book ai didi

python - 动画化 mayavi points3d 图

转载 作者:太空狗 更新时间:2023-10-29 17:47:48 27 4
gpt4 key购买 nike

我正在尝试制作粒子轨迹的视频。但是,不知何故我的场景永远不会更新。这是一个非常简单的例子:

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、Mayavi 4.1、VTK 5.8

最佳答案

只需更改为:

...

    for (x, y, z) in zip(xs, ys, zs):
print('Updating scene...')
plt.mlab_source.set(x=x, y=y, z=z)
yield

...

根据 documentation,您甚至不需要 f.scene.render() mlab_source.set 保证刷新。

此外,由于数据的shape 没有改变,因此您不需要使用mlab_source.reset

我也测试过并且工作正常。

关于python - 动画化 mayavi points3d 图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14287185/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com