Skip to content
Snippets Groups Projects
Commit 72530487 authored by Florian Burgener's avatar Florian Burgener
Browse files

Update README

parent f56741a1
Branches
No related tags found
No related merge requests found
......@@ -7,3 +7,6 @@ insert_final_newline = true
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
[*.md]
indent_style = tab
# Rapport du travail pratique "Simulation d'un système planétaire"
Ce travail pratique sur la "Simulation d’un système planétaire sur un plan à l’aide des lois de Newton" est réalisé par M. Gawen ACKERMANN et M. Florian BURGENER, dans le cadre cours du cours de Physique appliquée à l'ingénierie 1 (ISC_123).
Ce travail pratique sur la "Simulation d’un système planétaire sur un plan à l’aide des lois de Newton" est réalisé par M. Gawen ACKERMANN et M. Florian BURGENER, dans le cadre cours du cours de Physique appliquée à l'ingénierie 1 (ISC_123).
## But
......@@ -25,7 +25,7 @@ puis éxecuter la commander make afin de compiler automatiquement le projet
Pour éxecuter le projet, éxecuter la commande suivante :
`./planetary_system`
`./planetary_system`
## Le résultat du projet en vidéo
......@@ -70,21 +70,36 @@ Nous avons aussi ajouté 1 autre planète réelle (Jupiter), 2 satellites (la Lu
### Fonctionnement de la simulation
#### Calcule des nouvelles positions et de l'accélération à appliquer à chaque Δt
#### Calcule de la nouvelle position et de l'accélération appliquer à chaque Δt sur chaque objet céleste
TODO
##### Initialisation
##### Algorithme
1. Pour chaque objet céleste ;
1. Création de l'objet céleste en appelant la fonction `celestial_object_create` ;
1. (dans la fonction `celestial_object_create`) ;
2. Calcule du périapside en fonction du demi-grand axe et de l'excentricité.
1. Pour tous les objets (Mercure, Venus, ... sauf le Soleil), les mettrent à jour
1. Calculer la nouvelle position (mouvement MRU calculer avec la position précedente et la position actuelle)
2. Calculer l'accélération grativationnelle subit par l'objet
3. Ajouter l'accélération gravitationnelle (multiplier par le delta t au carré)
4. Mettre à jour la position précedente avec la position
5. Mettre à jour la positionp avec la nouvelle position
6. Mettre à jour l'intervalle précédent qui nous permet de calculer la variation du temps entre deux mise à jour
<br>
TODO
1. Pour chaque objet céleste (excepté le Soleil) ;
1. Calcule de la première position en appelant la fonction `celestial_object_first_update` ;
1. (dans la fonction `celestial_object_first_update`) ;
2. Calcule de la vitesse au périapside ;
3. Calcule de la vélocité en multipliant la vitesse à la norme du vecteur perpendiculaire à la distance entre l'objet céleste et le Soleil ;
4. Calcule de l'accélération subit par l'objet céleste ;
5. Calcule de la nouvelle position en fonction de la vitesse au périapside et l'accélération subit par l'objet céleste ;
1. Notez que le Δt est de 1 seconde pour l'initialisation.
##### À chaque mise à jour
1. Pour chaque objet céleste (excepté le Soleil) ;
1. Calcule de la première position en appelant la fonction `celestial_object_update` ;
1. (dans la fonction `celestial_object_update`) ;
2. Calcule de la variation du Δt (`interval / previous_interval`) ;
1. Notez que le `previous_interval` correspond au Δt précèdent tandis que la variable `interval` correspond au Δt actuelle, à l'initialisation la variable `previous_interval` vaut 1 seconde, si le prochain Δt est de 100 secondes alors la "vitesse" sera multiplié par 100 / `previous_interval` pour garder la cohérence du MRU ;
3. Calcule de la nouvelle position en fonction de la position, de la position précédente et de la variation du Δt ;
4. Calcule de l'accélération subit par l'objet céleste ;
5. Conversion de l'accélération en distance en fonction du Δt et ajout de cette distance à la nouvelle position.
### OpenGL
......
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment