2016-06-30 5 views
2

Я просто пытался проверить vector_cut_plane особенность mayavi:Вектор вырезать самолет в 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/Библиотека/python2.7/Расс-пакеты/MayaVi/компоненты/cutter.py

и добавить в конец файла следующие 2 строки:

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

ОСТОРОЖНО, если вы не знакомы с python: 3 пробела для меня. Один пустой после прецедента «def».

Сообщите мне, если это поможет.

Ваш

Ив Делей

 Смежные вопросы

  • Нет связанных вопросов^_^