Mayavi: рдмрдЧ: рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдСрд░реНрдбрд░рд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рд╕реНрдЯреНрд░реАрдорд▓рд╛рдЗрди рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛

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

рд╕реНрдЯреНрд░реАрдорд▓рд╛рдЗрди рдХреА рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЛ рдЙрд╕рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди (1.0) рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓рдиреЗ рд╕реЗ рд╕реНрдЯреНрд░реАрдорд▓рд╛рдЗрди рджреГрд╢реНрдп рдХреЗ рд╕рд╛рдордиреЗ рдЖрддреА рд╣реИ, рднрд▓реЗ рд╣реА рдЕрдиреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдВ рдЬреЛ рдЙрдиреНрд╣реЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рдХрд░ рджреЗрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдкрдХреЛ рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рдЪреБрдВрдмрдХреАрдп рдХреНрд╖реЗрддреНрд░ рд░реЗрдЦрд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ: http://docs.enthink.com/mayavi/mayavi/auto/example_magnetic_field_lines.htmlред

рдХреЛрдб рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╣ рдирд┐рдореНрди рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИ:
test_bug_1

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рд╣рдо рдлрд╝реАрд▓реНрдбрд▓рд╛рдЗрди рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдмрджрд▓рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдпрд╣ рднрд┐рдиреНрди рд╣реЛ рддреЛ рдЗрд╕рдХрд╛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди 1.0 (рдпрд╛ рддреЛ field_lines.actor.property.opacity = 0.99 рдЬреЛрдбрд╝рдХрд░ рдпрд╛ рдорд╛рдпрд╛рд╡реА рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдХреЗ) рд╣рдореЗрдВ рдирд┐рдореНрди рджреГрд╢реНрдп рдЬреИрд╕рд╛ рдХреБрдЫ рдорд┐рд▓рддрд╛ рд╣реИ:
test_bug_2
рдлрд╝реАрд▓реНрдбрд▓рд╛рдЗрди рдЕрдм рджреГрд╢реНрдп рдХреЗ рд╕рд╛рдордиреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдЗрд╕реЛрдХреЙрдиреНрдЯреВрд░ рдХреЛ рдЕрднреА рднреА рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ рдкрд┐рдЫрд▓реА рдЫрд╡рд┐ рдореЗрдВ рд╣реИред

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

рд╣рд╛рд▓ рдХреЗ рд╡реАрдЯреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

from mayavi import mlab
f = mlab.figure()
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)
f.scene.renderer.use_depth_peeling = True

рд╕рд╛рде рд╣реА, рдПрдХ f.scene.renderer.maximum_number_of_peels рдЬрд┐рд╕рдХрд╛ рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 4 рд╣реИ рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реАрдорд╛ рдХреЗ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛ред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рджреЗрдЦреА рдЧрдИ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

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

рдХреНрдпрд╛ рдпрд╣ рдПрдХ рдРрд╕рд╛ рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рдХрдЯ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореБрдЭреЗ рдпрд╣ рдЬрд╛рдирдХрд░ рдЦреБрд╢реА рд╣реЛрдЧреА рдХрд┐ рдореИрдВ рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рджреВрд╕рд░рд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬ рд╕рдХреВрдВред рд╢реБрдХреНрд░рд┐рдпрд╛

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдиреНрдп рд╡рд╕реНрддреБрдУрдВ рдкрд░ рднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдореИрдВ рдЕрдВрдХ 3 рдбреА рдХреЗ рд╕рд╛рде рд╕рдореЛрдЪреНрдЪ 3 рдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЕрдВрдХ рдХреА рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдХреЛ 1.0 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЪреАрдЬрд╝ рдкрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рд╕реЗ рд╕рддрд╣ рдЕрдм рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреЛ рдкреЙрдЗрдВрдЯ 3 рдбреА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдпрд╣рд╛рдВ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рджрд┐рдЦрд╛ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рд░реЗрдВрдбрд░ рдХрд┐рдП рдЧрдП 2 рдЧреЛрд▓реЗ рдХрд╛ рдкреНрд░рдХрдЯрди рд░реЗрдВрдбрд░рд┐рдВрдЧ рдСрд░реНрдбрд░ рдкрд░ рдХреИрд╕реЗ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ .99 рдкрд░ рд╕реЗрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ 1 рдкрд░ рд╕реЗрдЯ рд╣реИ рддреЛ рдирд╣реАрдВред

mlab.figure()
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)

2

mlab.figure()
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)

4

mlab.figure()
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100)
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100)

1

mlab.figure()
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100)
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100)

3

рд╕рдорд╕реНрдпрд╛ рд░реЛрд╢рдиреА рдпрд╛ light_manager ('vtk' рдпрд╛ 'рд░реЗрдордВрдб') рдХреА рдкрд╕рдВрдж рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд▓рдЧрддреАред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкрд╣рд▓реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдЕрдВрджрд░ рдпрд╛ рдмрд╛рд╣рд░ рдзреБрд░реА рдХреЗ рд╕рд╛рде рдЙрдирдХреА рдЧрд╣рд░рд╛рдИ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрд░реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рд╢рд╛рдпрдж рдлреНрд░рдВрдЯ-рдлреЗрд╕ рдХрд▓рд┐рдВрдЧ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпреЗ рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ:

mlab.figure()
g1 = mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)
g2 = mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)
g1.actor.property.frontface_culling = True
g2.actor.property.frontface_culling = True

рдзрдиреНрдпрд╡рд╛рдж рдкреНрд░рднреБ --- рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреНрд░рдВрдЯрдлреЗрд╕_рдХреБрд▓рд┐рдВрдЧ рдиреЗ рджреГрд╢реНрдпреЛрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рдкрд╛рджрди рдХреНрд░рдо рдЕрднреА рднреА рдЕрд░реНрдз-рдкрд╛рд░рджрд░реНрд╢реА рдорд╛рдорд▓реЗ рдореЗрдВ рдПрдХ рдХрд╛рд░рдХ рдерд╛ред

рдореИрдВрдиреЗ рдЕрдХреЗрд▓реЗ рд╡реАрдЯреАрдХреЗ рдореЗрдВ рдЙрд╕ рдЕрд╡рд▓реЛрдХрди рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд┐рдпрд╛ (рдпрд╣ рдирд┐рдЪрд▓реЗ рд╕реНрддрд░ рдХрд╛ рдореБрджреНрджрд╛ рд╣реИ)ред

рдЕрдзрд┐рдХ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реАрдЯреАрдХреЗ рдореЗрдВ рдПрдХ рд╕рдорд╛рдзрд╛рди рдпрд╛ рджреЛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╕рдорд╛рдзрд╛рди рдкреНрд░рддрд┐рдкрд╛рджрди рд╕реЗ рдкрд╣рд▓реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕реЙрд░реНрдЯ рдХрд░рдирд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдпрд╣рд╛рдВ рд╡реАрдЯреАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд▓рд┐рдВрдХ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд▓рдЧ рд░рд╣реЗ рдереЗ:
https://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/CorrectlyRenderingTranslucentGeometry
https://www.vtk.org/Wiki/VTK/Depth_Peeling

рдФрд░ рдХреБрдЫ рд▓рд┐рдВрдХ рдЬреЛ рдореИрдВрдиреЗ рдЧреЛрд▓реЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдереЗ:
https://lorensen.github.io/VTKExamples/site/Python/GemetricObjects/Sphere/
https://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/Opacity

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

scene = mlab.gcf().scene
scene.renderer.set(use_depth_peeling=True)

рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕ рдкреНрд░рд╢реНрди рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ ..

рдореИрдЯ рдФрд░ рдкреНрд░рднреБ рдХреА рдорджрдж рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рдореИрдВрдиреЗ рдЧрд╣рд░рд╛рдИ_рдкреАрд▓рд┐рдВрдЧ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдЬреЛ рдореЗрд░реЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ 2 рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рд╣рд╛рдпрдХ рд╣реИред рд▓реЗрдХрд┐рди рдЧреЛрд▓реЗ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдХрд┐рдирд╛рд░реЗ рдХрдо рд▓рдЧрддреЗ рд╣реИрдВ...рдПрдВрдЯреА-рдЕрд▓рд┐рдпрд╛рд╕ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╢рдмреНрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?

f=mlab.figure()
f.scene.renderer.use_depth_peeling=1
g0=mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)
g1=mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)  
g0.actor.property.frontface_culling = True
g1.actor.property.frontface_culling = True

image

рдореЗрд░реА 3рдбреА рдкреНрд▓реЙрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдВрдХреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдФрд░ рд░рдВрдЧреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИред рдЗрд╕рд▓рд┐рдП рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЫреАрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореИрдВрдиреЗ рд╕рд╛рдЬрд┐рд╢ рд░рдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрди рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рдкреБрди: рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛:

