Я пытаюсь смоделировать орбиту двух тел. Я сгенерировал их траектории, которые хранятся в 4 списках (2 для параметризованной плоскости xy и 2 набора для каждого круга). Я пытаюсь создать 2 круга, которые вращаются вокруг друг друга. Я заставил программу работать, но есть ли способ, которым я могу обобщить свой код для большего количества кругов и сделать его менее громоздким, т.е. уменьшить повторение?
Вот мой код:
fig = plt.figure()
ax = plt.axes()
ax = plt.axes(xlim=(-12*10**6, 12*10**6), ylim=(-12*10**6, 12*10**6))
patch1 = plt.Circle((p1[0],p2[0]),1*10**6,color="b", animated=True)
patch2 = plt.Circle((m1[0],m2[0]),1*10**6,color="orange", animated=True)
def init():
patch1.center = (p1[0], p2[0])
ax.add_patch(patch1)
patch2.center = (m1[0],m2[0])
ax.add_patch(patch2)
return patch1,patch2,
def animate(i):
x, y = patch1.center
x = p1[i]
y = p2[i]
patch1.center = (x, y)
z, a = patch2.center
z = m1[i]
a = m2[i]
patch2.center = (z, a)
return patch1,patch2,
numframes = len(p1)
anim = FuncAnimation(fig, animate, init_func=init, frames = numframes, interval=0.0005,blit=True)
plt.show()