script_281cvmn_281.py

49,00 

Simuler et visualiser en temps réel les interactions gravitationnelles entre trois corps célestes (Soleil, Planète, Astéroïde) avec détection de collisions.

UGS : script_281cvmn_281.py Catégorie : Étiquette :

🔷 INFORMATIONS GÉNÉRALES

Champ Détail

Nom du script script_281cvmn_281.py

Version 1.0.0

Date de création 07/03/2026

Auteur / Demandeur Gemini (IA Générée)

Objectif principal Simuler et visualiser en temps réel les interactions gravitationnelles entre trois corps célestes (Soleil, Planète, Astéroïde) avec détection de collisions.

🎯 DESCRIPTION FONCTIONNELLE

📌 Que fait ce script ?

Le script calcule les forces gravitationnelles s’exerçant entre plusieurs corps célestes à l’aide de la loi de Newton. Il anime leur mouvement dans un espace 2D, trace leurs trajectoires récentes et surveille les distances pour alerter l’utilisateur en cas d’impact physique (collision).

📌 Problème résolu

Il permet de modéliser dynamiquement des systèmes instables ou stables (orbites) et d’observer visuellement les phénomènes de capture gravitationnelle ou de collision sans nécessiter de calculs manuels complexes.

⚙️ SPÉCIFICATIONS TECHNIQUES

🐍 Environnement

Élément Valeur

Version Python 3.x

OS cible Windows / Linux / MacOS

Mode d’exécution GUI (Interface Graphique via Matplotlib)

📦 Dépendances / Librairies

Librairies standard : Aucune (uniquement des imports tiers).

Librairies externes :

numpy (Calcul vectoriel et gestion des matrices)

matplotlib (Moteur de rendu graphique et animation)

📥 ENTRÉES (INPUTS)

📂 Configuration interne (Dictionnaire self.bodies)

# Nom Type Obligatoire Description Exemple

1 pos np.array ✅ Oui Coordonnées [x, y] initiales [0.0, 0.0]

2 vel np.array ✅ Oui Vecteur vitesse initiale [vx, vy] [0.0, 30.0]

3 m float ✅ Oui Masse de l’objet (influence la gravité) 1000.0

4 r float ✅ Oui Rayon de l’objet (pour la collision) 0.5

📤 SORTIES (OUTPUTS)

📂 Données en sortie

Type Chemin / Format Description

Console Flux Standard (STDOUT) Affiche un message d’alerte lors d’une collision.

Graphique Fenêtre Matplotlib Animation interactive montrant les astres et leurs traînées.

🧱 STRUCTURE DU SCRIPT

script_281cvmn_281.py

├── 📌 IMPORTS (numpy, matplotlib)

├── 📌 CLASSE SpaceSimulation

│ ├── __init__() → Initialise les constantes (G) et les corps.

│ ├── compute_forces() → Calcule les vecteurs forces entre tous les couples d’objets.

│ ├── update() → Intègre les forces pour modifier vitesse et position (Euler/Verlet).

│ └── check_collisions() → Vérifie la distance entre les rayons.

└── 📌 VISUALISATION (MAIN)

├── Initialisation de la figure noire.

├── Fonction animate() → Boucle de rafraîchissement.

└── FuncAnimation → Lancement du moteur de rendu.

🔧 Détail des fonctions principales

Fonction Paramètres Retour Rôle

compute_forces(positions) positions (dict) forces (dict) Calcule la force résultante pour chaque corps selon F=Gd2m1​m2​​.

update() Aucun None Applique l’accélération (a=F/m) et met à jour les coordonnées.

check_collisions() Aucun str / None Retourne un message si la distance Vitesse libération L’objet sort du cadre (-15, 15) définitivement. ⬜ À tester

📝 EXEMPLE D’UTILISATION

▶️ Lancement direct

Bash

python script_281cvmn_281.py

📋 Exemple de sortie console (en cas d’impact)

Plaintext

💥 COLLISION détectée entre Soleil et Asteroide !

Avis

Il n’y a pas encore d’avis.

Soyez le premier à laisser votre avis sur “script_281cvmn_281.py”

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *