我使用以下代码来停止/恢复动画(ArtistAnimation或FuncAnimation工作正常):
def keypress(event):
global anim_running
if event.key == ' ': # SPACE: pause and resume animation
if anim and anim.event_source:
anim.event_source.stop() if anim_running else anim.event_source.start()
anim_running ^= True
fig.canvas.mpl_connect('key_press_event', keypress)
现在,我想要做的是,在动画停止的情况下,我想按一些键(例如't')并查看下一帧并使用其他键(例如'T')查看前一帧。即能够逐帧手动步进。
该程序的完整代码在这里(但没有必要回答这个问题):
https://github.com/tigran123/quantum-infodynamics/blob/master/dynamics/solplay.py
我意识到,当然可以完全忽略animate(k)的'k'参数并保持我自己的全局帧号,这可以通过键盘处理程序来控制。但是这会浪费很多CPU(即保持重新渲染相同的帧),我认为通过直接操作动画对象必须有更好的方法。