Анимация сюжета mayavi points3d

Я пытаюсь сделать видео о траекториях частиц. Однако, как-то моя сцена никогда не обновляется. Вот очень простой пример:

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() 

Если я запустил этот скрипт, он отобразит окно с двумя точками и графический интерфейс анимации. Он также печатает непрерывный поток сообщений «Обновление сцены …» на терминале. Однако сцена вообще не показывает никакого движения.

Что я делаю не так?

Python 2.7, Mayavi 4.1, VTK 5.8

2 Solutions collect form web for “Анимация сюжета mayavi points3d”

Просто перейдите на:

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

вам даже не нужен f.scene.render() , согласно документации mlab_source.set гарантирует обновление.

Кроме того, поскольку shape ваших данных не изменяется, вам не нужно использовать mlab_source.reset .

Я также тестировал и отлично работал.

Вы пробовали mlab_source.reset? Он работает даже тогда, когда изменяется длина массивов x, y и z.

В вашем случае это будет: plt.mlab_source.reset(x=x,y=y,z=z) .

  • Paraview Python - обратная операция для servermanager.Fetch ()?
  • Пример приложения python зависает при закрытии
  • Ошибка импорта DLL Python при импорте vtk
  • `Как установить и запустить` mayavi` `` pip3` с `vtk`?
  • Простая стрелка mayavi / tvtk в mlab странное поведение (выглядит как ошибка)
  • Как отобразить облако точек в vtk в разных цветах?
  • Mayavi points3d с разным размером и цветами
  • Какие рекомендуемые ресурсы и учебные пособия для изучения инструментария библиотеки VTK?
  • Как приостановить и перезапустить анимацию в VTK
  • Преобразование BMP-изображения в DICOM
  • VTK отображает изображение окна в массив numpy
  • Python - лучший язык программирования в мире.