Можем ли мы изменить связность сеток в поверхностных объектах майяви?

Положение проблемы

Я использую 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()

0 ответов

Другие вопросы по тегам