рдирдорд╕реНрддреЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдЪреЗрд╣рд░реЗ рдХреЗ рд░рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рддреНрд░рд┐рдХреЛрдгреАрдп рдЬрд╛рд▓ рд╣реИ, рдЬрд┐рд╕реЗ рдореИрдВ # 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()
рдореИрдВ рдЬреЛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд╡рд╣ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдиреАрдореЗрд╢рди рдХреА рдкреНрд░рдЧрддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рддреЗрдЬреА рд╕реЗ рдзреАрдорд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЕрдВрддрддрдГ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реЛрддрд╛ рд╣реИред рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХрдорд╛рдВрдб рдХреЛ рд╣рдЯрд╛рдирд╛) рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдЫрд╡рд┐ рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЕрдкрдбреЗрдЯ рдирд╣реАрдВ рд╣реЛ рд░рд╣реА рд╣реИред рдХреНрдпрд╛ рдЪреЗрд╣рд░реЗ рдХреЗ рд░рдВрдЧреЛрдВ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк рд╣реИ?
рдореИрдВрдиреЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ 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
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рджрд┐рди рдмрд┐рддрд╛рдПрдВ рдФрд░ рдЙрд╕реА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рдереЗред рдЖрдкрдХрд╛ рд╣рд╛рд░реНрджрд┐рдХ рдзрдиреНрдпрд╡рд╛рдж!
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
@RomeshA
рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдореЗрдВ рдПрдХ рдпрд╛ рджреЛ рджрд┐рди рдмрд┐рддрд╛рдПрдВ рдФрд░ рдЙрд╕реА рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рдереЗред рдЖрдкрдХрд╛ рд╣рд╛рд░реНрджрд┐рдХ рдзрдиреНрдпрд╡рд╛рдж!