一:主要的知识点
1、说明
本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客
2、知识点纪要
本段代码主要涉及的有①同时监听两个事件
二:代码及注释
import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkInteractionStyle import vtkInteractorStyleTrackballCamera class MyInteractorStyle(vtkInteractorStyleTrackballCamera): def __init__(self, parent=None): self.AddObserver('MiddleButtonPressEvent', self.middle_button_press_event) self.AddObserver('MiddleButtonReleaseEvent', self.middle_button_release_event) def middle_button_press_event(self, caller, event): print("Middle Button pressed") self.OnMiddleButtonDown() def middle_button_release_event(self, caller, event): print("Middle Button released") self.OnMiddleButtonUp() def main(): colors = vtkNamedColors() source = vtkSphereSource() source.SetCenter(0, 0, 0) source.SetRadius(1) source.Update() mapper = vtkPolyDataMapper() mapper.SetInputConnection(source.GetOutputPort()) actor = vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d("SlateGray")) render = vtkRenderer() render.SetBackground(colors.GetColor3d("SlateGray")) render.AddActor(actor) renwin = vtkRenderWindow() renwin.AddRenderer(render) renwin.SetWindowName('MouseEvents') interactor = vtkRenderWindowInteractor() style = MyInteractorStyle() interactor.SetInteractorStyle(style) interactor.SetRenderWindow(renwin) interactor.Initialize() renwin.Render() interactor.Start() if __name__ == '__main__': main()