def orderTransparentRender(cl,c):
    '''Opacity < 1 rendering results in appearance of spheres incorrectly in front of or behind other spheres
    One solution is setting f.scene.renderer.use_depth_peeling=1, however this seemed to result in less anti-aliased edges?
    This function sorts the cluster list cl and color list c together.
    '''
    cz=zip(cl,c)
    cz=sorted(cz,key=lambda x:-1*x[0][2])
    cz=zip(*cz)
    return cz[0],cz[1]

рдЕрдиреНрдпрдерд╛ рд╕реЙрд░реНрдЯ рдХреА рдЧрдИ рдХреЙрд▓ рд╡рд╣ рд╕рдм рд╣реЛ рд╕рдХрддреА рд╣реИ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрд╛рдпрдерди рдбреЙрдХреНрд╕ рд╕реЗ рд╕реАрдЦрд╛: https://wiki.python.org/moin/HowTo/Sorting ред рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдЕрдЬрдЧрд░ рдХреЗ zip рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрд╛: https://stackoverflow.com/questions/1663807/how-can-i-iterate-through-two-lists-in-parallel

рд╣рд╛рд▓ рдХреЗ рд╡реАрдЯреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

from mayavi import mlab
f = mlab.figure()
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)
f.scene.renderer.use_depth_peeling = True

рд╕рд╛рде рд╣реА, рдПрдХ f.scene.renderer.maximum_number_of_peels рдЬрд┐рд╕рдХрд╛ рдЖрдк рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 4 рд╣реИ рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕реАрдорд╛ рдХреЗ рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд░реЗрдВрдбрд░рд┐рдВрдЧ рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧрд╛ред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рджреЗрдЦреА рдЧрдИ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред

рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдкрд╛рдКрдВрдЧрд╛ред рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдереНрдпреВ рдСрд▓рдХреЙрдХ | рдкреАрдПрдЪрдбреА рд╢реЛрдзрдХрд░реНрддрд╛
рд╢реЗрдлрд╝реАрд▓реНрдб рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп | рдЧрдгрд┐рдд рдФрд░ рд╕рд╛рдВрдЦреНрдпрд┐рдХреА рд╕реНрдХреВрд▓
www.matthewallcock.co.uk

рд░рд╡рд┐рд╡рд╛рд░ рдХреЛ, 26 рдЕрдЧрд╕реНрдд 2018, 21:55 рдкреНрд░рднреБ рд░рд╛рдордЪрдВрджреНрд░рди, рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com
рд▓рд┐рдЦрд╛ рдерд╛:

рд╣рд╛рд▓ рдХреЗ рд╡реАрдЯреАрдХреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

рдорд╛рдпрд╛рд╡реА рдЖрдпрд╛рдд рдПрдордПрд▓рдмреА рд╕реЗ
рдПрдл = рдПрдордПрд▓рдПрдмреА.рдлрд┐рдЧрд░ ()
mlab.points3d(0,0,1,color=(.8,.8,.8),resolution=100,opacity=.99)
mlab.points3d(0,0,0,color=(.8,.8,.8),resolution=100,opacity=.99)
f.scene.renderer.use_depth_peeling = True

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ f.scene.renderer.maximum_number_of_peels рд╣реИ рдЬреЛ рдЖрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 4 рд╣реИ рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╢реВрдиреНрдп рдХреЗ рд▓рд┐рдП рд╢реВрдиреНрдп рдкрд░ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рд╕реАрдорд╛ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЛ рдзреАрдорд╛ рдХрд░ рджреЗрдЧреАред рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЫреЗрдбрд╝рдЫрд╛рдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддрд╛ рд╣реВрдБ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдореЗрд░реА рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдареАрдХ рдХрд░рддрд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ
рдкрд╣рд▓реЗ рдХрднреА рдирд╣реАрдВ рджреЗрдЦрд╛ред

-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдиреЗ рд╕реВрддреНрд░ рдХреЛ рд▓рд┐рдЦрд╛ рд╣реИред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/enthink/mayavi/issues/491#issuecomment-416071420 ,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe-auth/AP4RUC8AYAndAV6-wE88hHw5cPP-x01gks5uUwtGgaJpZM4MT7Rp
.

рдмрд╣реБрдд рдмрд╣реБрдд рд╢реБрдХреНрд░рд┐рдпрд╛ред

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

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

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

scottstanie picture scottstanie  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

GaelVaroquaux picture GaelVaroquaux  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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