🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_au4mcd754gfi7sbt_333.py
Version 1.0.0
Date de création 25/03/2026
Auteur / Demandeur refoïa jeremy
Objectif principal Simuler et animer graphiquement les trajectoires orbitales de corps célestes en utilisant les lois de la gravitation de Newton.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Ce script réalise une simulation numérique de mécanique céleste en 2D. Il calcule les interactions gravitationnelles entre plusieurs corps (Soleil, Terre, Mars), met à jour leurs positions et vitesses en temps réel, et affiche une animation fluide de leurs orbites respectives avec une trace de leur historique (trajectoire).
📌 Problème résolu
Il permet de visualiser de manière dynamique l’application de la loi universelle de la gravitation et de comprendre comment les masses et les vitesses initiales influencent la stabilité des orbites planétaires.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x
OS cible Tous (Windows / Linux / MacOS) avec support graphique
Mode d’exécution Script graphique (GUI via Matplotlib)
📦 Dépendances / Librairies
Librairies externes (pip install)
numpy (Calcul vectoriel et numérique)
matplotlib (Moteur de rendu graphique et animation)
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Données Hardcodées : Les propriétés physiques (masse, position initiale x,y, vitesse initiale vx,vy) sont définies directement dans l’instanciation de la classe Corps.
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Rendu Visuel : Une fenêtre interactive Matplotlib affichant l’animation des planètes en orbite autour du Soleil.
🧱 STRUCTURE DU SCRIPT
onizuka_au4mcd754gfi7sbt_333.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CONSTANTES / CONFIG (G, DT, NUM_STEPS)
├── 📌 CLASSES
│ └── Corps → Modèle de donnée pour un objet céleste
├── 📌 FONCTIONS
│ ├── calculer_accelerations() → Calcul de la force gravitationnelle nette
│ ├── init() → Initialisation du cadre d’animation
│ └── update() → Boucle de calcul physique et rafraîchissement visuel
└── 📌 MAIN (Appel de FuncAnimation et plt.show())
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
calculer_accelerations(corps_list) list[Corps] list[np.array] Calcule le vecteur accélération pour chaque corps selon la loi de Newton.
update(frame) int list[Artist] Calcule la nouvelle position (Intégration d’Euler) et met à jour les tracés.
init() Aucun list[Artist] Définit les limites des axes et prépare le fond de l’animation.
🔄 LOGIQUE / ALGORITHME
Étape 1 : Initialisation des objets avec leurs vecteurs d’état (position/vitesse).
↓
Étape 2 : Calcul des forces d’attraction entre chaque paire de corps : F=Gr2m1m2. ↓
Étape 3 : Mise à jour de la vitesse (v=v+a⋅Δt) et de la position (p=p+v⋅Δt).
↓
Étape 4 : Stockage de la position dans l’historique de trajectoire et mise à jour des objets graphiques.
↓
Étape 5 : Répétition (Boucle d’animation) jusqu’à atteindre NUM_STEPS.
🚨 GESTION DES ERREURS
Division par zéro : Le script utilise un « softening factor » (+ 1e5) lors du calcul de la distance pour éviter une accélération infinie si deux corps se superposent.
✅ CONTRAINTES & RÈGLES MÉTIER
Unité : Utilise le système international (mètres, kg, secondes).
Précision : Utilise l’intégration d’Euler simple (le pas de temps DT doit rester raisonnable pour éviter la dérive orbitale).
🧪 TESTS ATTENDUS
# Cas de test Entrée Résultat attendu
1 Orbite stable Paramètres Terre/Soleil La Terre doit décrire une ellipse/cercle fermé.
2 Interaction multiple 3 corps ou plus Les trajectoires doivent être perturbées par l’influence mutuelle.
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_au4mcd754gfi7sbt_333.py



Avis
Il n’y a pas encore d’avis.