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

рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
- рд╕реНрдХреЗрд▓рд░ / рд╡реЗрдХреНрдЯрд░ рдбреЗрдЯрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ 2 рдбреА рдФрд░ 3 рдбреА рдореЙрдбрд▓ рдмрдирд╛рдПрдВ
- VTK, PLOT3D рдлрд╛рдЗрд▓реЗрдВ рдЦреЛрд▓реЗрдВ
- рд╡рд┐рднрд┐рдиреНрди рдЧреНрд░рд╛рдлрд┐рдХ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдореЗрдВ рд░реЗрдВрдбрд░ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реЗрдЬреЗрдВ
- рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдордЖрд░рдЖрдИ (рдЪреБрдВрдмрдХреАрдп рдЕрдиреБрдирд╛рдж рдЗрдореЗрдЬрд┐рдВрдЧ) рдкрд░рд┐рдгрд╛рдо рднреА рдкреНрд░рд╕реНрддреБрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:
1) рдорд╛рдпрд╛рд╡реА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╕реАрдзреЗ рдХрд╛рдо рдХрд░реЗрдВред
2) рдорд╛рдпрд╛рд╡реА рдХреЛ рддреИрдпрд╛рд░ рдбреЗрдЯрд╛ рдЕрдкрд▓реЛрдб / рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ред
3) рдПрдХ рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдорд╛рдпрд╛рд╡реА рдХреЗ рд▓рд┐рдП рд╕рднреА рд╡рд╛рдВрдЫрд┐рдд рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдЯреИрдВрдб-рдЕрд▓реЛрди рд╕рдВрд╕реНрдХрд░рдг рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдРрд╕реА рдЕрдЪреНрдЫреА рдЦрд┐рдбрд╝рдХреА рдорд┐рд▓рддреА рд╣реИ:

рд╕реНрдХреНрд░реАрди рдХреЛ 4 рднрд╛рдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
- рдКрдкрд░реА рдмрд╛рдПрдБ рднрд╛рдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ
- рдирд┐рдЪрд▓реЗ рдмрд╛рдПрдВ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдКрдкрд░реА рджрд╛рдПрдВ рдореЗрдВ рдПрдХ рд░реЗрдВрдбрд░ рд╣реИ
- рдирд┐рдЪрд▓реЗ рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рд╣реИ
рдореИрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЯрд░реНрдорд┐рдирд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ:
рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдЗрд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЪреБрдиреЗрдВред рдмрд╛рдИрдВ рдорд╛рдЙрд╕ рдмрдЯрди рдХреЛ рдЬрд╛рд░реА рдХрд┐рдП рдмрд┐рдирд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░, рдЗрд╕реЗ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪреЗрдВред рд╣рдореЗрдВ рдХреБрдЫ рдРрд╕рд╛ рдорд┐рд▓рддрд╛ рд╣реИ
<enthought.mayavi.modules.surface.Surface object at 0x0DADE5D0>
рдЕрдм рд▓рд┐рдЦреЗрдВ:
explore(_)
рдФрд░ рдлрд┐рд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рдВрдбреЛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЪреАрдЬ рд╣реИ рдЬреЛ рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реАрдЦрдиреЗ рдФрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░ рд╕рдХрддреА рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдХреБрдЫ рдЧреБрдгреЛрдВ рдХреЛ рд╕реАрдЦрд╛, рджрд╕реНрддрд╛рд╡реЗрдЬ рдореЗрдВ рдирд╣реАрдВ рдЦреЛрдЬрд╛ред рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ, Drag'N'Drop рдирд┐рдпрдо рд╕рдорд╛рди рд░реВрдк рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдорд╛рдпрд╛рд╡реА рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд╛рдлреА рдХреБрдЫ (
рдЙрджрд╛рд╣рд░рдг ) рд╣реИрдВ рдЬреЛ рдЖрдо рддреМрд░ рдкрд░ рд╕рдордЭрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдФрд░ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
рдореИрдВ рдЙрд╕ рд░реЗрдХ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЬрд┐рд╕ рдкрд░ рдореИрдВрдиреЗ рдХрджрдо рд░рдЦрд╛ рдерд╛ред рдЕрдзрд┐рдХрд╛рдВрд╢ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП, рд╡реЗ PyQt рд╡рд┐рдЬреЗрдЯ (рдХреБрдПрдВ, рдпрд╛ PySide) рдореЗрдВ рдорд╛рдпрд╛рд╡реА рдлреНрд░реЗрдо рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реЛрдВрдЧреЗ, рдЬрд┐рд╕рдХреЗ
рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА
рд▓рд┐рдЦрд╛ рдерд╛ ред
- рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рди рдкрдврд╝реЗрдВред рд╕рдЪ рд╣реИ, рдкрдврд╝реЛ рдорддред рд╕рдордп рдХреА рдмрд░реНрдмрд╛рджреАред
- рд╡рд░реНрдЧ рдирд┐рд░реНрдорд╛рдгрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдЖрджрдд рд╕реЗ рдмрд╛рд╣рд░ рди рдирд┐рдХрд╛рд▓реЗрдВред рдХреБрдЫ рдРрд╕реА рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдирд╛рдПрдБ рдЬрд┐рдирд╕реЗ рдЪрд░ / рд╡рд╕реНрддреБрдПрдБ рдкрд╛рд╕ рдХреА рдЬрд╛рдПрдБрдЧреА, рдЬрд┐рдиреНрд╣реЗрдВ рдлрд┐рд░ update_plot () рдлрд╝рдВрдХреНрд╢рдВрд╕ рдореЗрдВ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдЬреЛ рдЖрдк рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЙрд╕реЗ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред рдЯреАрд╡реАрдЯреАрдХреЗ рдХрдХреНрд╖рд╛рдПрдВ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рдПрдордПрд▓рдПрдмреА рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реЙрд▓реНрдпреВрдо)ред
- рдЬрдм рд╕реБрдиреНрди рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдлрд╝реНрд▓реЛрдЯ 32 рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд╛рд▓реЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, 64-рдмрд┐рдЯ рд╕рд┐рд╕реНрдЯрдо рдкрд░, рдПрдХ рдлреНрд▓реЛрдЯ64 рд╕рд░рдгреА рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬреЛ рдорд╛рдпрд╛рд╡реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреАред
- рдореИрдВ рдЗрд╕реЗ PyQT рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рдпрдорд┐рдд рдШрди рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛ред
- # PyQt4 рд╡рд┐рдЬреЗрдЯ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ ETS_TOOLKIT рдЪрд░ рдХреЛ qt4 рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
- рдЖрдпрд╛рдд os
- рдУрдПрд╕ ред environ [ 'ETS_TOOLKIT' ] = 'qt4'
- PySide рдЗрдВрдкреЛрд░реНрдЯ рд╕реЗ QtGui, QtCore
- рдЙрддреНрд╕рд╛рд╣ рд╕реЗред рдорд╛рдпрд╛рд╡реА рдорд▓рдмреЗ рдХрд╛ рдЖрдпрд╛рдд рдХрд░рддреА рд╣реИрдВ
- рдЙрддреНрд╕рд╛рд╣ рд╕реЗред tvtk ред рдПрдкреАрдЖрдИ рдЖрдпрд╛рдд tvtk
- рдЙрддреНрд╕рд╛рд╣ рд╕реЗред tvtk ред рдЪрд┐рддрд╛ ред рдЖрдкреА рдЖрдпрд╛рдд рджреГрд╢реНрдп
- рдирдВрдмрд░реА рдЗрдВрдкреЛрд░реНрдЯ рдЕрд░реЗрдВрдЬ, рдиреЙрдирдЬреЗрд░реЛ, рдлреНрд▓реЛрдЯ 32, рдорд┐рди , рдореИрдХреНрд╕ , рдореАрдбрд┐рдпрди, рдХреЙрдкреА , рд░реИрдВрдбрдо , рд╢реЗрдк рд╕реЗ
- рд╕реБрдиреНрди рд╕реЗред рдХреЛрд░ ред рд╕рдВрдЦреНрдпрд╛рддреНрдордХ рдЖрдпрд╛рдд
- рдЙрддреНрд╕рд╛рд╣ рд╕реЗред рд▓рдХреНрд╖рдг ред Api рдЖрдпрд╛рдд HasTraits, рдЗрдВрд╕реНрдЯреЗрдВрд╕, on_trait_change, \
- рдЗрдВрдЯ, рддрд╛рдирд╛рд╢рд╛рд╣реА
- рдЙрддреНрд╕рд╛рд╣ рд╕реЗред рд▓рдХреНрд╖рдг ред ui ред рдПрдкреАрдЖрдИ рдЖрдпрд╛рдд рджреЗрдЦреЗрдВ, рдЖрдЗрдЯрдо
- рдЙрддреНрд╕рд╛рд╣ рд╕реЗред рдорд╛рдпрд╛рд╡реА ред рдХреЛрд░ ред ui ред рдПрдкреАрдЖрдИ рдЖрдпрд╛рдд рдорд╛рдпрд╛рд╡реАрд╕реЗрди, MlabSceneModel, \
- SceneEditor
- # рд╡рд╛рд╕реНрддрд╡рд┐рдХ рджреГрд╢реНрдп
- рдХреНрд▓рд╛рд╕ рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди ( HasTraits ) :
- рджреГрд╢реНрдп = рдЙрджрд╛рд╣рд░рдг ( MlabSceneModel, ( ) )
- рджреГрд╢реНрдп = рджреГрд╢реНрдп ( рдЖрдЗрдЯрдо) ( 'рджреГрд╢реНрдп') ,
- рд╕рдВрдкрд╛рджрдХ = рджреГрд╢реНрдпрджрд░реНрд╢реА ( рджреГрд╢реНрдп_рдХреНрд▓рд╛рд╕ = рдорд╛рдпрд╛рд╡реАрд╕реЗрди ) ,
- # рдорд╛рдпрд╛рд╡реАрд╕реЗрди рдХреА рдЬрдЧрд╣ рдЖрдк рд╕рд┐рд░реНрдл рд╕реАрди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ
- # рдФрд░ рдлрд┐рд░ рд╣рдореЗрдВ рдЯреВрд▓рдмрд╛рд░ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рд╕рд╛рдл рд╡рд┐рдВрдбреЛ рдорд┐рд▓рддреА рд╣реИред
- рдКрдВрдЪрд╛рдИ = 250 ,
- рдЪреМрдбрд╝рд╛рдИ = 300 ,
- show_label = рдЧрд▓рдд ) ,
- resizable = рд╕рддреНрдп
- )
- needUpdate = рдХреЛрдИ рдирд╣реАрдВ
- рдбреАрдИрдПрдлрд╝реНрд▓реЛрдЯрдкреНрд░реЗрдореЗрдЯреНрд░реЗрд╕ ( рд╕реЗрд▓реНрдл , рдЧреНрд░рд┐рдб ) :
- рд╕реНрд╡ ред рдЧреНрд░рд┐рдб = рдЧреНрд░рд┐рдб
- # рд╕реАрдПрд▓рдПрдл () рд╡рд┐рдзрд┐ рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдХреЛ рд╕рд╛рдл рдХрд░рддреА рд╣реИред рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ_рдкреНрд▓реЙрдЯ () рд╡рд┐рдзрд┐ рдореЗрдВ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛ рд╕рдХрддрд╛
- рд╕реНрд╡ ред рджреГрд╢реНрдп ред рдорд┐рд▓реАрдм ред clf ( )
- рд╕реНрд╡ ред needUpdate = рд╕рддреНрдп
- рд╕реНрд╡ ред update_plot ( )
- @on_trait_change ( 'рджреГрд╢реНрдп.рд╕рдВрдпреБрдХреНрдд' )
- def update_plot ( self ) :
- # рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
- # рдЬреЛ рдХреБрдЫ рднреА рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рд╡рд╣ рдпрд╣рд╛рдБ рдФрд░ рдХрд╣реАрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
- # рдЬрдмрдХрд┐ рдХреЛрдИ рдбреЗрдЯрд╛ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдорд╛рдирдХ рдореЙрдбрд▓ рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ
- рдпрджрд┐ рд╕реНрд╡ рдирд╣реАрдВ ред рдЬрд░реВрд░рдд :
- рд╕реНрд╡ ред рджреГрд╢реНрдп ред рдорд┐рд▓реАрдм ред test_point3d ( )
- рдФрд░ :
- # рдпрд╣рд╛рдВ рд╣рдо рдЕрдкрдиреЗ рд╕рднреА рдЪрд╛рд╡рд▓ рдХреБрдХрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
- # рд╕рдм рдХреБрдЫ рдЬреЛ рдорд▓рдмреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЙрд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП
- # рдЬреИрд╕реЗ self.scene.mlabред *, рдЕрдиреНрдпрдерд╛ рдорд╛рдпрд╛рд╡реА рд╡рд┐рдВрдбреЛ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреА рд╣реИ
- # рдФрд░ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддрд╛ рд╣реИред
- # рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рдкреНрд░рддрд┐рдкрд╛рджрди рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреА рд╣реИ!
- рд╕рд░реНрдл = рд╕реНрд╡ ред рджреГрд╢реНрдп ред рдорд┐рд▓реАрдм ред рдкрд╛рдЗрдкрд▓рд╛рдЗрди ред рд╕рддрд╣ ( рд╕реНрд╡рдпрдВ рдЧреНрд░рд┐рдб , рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ = 1 )
- # рдЖрдк рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рдЖрдВрддрд░рд┐рдХ рдЧреНрд░рд┐рдб рдХреЛ рднреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- #edges = mlab.pipeline.extract_edges (рд╕рд░реНрдл)
- #edgesSurf = mlab.pipeline.surface (рдХрд┐рдирд╛рд░реЛрдВ)
- # рдХрд┐рдирд╛рд░реЛрдВрд╕рд░реНрдл.рдХреНрдЯреЛрд░ .property.interpolation = 'рдлреНрд▓реИрдЯ'
- # рд╣рдо рдШрди рдХреА рд╕рддрд╣ рдХреЗ рд░рдВрдЧ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдк рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреЛрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛рдПред
- рд╕рд░реНрдлред рдЕрднрд┐рдиреЗрддрд╛ ред рд╕рдВрдкрддреНрддрд┐ ред рдкреНрд░рдХреНрд╖реЗрдк = 'рд╕рдорддрд▓'
- рд╕реНрд╡ ред рджреГрд╢реНрдп ред рдорд┐рд▓реАрдм ред рдУрд░рд┐рдПрдВрдЯреЗрд╢рди_рдПрдХреНрд╕реЗрд╕ ( )
- рд╕реНрд╡ ред рджреГрд╢реНрдп ред рдкреГрд╖реНрдарднреВрдорд┐ = ( 0 , 0 , 0 )
- рд╕реНрд╡ ред рджреГрд╢реНрдп ред рдорд┐рд▓реАрдм ред colorbar ( рдУрд░рд┐рдПрдВрдЯреЗрд╢рди = 'рд╡рд░реНрдЯрд┐рдХрд▓' )
- ################################################## ##############################
- # рд╡рд┐рдЬреЗрдЯ рдЬрд┐рд╕рдореЗрдВ рджреГрд╢реНрдп рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдирд╛ рд╣реИред рд╣рдо рдЗрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд PyQt рд╡рд┐рдЬреЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
- рд╡рд░реНрдЧ рдорд╛рдпрд╛рд╡реАрдХреНрд╡реЗрдЯрдЧреЗрдЯ ( QtGuiред QWidget ) :
- def __init__ ( рд╕реНрд╡ , рдорд╛рддрд╛-рдкрд┐рддрд╛ = рдХреЛрдИ рдирд╣реАрдВ ) :
- QtGuiред QWidget ред __in__ ( рд╕реНрд╡ , рдорд╛рддрд╛-рдкрд┐рддрд╛ )
- рд▓реЗрдЖрдЙрдЯ = QtGuiред QVBoxLayout ( рд╕реНрд╡ )
- рд▓реЗрдЖрдЙрдЯред рд╕реЗрдЯрдореИрд░реНрдЬрд┐рди ( 0 )
- рд▓реЗрдЖрдЙрдЯред setSpacing ( 0 )
- рд╕реНрд╡ ред рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди = рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди ( )
- # рдЖрджрд░реНрд╢ рд░реВрдк рдореЗрдВ, рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЯреЗрдХрдкреНрд▓реЙрдЯрдореЗрдЯрдо рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ
- # self.visualization.takePlotParametres ()
- # Edit_traits рд╡рд┐рдзрд┐ рдЙрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рджреГрд╢реНрдп рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
- # рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдХреНрдпреВрдЯреАрдПрдЪ рдмрдирд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╣рдо .control рд╡рд┐рдзрд┐ рдХрд╣рддреЗ рд╣реИрдВ
- рд╕реНрд╡ ред рдЙрдИ = рд╕реНрд╡ ред рджреГрд╢реНрдп ред edit_traits ( рдореВрд▓ = рд╕реНрд╡ ,
- kind = 'subpanel' ) ред рдирд┐рдпрдВрддреНрд░рдг
- рд▓реЗрдЖрдЙрдЯред AddWidget ( рд╕реНрд╡ ред рдпреВрдИ )
- рд╕реНрд╡ ред ui ред рд╕реЗрдЯрдкрд░реЗрдВрдЯ ( рд╕реНрд╡ )
- def create_cube ( рд╕реНрд╡рдпрдВ ) :
- рдЧреНрд░рд┐рдб = рд╕реНрд╡ ред createGrid ( )
- рд╕реНрд╡ ред рджреГрд╢реНрдп ред takePlotParametres ( рдЧреНрд░рд┐рдб )
- def createGrid ( рд╕реНрд╡рдпрдВ ) :
- x, y, z = ( 10 , 10 , 10 )
- # рд╣рдорд╛рд░реЗ рдШрди рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреНрд░рд┐рдб рдмрдирд╛рдПрдБ
- рдЧреНрд░рд┐рдб = tvtkред рд░реЗрдХреНрдЯрд┐рд▓рд┐рдирд┐рдпрд░рдЧреНрд░рд┐рдб ( )
- # рдлреНрд▓реЛрдЯ 32 рддрдХ рдбреЗрдЯрд╛ рдбрд╛рд▓рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ 64-рдмрд┐рдЯ OS рдкрд░, numpy рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ float64 рдмрдирд╛рддрд╛ рд╣реИ,
- # рдФрд░ рдорд╛рдпрд╛рд╡реА рдХреЛ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИред
- # рд░реИрдВрдбрдо рдбреЗрдЯрд╛ рдмрдирд╛рдПрдВ
- рд╕реНрдХреЗрд▓рд░ = рдлреНрд▓реЛрдЯ 32 ( рдпрд╛рджреГрдЪреНрдЫрд┐рдХ ред рдпрд╛рджреГрдЪреНрдЫрд┐рдХ ( ( x * y * z ) ) )
- # рд╕реНрдХреЗрд▓рд░реНрд╕ рд╡рд╣ рдореВрд▓реНрдп рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдШрди рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрд▓ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
- # рдпрд╣ рдЗрд╕ рдореВрд▓реНрдп рдкрд░ рд╣реИ рдХрд┐ рдХреЛрд╢рд┐рдХрд╛рдУрдВ рдХреА рд╕рддрд╣ рдХрд╛ рд░рдВрдЧ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
- рдЧреНрд░рд┐рдбред point_dataред scalars = рд╕реНрдХреЗрд▓рд░
- рдЧреНрд░рд┐рдбред point_dataред рд╕реНрдХреЗрд▓рд░ ред рдирд╛рдо = 'рд╕реНрдХреЗрд▓рд░'
- рдЧреНрд░рд┐рдбред рдЖрдпрд╛рдо = ( рдПрдХреНрд╕, рд╡рд╛рдИ, рдЬреЗрдб )
- рдЧреНрд░рд┐рдбред x_coordinates = float32 ( arange ( x ) )
- рдЧреНрд░рд┐рдбред y_coordinates = float32 ( arange ( y ) )
- рдЧреНрд░рд┐рдбред z_coordinates = float32 ( arange ( z ) )
- рд╡рд╛рдкрд╕реА рдЧреНрд░рд┐рдб
- рдЕрдЧрд░ __name__ == "__main__" :
- # рдирдпрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ
- # рдЬреЛ рдорд╛рдпрд╛рд╡реА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЖрдк рд╕рднреА рд▓рдХреНрд╖рдг рд╕рдВрдХреЗрддреЛрдВ / рд╕реНрд▓реЙрдЯреНрд╕ рдХреЛ рдорд╛рд░ рджреЗрдВрдЧреЗ,
- # рдФрд░ рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- # рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред
- # рдЖрджрдд рд╕реЗ рдмрд╛рд╣рд░ рди рд▓рд┐рдЦреЗрдВ QtGui.QApplication (sys.argv) .instance ()
- # рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕ рд░реЗрдХ рдкрд░ рдХрджрдо рд░рдЦрд╛ред
- app = QtGuiред рдкреНрд░рд╢реНрдиреЛрддреНрддрд░ ред рдЙрджрд╛рд╣рд░рдг ( )
- рдХрдВрдЯреЗрдирд░ = рдХреНрдпреВрдЯреАрдЧреБрдИред QWidget ( )
- рдХрдВрдЯреЗрдирд░ред setWindowTitle ( "рд╣реЗрд▓реЛ рд╣реИрдмреНрд░рд╛рд╣рд╛рдм !" )
- рд▓реЗрдЖрдЙрдЯ = QtGuiред QVBoxLayout ( рдХрдВрдЯреЗрдирд░ )
- mayavi_widget = MayaviQWidget ( )
- рдмрдЯрди = QtGuiред QPushButton ( 'рдХреНрдпреВрдм рдмрдирд╛рдПрдБ' )
- рдмрдЯрдиред рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ ред рдХрдиреЗрдХреНрдЯ ( mayavi_widgetред create_cube )
- рд▓реЗрдЖрдЙрдЯред AddWidget ( mayavi_widget )
- рд▓реЗрдЖрдЙрдЯред AddWidget ( рдмрдЯрди )
- рдХрдВрдЯреЗрдирд░ред рджрд┐рдЦрд╛рдирд╛ ( )
- рдПрдкреНрд▓рд┐рдХреЗрд╢рдиред рдирд┐рд╖реНрдкрд╛рджрд┐рдд_ ( )
рд╣рдо рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡рд┐рдВрдбреЛ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:

рдмрдЯрди рджрдмрд╛рдПрдВ рдФрд░ рд░рдВрдЧреАрди рдШрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

рдпрджрд┐ рдЖрдк рдХреБрдЫ рдФрд░ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ:

рдареАрдХ рд╣реИ, рддреБрдо рднреА рдХреБрдЫ рднрд╡рд┐рд╖реНрдп рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЕрдВрджрд░ рдПрдХ рдЪреЗрд╣рд░реЗ рдХреЗ рд╕рд╛рде рдПрдХ рдмреЙрдХреНрд╕ рдХреЗ рдЕрдВрджрд░)

рдпрд╣ рдореЗрд░рд╛ рд╡рд┐рд╖рдп рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдк рдХреБрдЫ рдФрд░ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реИред
PS рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдореИрдВ рдЪрд╛рдХреЛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╡рд┐рд╖рдп рд▓рд┐рдЦреВрдВрдЧрд╛ред рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдиреЗ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ?