Можем ли мы изменить связность сеток в поверхностных объектах майяви?
Положение проблемы
Я использую mlab.mesh для построения поверхностей многих объектов. В настоящее время для каждого объекта я создаю отдельный объект поверхности, используя mlab.mesh
функция. Этот наивный подход быстро становится дорогим, так как количество создаваемых поверхностных объектов увеличивается.
Идея для решения проблемы
В этой ссылке автор управляет набором данных и его связностью для многих линий. Поэтому он избегает создания множества объектов mlab, но вместо этого имеет только один. Я хотел бы применить ту же идею к моей проблеме. Однако я сам не знаю, как построить конвейер для объекта mesh. Кроме того, я видел из документа функции сетки, что при использовании функции mlab.mesh
Связность между этими точками подразумевается связностью в массивах.
Есть ли способ изменить это поведение?
MWE Извините за длинный код. Далее, вместо 4 отдельных поверхностных объектов, я хотел бы иметь один.
import numpy as np
from numpy import array
from mayavi import mlab
surfpt = array([[[[ 3.00000000e-01, 1.62000000e-01, -6.00000000e+00],
[ 3.00000000e-01, 1.62000000e-01, 0.00000000e+00]],
[[ 2.83745173e-01, 1.78234973e-01, -6.00000000e+00],
[ 2.83745173e-01, 1.78234973e-01, 0.00000000e+00]],
[[ 2.36742153e-01, 1.92710636e-01, -6.00000000e+00],
[ 2.36742153e-01, 1.92710636e-01, 0.00000000e+00]],
[[ 1.64084447e-01, 2.03858324e-01, -6.00000000e+00],
[ 1.64084447e-01, 2.03858324e-01, 0.00000000e+00]],
[[ 7.36456461e-02, 2.10470013e-01, -6.00000000e+00],
[ 7.36456461e-02, 2.10470013e-01, 0.00000000e+00]],
[[-2.47738036e-02, 2.11829225e-01, -6.00000000e+00],
[-2.47738036e-02, 2.11829225e-01, 0.00000000e+00]],
[[-1.20508627e-01, 2.07788666e-01, -6.00000000e+00],
[-1.20508627e-01, 2.07788666e-01, 0.00000000e+00]],
[[-2.03184471e-01, 1.98786196e-01, -6.00000000e+00],
[-2.03184471e-01, 1.98786196e-01, 0.00000000e+00]],
[[-2.63842125e-01, 1.85797370e-01, -6.00000000e+00],
[-2.63842125e-01, 1.85797370e-01, 0.00000000e+00]],
[[-2.95908391e-01, 1.70229730e-01, -6.00000000e+00],
[-2.95908391e-01, 1.70229730e-01, 0.00000000e+00]],
[[-2.95908391e-01, 1.53770270e-01, -6.00000000e+00],
[-2.95908391e-01, 1.53770270e-01, 0.00000000e+00]],
[[-2.63842125e-01, 1.38202630e-01, -6.00000000e+00],
[-2.63842125e-01, 1.38202630e-01, 0.00000000e+00]],
[[-2.03184471e-01, 1.25213804e-01, -6.00000000e+00],
[-2.03184471e-01, 1.25213804e-01, 0.00000000e+00]],
[[-1.20508627e-01, 1.16211334e-01, -6.00000000e+00],
[-1.20508627e-01, 1.16211334e-01, 0.00000000e+00]],
[[-2.47738036e-02, 1.12170775e-01, -6.00000000e+00],
[-2.47738036e-02, 1.12170775e-01, 0.00000000e+00]],
[[ 7.36456461e-02, 1.13529987e-01, -6.00000000e+00],
[ 7.36456461e-02, 1.13529987e-01, 0.00000000e+00]],
[[ 1.64084447e-01, 1.20141676e-01, -6.00000000e+00],
[ 1.64084447e-01, 1.20141676e-01, 0.00000000e+00]],
[[ 2.36742153e-01, 1.31289364e-01, -6.00000000e+00],
[ 2.36742153e-01, 1.31289364e-01, 0.00000000e+00]],
[[ 2.83745173e-01, 1.45765027e-01, -6.00000000e+00],
[ 2.83745173e-01, 1.45765027e-01, 0.00000000e+00]],
[[ 3.00000000e-01, 1.62000000e-01, -6.00000000e+00],
[ 3.00000000e-01, 1.62000000e-01, 0.00000000e+00]]],
[[[ 3.00000000e-01, 1.62000000e-01, 0.00000000e+00],
[ 3.00000000e-01, 1.62000000e-01, 6.00000000e+00]],
[[ 2.83745173e-01, 1.78234973e-01, 0.00000000e+00],
[ 2.83745173e-01, 1.78234973e-01, 6.00000000e+00]],
[[ 2.36742153e-01, 1.92710636e-01, 0.00000000e+00],
[ 2.36742153e-01, 1.92710636e-01, 6.00000000e+00]],
[[ 1.64084447e-01, 2.03858324e-01, 0.00000000e+00],
[ 1.64084447e-01, 2.03858324e-01, 6.00000000e+00]],
[[ 7.36456461e-02, 2.10470013e-01, 0.00000000e+00],
[ 7.36456461e-02, 2.10470013e-01, 6.00000000e+00]],
[[-2.47738036e-02, 2.11829225e-01, 0.00000000e+00],
[-2.47738036e-02, 2.11829225e-01, 6.00000000e+00]],
[[-1.20508627e-01, 2.07788666e-01, 0.00000000e+00],
[-1.20508627e-01, 2.07788666e-01, 6.00000000e+00]],
[[-2.03184471e-01, 1.98786196e-01, 0.00000000e+00],
[-2.03184471e-01, 1.98786196e-01, 6.00000000e+00]],
[[-2.63842125e-01, 1.85797370e-01, 0.00000000e+00],
[-2.63842125e-01, 1.85797370e-01, 6.00000000e+00]],
[[-2.95908391e-01, 1.70229730e-01, 0.00000000e+00],
[-2.95908391e-01, 1.70229730e-01, 6.00000000e+00]],
[[-2.95908391e-01, 1.53770270e-01, 0.00000000e+00],
[-2.95908391e-01, 1.53770270e-01, 6.00000000e+00]],
[[-2.63842125e-01, 1.38202630e-01, 0.00000000e+00],
[-2.63842125e-01, 1.38202630e-01, 6.00000000e+00]],
[[-2.03184471e-01, 1.25213804e-01, 0.00000000e+00],
[-2.03184471e-01, 1.25213804e-01, 6.00000000e+00]],
[[-1.20508627e-01, 1.16211334e-01, 0.00000000e+00],
[-1.20508627e-01, 1.16211334e-01, 6.00000000e+00]],
[[-2.47738036e-02, 1.12170775e-01, 0.00000000e+00],
[-2.47738036e-02, 1.12170775e-01, 6.00000000e+00]],
[[ 7.36456461e-02, 1.13529987e-01, 0.00000000e+00],
[ 7.36456461e-02, 1.13529987e-01, 6.00000000e+00]],
[[ 1.64084447e-01, 1.20141676e-01, 0.00000000e+00],
[ 1.64084447e-01, 1.20141676e-01, 6.00000000e+00]],
[[ 2.36742153e-01, 1.31289364e-01, 0.00000000e+00],
[ 2.36742153e-01, 1.31289364e-01, 6.00000000e+00]],
[[ 2.83745173e-01, 1.45765027e-01, 0.00000000e+00],
[ 2.83745173e-01, 1.45765027e-01, 6.00000000e+00]],
[[ 3.00000000e-01, 1.62000000e-01, 0.00000000e+00],
[ 3.00000000e-01, 1.62000000e-01, 6.00000000e+00]]],
[[[-6.00000000e+00, 0.00000000e+00, -3.00000000e-01],
[ 0.00000000e+00, 0.00000000e+00, -3.00000000e-01]],
[[-6.00000000e+00, 1.62349735e-02, -2.83745173e-01],
[ 0.00000000e+00, 1.62349735e-02, -2.83745173e-01]],
[[-6.00000000e+00, 3.07106356e-02, -2.36742153e-01],
[ 0.00000000e+00, 3.07106356e-02, -2.36742153e-01]],
[[-6.00000000e+00, 4.18583239e-02, -1.64084447e-01],
[ 0.00000000e+00, 4.18583239e-02, -1.64084447e-01]],
[[-6.00000000e+00, 4.84700133e-02, -7.36456461e-02],
[ 0.00000000e+00, 4.84700133e-02, -7.36456461e-02]],
[[-6.00000000e+00, 4.98292247e-02, 2.47738036e-02],
[ 0.00000000e+00, 4.98292247e-02, 2.47738036e-02]],
[[-6.00000000e+00, 4.57886663e-02, 1.20508627e-01],
[ 0.00000000e+00, 4.57886663e-02, 1.20508627e-01]],
[[-6.00000000e+00, 3.67861955e-02, 2.03184471e-01],
[ 0.00000000e+00, 3.67861955e-02, 2.03184471e-01]],
[[-6.00000000e+00, 2.37973697e-02, 2.63842125e-01],
[ 0.00000000e+00, 2.37973697e-02, 2.63842125e-01]],
[[-6.00000000e+00, 8.22972951e-03, 2.95908391e-01],
[ 0.00000000e+00, 8.22972951e-03, 2.95908391e-01]],
[[-6.00000000e+00, -8.22972951e-03, 2.95908391e-01],
[ 0.00000000e+00, -8.22972951e-03, 2.95908391e-01]],
[[-6.00000000e+00, -2.37973697e-02, 2.63842125e-01],
[ 0.00000000e+00, -2.37973697e-02, 2.63842125e-01]],
[[-6.00000000e+00, -3.67861955e-02, 2.03184471e-01],
[ 0.00000000e+00, -3.67861955e-02, 2.03184471e-01]],
[[-6.00000000e+00, -4.57886663e-02, 1.20508627e-01],
[ 0.00000000e+00, -4.57886663e-02, 1.20508627e-01]],
[[-6.00000000e+00, -4.98292247e-02, 2.47738036e-02],
[ 0.00000000e+00, -4.98292247e-02, 2.47738036e-02]],
[[-6.00000000e+00, -4.84700133e-02, -7.36456461e-02],
[ 0.00000000e+00, -4.84700133e-02, -7.36456461e-02]],
[[-6.00000000e+00, -4.18583239e-02, -1.64084447e-01],
[ 0.00000000e+00, -4.18583239e-02, -1.64084447e-01]],
[[-6.00000000e+00, -3.07106356e-02, -2.36742153e-01],
[ 0.00000000e+00, -3.07106356e-02, -2.36742153e-01]],
[[-6.00000000e+00, -1.62349735e-02, -2.83745173e-01],
[ 0.00000000e+00, -1.62349735e-02, -2.83745173e-01]],
[[-6.00000000e+00, -1.22464680e-17, -3.00000000e-01],
[ 0.00000000e+00, -1.22464680e-17, -3.00000000e-01]]],
[[[ 0.00000000e+00, 0.00000000e+00, -3.00000000e-01],
[ 6.00000000e+00, 0.00000000e+00, -3.00000000e-01]],
[[ 0.00000000e+00, 1.62349735e-02, -2.83745173e-01],
[ 6.00000000e+00, 1.62349735e-02, -2.83745173e-01]],
[[ 0.00000000e+00, 3.07106356e-02, -2.36742153e-01],
[ 6.00000000e+00, 3.07106356e-02, -2.36742153e-01]],
[[ 0.00000000e+00, 4.18583239e-02, -1.64084447e-01],
[ 6.00000000e+00, 4.18583239e-02, -1.64084447e-01]],
[[ 0.00000000e+00, 4.84700133e-02, -7.36456461e-02],
[ 6.00000000e+00, 4.84700133e-02, -7.36456461e-02]],
[[ 0.00000000e+00, 4.98292247e-02, 2.47738036e-02],
[ 6.00000000e+00, 4.98292247e-02, 2.47738036e-02]],
[[ 0.00000000e+00, 4.57886663e-02, 1.20508627e-01],
[ 6.00000000e+00, 4.57886663e-02, 1.20508627e-01]],
[[ 0.00000000e+00, 3.67861955e-02, 2.03184471e-01],
[ 6.00000000e+00, 3.67861955e-02, 2.03184471e-01]],
[[ 0.00000000e+00, 2.37973697e-02, 2.63842125e-01],
[ 6.00000000e+00, 2.37973697e-02, 2.63842125e-01]],
[[ 0.00000000e+00, 8.22972951e-03, 2.95908391e-01],
[ 6.00000000e+00, 8.22972951e-03, 2.95908391e-01]],
[[ 0.00000000e+00, -8.22972951e-03, 2.95908391e-01],
[ 6.00000000e+00, -8.22972951e-03, 2.95908391e-01]],
[[ 0.00000000e+00, -2.37973697e-02, 2.63842125e-01],
[ 6.00000000e+00, -2.37973697e-02, 2.63842125e-01]],
[[ 0.00000000e+00, -3.67861955e-02, 2.03184471e-01],
[ 6.00000000e+00, -3.67861955e-02, 2.03184471e-01]],
[[ 0.00000000e+00, -4.57886663e-02, 1.20508627e-01],
[ 6.00000000e+00, -4.57886663e-02, 1.20508627e-01]],
[[ 0.00000000e+00, -4.98292247e-02, 2.47738036e-02],
[ 6.00000000e+00, -4.98292247e-02, 2.47738036e-02]],
[[ 0.00000000e+00, -4.84700133e-02, -7.36456461e-02],
[ 6.00000000e+00, -4.84700133e-02, -7.36456461e-02]],
[[ 0.00000000e+00, -4.18583239e-02, -1.64084447e-01],
[ 6.00000000e+00, -4.18583239e-02, -1.64084447e-01]],
[[ 0.00000000e+00, -3.07106356e-02, -2.36742153e-01],
[ 6.00000000e+00, -3.07106356e-02, -2.36742153e-01]],
[[ 0.00000000e+00, -1.62349735e-02, -2.83745173e-01],
[ 6.00000000e+00, -1.62349735e-02, -2.83745173e-01]],
[[ 0.00000000e+00, -1.22464680e-17, -3.00000000e-01],
[ 6.00000000e+00, -1.22464680e-17, -3.00000000e-01]]]])
for ii in range(surfpt.shape[0]):
mlab.mesh( surfpt[ii, :,:,0],
surfpt[ii, :,:,1],
surfpt[ii,:,:,2],
color = tuple(np.random.rand(3)),
opacity=1.)
mlab.show()