Mayavi: рдПрдирд┐рдореЗрдЯрд┐рдВрдЧ рддреНрд░рд┐рдХреЛрдгреАрдп_рдореЗрд╢ рдЪреЗрд╣рд░реЗ рдХрд╛ рд░рдВрдЧ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 26 рдЬрдире░ 2017  ┬╖  2рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: enthought/mayavi

рдирдорд╕реНрддреЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдЪреЗрд╣рд░реЗ рдХреЗ рд░рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рддреНрд░рд┐рдХреЛрдгреАрдп рдЬрд╛рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ # 253 рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд▓реЙрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ

mesh = mlab.triangular_mesh(self.vertices[:,0], self.vertices[:,1], self.vertices[:,2], self.triangles,representation='wireframe',opacity=0)
mesh.mlab_source.dataset.cell_data.scalars = color
mesh.mlab_source.dataset.cell_data.scalars.name = 'Cell data' 
mesh.mlab_source.update() 
mesh2 = mlab.pipeline.set_active_attribute(mesh,cell_scalars='Cell data') 
surf = mlab.pipeline.surface(mesh2)  

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рд░рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреИрд╕реЗ рдПрдирд┐рдореЗрдЯ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,

@mlab.animate(delay=100)
def anim():
    f = mlab.gcf()
    for i in range(0,data.shape[0]):
        mesh.mlab_source.dataset.cell_data.scalars = data[i,:]
        mesh.mlab_source.dataset.cell_data.scalars.name = 'Cell data' 
        mesh.mlab_source.update()
        mesh2 = mlab.pipeline.set_active_attribute(mesh,cell_scalars='Cell data') 
        mlab.pipeline.surface(mesh2) 
        yield
anim()
mlab.show()

рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдиреАрдореЗрд╢рди рдХреА рдкреНрд░рдЧрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рддреЗрдЬреА рд╕реЗ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрдорд╛рдВрдб рдХреЛ рд╣рдЯрд╛рдирд╛) рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╡рд┐ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИред рдХреНрдпрд╛ рдЪреЗрд╣рд░реЗ рдХреЗ рд░рдВрдЧреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ?

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

@RomeshA

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рджрд┐рди рдмрд┐рддрд╛рдПрдВ рдФрд░ рдЙрд╕реА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рдереЗред рдЖрдкрдХрд╛ рд╣рд╛рд░реНрджрд┐рдХ рдзрдиреНрдпрд╡рд╛рдж!

рд╕рднреА 2 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ tvtk.PolyData рдмрдирд╛рдХрд░ рдХреЛрдб рдХреЛ рдмрд╣реБрдд рд╕рд╛рдл рдХрд┐рдпрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреВрд╕рд░рд╛ рдмрдбрд╝рд╛ рдмрджрд▓рд╛рд╡ рдпрд╣ рд╣реИ рдХрд┐ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рд╕реЗ рдкрддрд╛ рдЪрд▓рддрд╛ рд╣реИ рдХрд┐ рдЖрдВрдХрдбрд╝реЗ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП PolyData.modified() рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдмрд╣рд░рд╣рд╛рд▓, рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ VTKDataSource.update() рд╡рд┐рдзрд┐ рд╣реИ, рдЬрд╣рд╛рдВ VTKDataSource рд▓рдкреЗрдЯрддрд╛ PolyData рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ traversing рджреНрд╡рд╛рд░рд╛ рдкрд╛рдпрд╛ рдЬрд╛ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рд╕рддрд╣реА рдорд╛рддрд╛-рдкрд┐рддрд╛

рддреЛ рдЕрдВрддрд┐рдо рдХрд╛рд░реНрдп рдХреЛрдб рдерд╛

from mayavi import mlab 
from tvtk.api import tvtk

polydata = tvtk.PolyData(points=self.vertices, polys=self.triangles)
polydata.cell_data.scalars = np.ravel(data[:,0].copy())
polydata.cell_data.scalars.name = 'celldata'
mesh = mlab.pipeline.surface(polydata)

@mlab.animate(delay=10)
def anim():
    for i in range(0,data.shape[0]):
        polydata.cell_data.scalars = np.ravel(data[:,i].copy())
        polydata.cell_data.scalars.name = "celldata" 
        # polydata.modified()  # does not work
        mesh.parent.parent.update() # works
        yield

anim()
mlab.show()

@RomeshA

рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рджрд┐рди рдмрд┐рддрд╛рдПрдВ рдФрд░ рдЙрд╕реА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рдереЗред рдЖрдкрдХрд╛ рд╣рд╛рд░реНрджрд┐рдХ рдзрдиреНрдпрд╡рд╛рдж!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

indranilsinharoy picture indranilsinharoy  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

igamenovoer picture igamenovoer  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

aestrivex picture aestrivex  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Mallcock1 picture Mallcock1  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ktavabi picture ktavabi  ┬╖  15рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