mayavi 中的矢量剖切面不起作用
Vector cut plane in mayavi doesn't work
我刚刚尝试测试 mayavi 的 vector_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" 行后空一个。
如果有帮助请告诉我。
你的
伊夫·德尔海
我刚刚尝试测试 mayavi 的 vector_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" 行后空一个。
如果有帮助请告诉我。
你的
伊夫·德尔海