def animate(self, j):
'''
Play frame `j` of the animation.
'''
if not self.pause:
# Normalize the time index
j = int(j * len(self.t) / 100.)
# Time tracker
self.tracker.set_xdata(self.bodies[0].time_hr[self.t[j]])
# Occultor images
x0 = self.body.x_hr[self.t[j]]
y0 = self.body.y_hr[self.t[j]]
for k, occultor in enumerate(self.occultors):
if self.xy is None:
xo, yo = occultor.x_hr[self.t[j]] - x0, \
occultor.y_hr[self.t[j]] - y0
else:
xo, yo = self.xy(occultor.x_hr[self.t[j]] - x0,
occultor.y_hr[self.t[j]] - y0)
self.occ[k].center = (xo / self.body._r, yo / self.body._r)
# BODY orbits
for k, b in enumerate(self.bodies):
self.pt_xz[k].set_xdata(b.x_hr[self.t[j]])
self.pt_xz[k].set_ydata(b.z_hr[self.t[j]])
self.pt_zy[k].set_xdata(b.z_hr[self.t[j]])
self.pt_zy[k].set_ydata(b.y_hr[self.t[j]])
评论列表
文章目录