2016-06-30 16 views
2

我只是想测试的mayavivector_cut_plane功能:矢量切割平面在Mayavi的不工作

import numpy as np 
from mayavi import mlab 

x, y, z = np.mgrid[0:1:20j, 0:1:20j, 0:1:20j] 

u = np.sin(np.pi*x) * np.cos(np.pi*z) 
v = -2*np.sin(np.pi*y) * np.cos(2*np.pi*z) 
w = np.cos(np.pi*x)*np.sin(np.pi*z) + np.cos(np.pi*y)*np.sin(2*np.pi*z) 

src = mlab.pipeline.vector_field(u, v, w) 
mlab.pipeline.vector_cut_plane(src, mask_points=2, scale_factor=3) 

mlab.show() 

但是它似乎并没有工作,因为矢量场砍不符合红框架:

enter image description here

下面是相关的截屏:http://dropcanvas.com/tqaxc

任何想法我做错了什么?

回答

0

我Mayavi2 4.4.3遇到了同样的问题在Linux操作系统Ubuntu 16.04:

我发现这里的解决方案: https://github.com/enthought/mayavi/issues/164

编辑文件(如根): /usr/lib中/ python2.7/DIST-包/ Mayavi的/组件/ cutter.py

,并在文件的结尾处添加以下两行:

def _cut_function_changed(self): 
     self.cutter.cut_function.on_trait_change(self.cutter.update, "normal, origin") 

注意缩进,如果你不熟悉Python:3个空格。在先例“def”后排空。

让我知道它是否有帮助。

此致

伊夫Delhaye