Table des matières:

Simulation du système solaire : 4 étapes
Simulation du système solaire : 4 étapes

Vidéo: Simulation du système solaire : 4 étapes

Vidéo: Simulation du système solaire : 4 étapes
Vidéo: La Formation du système solaire 2024, Juillet
Anonim

Pour ce projet, j'ai entrepris de créer une simulation de la façon dont la gravité affecte le mouvement des corps planétaires dans un système solaire. Dans la vidéo ci-dessus\, le corps du Soleil est représenté par la sphère en treillis métallique et les planètes sont générées aléatoirement.

Le mouvement des planètes est basé sur la physique réelle, la loi de la gravitation universelle. Cette loi définit la force gravitationnelle exercée sur une masse par une autre masse; dans ce cas le Soleil sur toutes les planètes, et les planètes les unes sur les autres.

Pour ce projet, j'ai utilisé Processing, un environnement de programmation basé sur Java. J'ai également utilisé le fichier d'exemple Processing qui simule la gravité des planètes. Tout ce dont vous aurez besoin pour cela est le logiciel de traitement et un ordinateur.

Étape 1: Simulation en 2 dimensions

J'ai commencé par regarder quelques vidéos sur la façon de coder cela que Dan Shiffman a créé sur sa chaîne YouTube, le train de codage (partie 1/3). À ce stade, j'ai pensé que j'utiliserais la récursivité pour générer le système solaire, de la même manière que Shiffman n'utilise que les lois de la physique.

J'ai créé un objet planète qui avait des « planètes enfants », qui à leur tour avaient également des planètes « enfants ». Le code pour la simulation 2D n'était pas terminé parce que je n'avais pas un excellent moyen de simuler les forces gravitationnelles pour chaque planète. Je me suis éloigné de cette façon de penser, dans une direction basée sur l'exemple de traitement intégré de l'attraction gravitationnelle. Le problème était que je devais calculer la force gravitationnelle de toutes les autres planètes sur chaque planète, mais je ne pouvais pas penser à comment extraire facilement les informations d'une planète individuelle. Après avoir vu comment le didacticiel de traitement le fait, j'ai compris exactement comment le faire en utilisant des boucles et des tableaux à la place

Étape 2: L'amener à 3 dimensions

En utilisant l'exemple de code pour Planetary Attraction fourni avec le traitement, j'ai commencé un nouveau programme pour une simulation 3D. La principale différence se trouve dans la classe Planet, où j'ai ajouté une fonction d'attraction, qui calcule la force gravitationnelle entre deux planètes. Cela m'a permis de simuler le fonctionnement de nos systèmes solaires, où les planètes ne sont pas seulement attirées par le soleil, mais aussi par toutes les autres planètes.

Chaque planète a des caractéristiques générées aléatoirement telles que la masse, le rayon, la vitesse orbitale initiale, etc. Les planètes sont des sphères solides et le Soleil est une sphère en fil de fer. De plus, l'emplacement de la caméra tourne autour du centre de la fenêtre.

Étape 3: Utiliser de vraies planètes

Image
Image

Une fois le cadre de la simulation 3D terminé, j'ai utilisé Wikipedia pour trouver les données planétaires réelles de notre système solaire. J'ai créé un tableau d'objets planétaires et saisi les données réelles. Lorsque j'ai fait cela, j'ai dû réduire toutes les caractéristiques. Quand j'ai fait cela, j'aurais dû prendre les valeurs réelles et les multiplier par un facteur pour réduire les valeurs, au lieu de cela, je l'ai fait en unités de Terre. C'est-à-dire que j'ai pris le rapport entre la valeur de la Terre et la valeur des autres objets, par exemple le Soleil a 109 fois plus de masse que la Terre. Cependant, cela a eu pour résultat que les tailles des planètes semblaient trop grandes ou trop petites.

Étape 4: Réflexions finales et commentaires

Si je devais continuer à travailler sur cette simulation, j'affinerais/améliorerais certaines choses:

1. Tout d'abord, je mettrais tout à l'échelle uniformément en utilisant le même facteur d'échelle. Ensuite, pour améliorer la visibilité des orbites, j'ajouterais une piste derrière chaque planète pour voir comment chaque révolution se compare à la précédente

2. La caméra n'est pas interactive, ce qui signifie qu'une partie des orbites est hors de l'écran, vue "derrière la personne". Il existe une bibliothèque de caméras 3D appelée Peazy Cam, qui est utilisée dans la partie 2 de la série de vidéos de Coding Train sur ce sujet. Cette bibliothèque permet au spectateur de faire pivoter, de faire un panoramique et de zoomer la caméra afin qu'il puisse suivre toute l'orbite d'une planète.

3. Enfin, les planètes sont actuellement indiscernables les unes des autres. J'aimerais ajouter des « skins » à chaque planète et au Soleil, afin que les téléspectateurs puissent reconnaître la Terre et autres.

Conseillé: