🔷 INFORMATIONS GÉNÉRALES
Champ Détail
Nom du script onizuka_e1kezm5sdkpzw5xx_333.py
Version 1.0.0
Date de création 19/03/2026
Auteur / Demandeur Gemini (Analyse du code fourni)
Objectif principal Simuler et visualiser en 3D les interactions gravitationnelles entre corps célestes via les lois de Newton.
🎯 DESCRIPTION FONCTIONNELLE
📌 Que fait ce script ?
Le script est un simulateur de mécanique céleste « N-corps ». Il permet de modéliser les orbites de planètes, d’étoiles binaires ou de collisions d’astéroïdes en calculant en temps réel les forces d’attraction gravitationnelle. Il propose une interface interactive en ligne de commande pour lancer différentes scènes animées en 3D.
📌 Problème résolu
Il permet de visualiser des concepts physiques complexes (lois de Kepler, trajectoires hyperboliques, systèmes dynamiques) qui sont difficiles à appréhender par le seul calcul mathématique.
⚙️ SPÉCIFICATIONS TECHNIQUES
🐍 Environnement
Élément Valeur
Version Python 3.x (nécessite le support des classes et f-strings)
OS cible Tous (Windows, Linux, MacOS)
Mode d’exécution CLI interactif avec rendu graphique fenêtré
📦 Dépendances / Librairies
numpy : Calcul vectoriel performant pour les positions et vitesses.
matplotlib : Moteur de rendu 3D (mpl_toolkits.mplot3d) et système d’animation (FuncAnimation).
📥 ENTRÉES (INPUTS)
📂 Fichiers / Sources de données en entrée
Le script est auto-contenu. Les données (masses, distances en UA, vitesses initiales) sont codées en dur dans des fonctions de configuration :
creer_systeme_solaire()
creer_simulation_binaire()
simulation_collision_asteroides()
📤 SORTIES (OUTPUTS)
📂 Fichiers / Données en sortie
Type Chemin / Format Description
Visuel Fenêtre Matplotlib Animation 3D interactive des trajectoires.
Vidéo simulation.mp4 Export possible via la méthode sauvegarder (nécessite ffmpeg).
🧱 STRUCTURE DU SCRIPT
Plaintext
onizuka_script.py
│
├── 📌 IMPORTS (numpy, matplotlib)
├── 📌 CONSTANTES (G, UA, JOUR, AN)
├── 📌 CLASSES
│ ├── CorpsCeleste → Modèle physique d’un objet (masse, pos, vit)
│ ├── SystemeSolaire → Moteur de calcul (algorithme Leapfrog)
│ └── Visualisateur → Gestion de l’affichage 3D et de l’animation
├── 📌 FONCTIONS DE SCÈNES
│ ├── creer_systeme_solaire()
│ ├── creer_simulation_binaire()
│ └── simulation_collision_asteroides()
└── 📌 MAIN (Menu interactif)
🔧 Détail des fonctions principales
Fonction Paramètres Retour Rôle
force_gravitationnelle(autre) autre: CorpsCeleste np.array Calcule le vecteur force F=Gr2m1m2.
mise_a_jour_positions() Aucun None Applique l’algorithme d’intégration numérique Leapfrog.
mettre_a_jour(frame) frame: int list Calcule 100 pas de physique et rafraîchit le graphique 3D.
🔄 LOGIQUE / ALGORITHME
Le script utilise l’intégration de Leapfrog (Saut de grenouille) pour une meilleure conservation de l’énergie par rapport à la méthode d’Euler simple :
Demi-pas de vitesse : v(t+dt/2)=v(t)+a(t)⋅dt/2
Pas complet de position : x(t+dt)=x(t)+v(t+dt/2)⋅dt
Recalcul de l’accélération a(t+dt) via la loi de gravitation universelle.
Second demi-pas de vitesse : v(t+dt)=v(t+dt/2)+a(t+dt)⋅dt/2
🚨 GESTION DES ERREURS
Singularité gravitationnelle : Le script vérifie si distance == 0 dans le calcul de la force pour éviter une division par zéro (retourne un vecteur nul).
Limitation des trajectoires : Pour éviter l’explosion de la mémoire vive, seules les 1000 dernières positions de chaque corps sont conservées pour le tracé.
✅ CONTRAINTES & RÈGLES MÉTIER
Échelle : Les calculs internes sont en unités SI (mètres, kg, secondes), mais l’affichage est converti en Unités Astronomiques (UA) pour la lisibilité.
Performance : Le moteur effectue 100 itérations physiques par image affichée pour accélérer le temps perçu (time-lapse).
🧪 TESTS ATTENDUS
Stabilité orbitale : La Terre doit boucler une orbite autour du Soleil en environ 365 jours de simulation.
Conservation : Dans le système binaire, les deux étoiles doivent orbiter autour de leur centre de masse commun.
Visualisation : Les limites des axes 3D doivent s’ajuster dynamiquement si un corps s’éloigne (implémenté dans Visualisateur).
📝 EXEMPLE D’UTILISATION
▶️ Lancement en ligne de commande
Bash
python onizuka_e1kezm5sdkpzw5xx_333.py
L’utilisateur saisit ensuite 1, 2 ou 3 pour lancer la simulation souhaitée.



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