Lycée Jean Vilar - Villeneuve lez Avignon
Page d'accueil Le site académique
Le site du lycée Espace Numérique de Travail
Le lycée
  Le lycée Jean Vilar
  Archives
  Art et culture
  Association Sportive
  Blogs
  CDI
  Développement durable
  Enseignements
  Espace enseignants
  Espace lycéens
  Espace parents
  Grand oral
  Journal du lycée
  Marchés publics
  Orientation
  Projet d'établissement
  Spécialités
  TICE
  Un lycée européen
  Voyages
  Webradio













Nouvelle page 1
Jean Vilar
Rétrogradation de Mars
Python  

Des exemples pour apprendre


Modules à importer :
          pylab  pour utiliser les fonctions mathématiques et créer des graphiques

Avec ce programme :
- on définit une fonction avec  def() 
- on renvoie des valeurs avec  return() 
- on colore le fond du graphe avec  axes(facecolor = " ") 
- on enlève les graduations des axes avec  xticks([])  et  yticks([]) 
- on impose la même échelle horizontale et verticale avec  axis("equal") 
- on crée une boucle avec  for ... in 
- on place des points avec  plot() 
- on actualise les positions avec  set_data() 
- on attend avec  pause() 
- on affiche un graphe avec  show() 

Le code

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()

Le résultat partiel :