VTK 파이썬으로 애니메이션 프로그램을 만들고 있는데,이 애니메이션을 중지하거나 일시 중지하는 방법을 모르겠다. 이 애니메이션. 누군가이 타이머를 멈추는 방법에 대해 말해주십시오. 지금은 내 애니메이션 무한 시간 동안 계속, 내 루프에 대한 내 코드를 넣으려고했지만 중지하지 못했습니다. 내 아래 코드에 유의하십시오. 누군가 친절하게 생각을 나누십시오.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) 줄에 나타납니다. 재생이나 일시 정지가있는 샘플 애니메이션 프로그램이나 아이디어가 있으십니까? 있다면 공유 할 수 있겠습니까? –
불행히도, 저는 VTK의 타이머로 일한 적이 없었습니다. 나는 타이머가 다른 방법이나 ResetTimer와 같은 인공적인 방법으로 멈출 수 있다고 말하는 "StopTimer"방법이 없다는 것을 보았습니다 ... VTK는 좋은 라이브러리이지만, 많은 질문에 대한 답을 줄 수있는 사람들이 적습니다 ... (몇 주 동안 VTK에서 일하는 사람 중 한 명입니다 ... 많은 도움을주고 싶지만 ... 다른 출처가 될 수는 없습니다. 위키 예제,하지만 그들은 매우 제한되어 almoust는 실제 응용 프로그램에서 사용할 수 없습니다 ... – flaviu2
@ flaiv, 아무 문제, 도와 주셔서 감사합니다 –