mayavi 中的矢量剖切面不起作用

Vector cut plane in mayavi doesn't work

我刚刚尝试测试 mayavivector_cut_plane 功能:

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

然而它似乎不起作用,因为矢量场切割不遵循红色框:

这是相关的截屏视频:http://dropcanvas.com/tqaxc

知道我做错了什么吗?

我在 linux ubuntu 16.04:

上遇到了与 Mayavi2 4.4.3 相同的问题

我在这里找到了解决方案: https://github.com/enthought/mayavi/issues/164

编辑文件(以根用户身份): /usr/lib/python2.7/dist-packages/mayavi/components/cutter.py

并在文件末尾添加以下两行:

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

注意缩进,如果您不熟悉 python:3 个空格。在先例 "def" 行后空一个。

如果有帮助请告诉我。

你的

伊夫·德尔海