我想要做的是更新循環中的mayavi陰謀。我想要在我指定的時間更新劇情(與動畫裝飾器不同)。更新mayavi陰謀循環
所以的代碼示例一塊,我想獲得運行是:
import time
import numpy as np
from mayavi import mlab
V = np.random.randn(20, 20, 20)
s = mlab.contour3d(V, contours=[0])
for i in range(5):
time.sleep(1) # Here I'll be computing a new V
V = np.random.randn(20, 20, 20)
# Update the plot with the new information
s.mlab_source.set(scalars=V)
然而,這並不能顯示數字。如果我在循環中包含mlab.show()
,那麼這會竊取焦點並且不允許代碼繼續。
我覺得我應該使用的是性狀數字(例如this)。我可以按照示例特徵應用程序來運行更新滑塊時實時更新的圖形。但是,當我的代碼要求更新時,我無法更新它;現在的焦點是visualization.configure_traits()
'被盜'。
任何指針或適當的文檔鏈接,將不勝感激。
編輯
大衛·溫徹斯特的回答變得更近了一步,以解決方案。
但是,正如我在評論中指出的那樣,我無法在time.sleep()
步驟中用鼠標操作圖形。正是在這一步中,在完整的程序中,計算機將忙於計算V的新值。在此期間,我希望能夠操縱該數字,用鼠標旋轉它。
程序在我的最新評論,你可以簡化代碼和操作更新期間的數字是不帶'time.sleep()'。這對你有用嗎?由於Mayavi被移植到'qt',所以解決方案應該比使用'wx'更好:0 –