from pylab
import *
# La fonction ci-dessous renvoie les
positions dans le référentiel héliocentrique
def
positionHc(t): xS = 0
yS = 0 xT = 150 * cos(t)
yT = 150 * sin(t) xM = 230 * cos(pi + t /
1.83) yM = 230 * sin(pi + t / 1.83)
xL = xT + 20 * cos(13 * t) yL = yT + 20 *
sin(13 * t)
return xS, yS, xT, yT, xM, yM, xL, yL
# On colore le fond en noir
axes(facecolor = "black")
# On cache les axes xticks([])
yticks([]) t = 0 for i
in
range(0, 1200): t += 0.01
axis("equal")
xlim(-400,400) ylim(-400,400)
xS, yS, xT, yT, xM, yM, xL, yL = positionHc(t)
# Changement de
référentiel xDECA = -xT
yDECA = -yT xS += xDECA
yS += yDECA xL += xDECA
yL += yDECA xM += xDECA
yM += yDECA xT = 0 yT
= 0 if i
== 0:
# On représente les astres la première fois
Terre, = plot(xT, yT, c = "#99AAFF",
marker = "o", markersize = 7)
Soleil, = plot(xS, yS, c = "#EEEEDD",
marker = "o", markersize = 15)
Mars, = plot(xM, yM, c = "#EE5555",
marker = "o", markersize = 5)
Lune, = plot(xL, yL, c = "#DDDDCC",
marker = "o", markersize = 3)
else:
# On actualise les positions
Terre.set_data(xT, yT)
Soleil.set_data(xS, yS)
Mars.set_data(xM, yM)
Lune.set_data(xL, yL)
# On attend un peu (0,01 s)
pause(0.01) show()
|