我正在为Matplotlib编写自己的Animation
类,以便使用基于事件的动画,并且不清楚Artist._animated
和关联的set_animated()
函数如何影响渲染。
我的动画应该使用blitting,我将现有的FuncAnimation
类作为我实现的参考。在此课程_init_draw
和_draw_frame
方法中,如果启用了blitting,请为_animated = True
中的每位艺术家设置self._drawn_artists
:
for a in self._drawn_artists:
a.set_animated(self._blit)
这次手术的原因是什么?在什么情况下使用Artist._animated
,以及它如何影响渲染是否有blitting?我已经测试了我的实施情况,并且我认为在有或没有set_animated()
的行为方面存在任何差异:
class DataAnimation(Animation):
def __init__(self, fig, *args, **kwargs):
super(DataAnimation, self).__init__(fig, event_source=event_source, *args, **kwargs)
def new_frame_seq(self):
return itertools.count()
def _init_draw(self):
self._drawn_artists = plot.init()
for artist in self._drawn_artists: # <- do we need this?
artist.set_animated(self._blit)
def _draw_frame(self, frame_data):
self._drawn_artists = plot.updated_artists
for artist in self._drawn_artists: # <- do we need this?
artist.set_animated(self._blit)