0
我正在做一个带有VTK python的动画程序,我不明白如何停止或暂停 这个动画。有人请告诉我如何停止这个计时器。现在我的动画 继续无限的时间,我试图把我的代码放在循环中,但它没有停止。 请注意我的下面的代码和有人分享一些想法。如何停止VTK定时器
行代码:
renderWindowInteractor.AddObserver('TimerEvent', cb.execute)
timerId = renderWindowInteractor.CreateRepeatingTimer(10);
详细的代码行:
class vtkTimerCallback():
def __init__(self):
self.timer_count = 0
self.timerCycle=0
def execute(self,obj,event):
self.timerCycle+=1
if self.timerCycle==3:
self.timerCycle=0
for A in range(3):
for B in range(2):
for C in range(1):
self.actor.SetPosition(A,1,C);
iren = obj
iren.GetRenderWindow().Render()
self.timer_count += 1
else:
for X in range(1):
for Y in range(2):
for Z in range(3):
self.actor.SetPosition(1,Y,Z);
iren = obj
iren.GetRenderWindow().Render()
self.timer_count += 1
class Cone():
def animation(self,obj_renwin):
renderwininstance=obj_renwin
renderWindowInteractor = vtk.vtkRenderWindowInteractor()
renderWindowInteractor.SetRenderWindow(obj_renwin.renwin)
obj_renwin.renwin.Render()
renderWindowInteractor.Initialize()
cb = vtkTimerCallback()
cb.actor = obj_renwin.actor
for X in range(2):
print "animation time is" + str(X)
renderWindowInteractor.AddObserver('TimerEvent', cb.execute)
timerId = renderWindowInteractor.CreateRepeatingTimer(10);
cone_Obj = Cone()
@flaiv,这工作,但问题是,如果我想再次启动计时动画功能的程序当我点击动画按钮时崩溃,得到像这样的错误消息“Python exe已停止工作”。该错误正在触及以下行self.renderWindowInteractor.SetRenderWindow(obj_renwin.renwin)。你有什么想法,或有任何播放和暂停的示例动画程序。如果你有,请分享一下吗? – 2014-08-31 18:10:19
不幸的是,我从来没有在VTK的定时器工作。我已经看到,它不是“StopTimer”方法,它告诉我可以通过其他方法或通过人工方式(如ResetTimer)或其他方法停止定时器... VTK是一个好的库,但有这样的更少的人可以给这么多问题一些答案...... :(我是一个在VTK工作了几周的人......我想帮助你很多,但我不能......其他来源可能是wiki的例子,但他们是如此有限,almoust不能用于实际应用... – flaviu2 2014-09-01 10:42:15
@flaiv,没问题,感谢您帮助我 – 2014-09-01 10:50:48