Animation
VTKExamples/Python//Animation
Description¶
This example uses a timer to move a sphere across a scene.
- Contributed by: Bryan Conrad
Code¶
Animation.py
from __future__ import print_function import vtk class vtkTimerCallback(): def __init__(self): self.timer_count = 0 def execute(self,obj,event): print(self.timer_count) self.actor.SetPosition(self.timer_count, self.timer_count,0); iren = obj iren.GetRenderWindow().Render() self.timer_count += 1 def main(): #Create a sphere sphereSource = vtk.vtkSphereSource() sphereSource.SetCenter(0.0, 0.0, 0.0) sphereSource.SetRadius(5) #Create a mapper and actor mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(sphereSource.GetOutputPort()) actor = vtk.vtkActor() actor.SetMapper(mapper) prop = actor.GetProperty() # Setup a renderer, render window, and interactor renderer = vtk.vtkRenderer() renderWindow = vtk.vtkRenderWindow() #renderWindow.SetWindowName("Test") renderWindow.AddRenderer(renderer); renderWindowInteractor = vtk.vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) #Add the actor to the scene renderer.AddActor(actor) renderer.SetBackground(1,1,1) # Background color white #Render and interact renderWindow.Render() # Initialize must be called prior to creating timer events. renderWindowInteractor.Initialize() # Sign up to receive TimerEvent cb = vtkTimerCallback() cb.actor = actor renderWindowInteractor.AddObserver('TimerEvent', cb.execute) timerId = renderWindowInteractor.CreateRepeatingTimer(100); #start the interaction and timer renderWindowInteractor.Start() if __name__ == '__main__': main()