Skip to content
Snippets Groups Projects
Commit 064958f4 authored by gawen.ackerman's avatar gawen.ackerman :robot:
Browse files

image et système update

parent 39ad1726
Branches
No related tags found
No related merge requests found
...@@ -115,6 +115,41 @@ void vector2_print(Vector2 v); ...@@ -115,6 +115,41 @@ void vector2_print(Vector2 v);
:TODO: :TODO:
Décrire le système de mise à jour étape par étape Décrire le système de mise à jour étape par étape
##### Algorithme
1. Pour tous les objets célèstes, les mettrent à jour
1. Calcul de l'interval de multiplication (si il y a eu un changement de vitesse de simulation)
2. Calculer la nouvelle position
3. Calculer l'accélération grativationnelle
4. Ajouter l'accélération gravitationnelle
5. Stocker l'ancienne position
6. Mettre à jour la position par la nouvelle position
7. Mettre à jour l'ancienne position
1. si la distance est supérieure ou égale à un seuil (pour stocker tous les x écarts)
2. Stocker l'interval
##### Calcul de l'accélération gravitationnelle
On calcul l'accélération gravitationnelle de la planète i en fonction de toutes les planètes sauf elle-même.
```c
Vector2 calculate_gravitational_acceleration(int32_t object_index, CelestialObject **objects, int32_t objects_length) {
Vector2 a = vector2_create_zero();
for (int32_t i = 0; i < objects_length; i += 1) {
if (i == object_index) {
continue;
}
Vector2 r = vector2_substract((i < object_index) ? objects[i]->previous_position : objects[i]->position, objects[object_index]->position);
double a_scalar = G * objects[i]->mass * pow(pow(vector2_norm(r), 2), -1);
a = vector2_add(a, vector2_multiply(vector2_normalize(r), a_scalar));
}
return a;
}
```
### OpenGL ### OpenGL
#### Afficher un cercle de couleur #### Afficher un cercle de couleur
...@@ -170,3 +205,13 @@ Pour rapeticir la taille des objets célestes afin de voir le système dans son ...@@ -170,3 +205,13 @@ Pour rapeticir la taille des objets célestes afin de voir le système dans son
#### Afficher / Cacher les noms des objets célèstes #### Afficher / Cacher les noms des objets célèstes
Pour Afficher ou Cacher le nom des objets célèstes, il faut appuyer sur la touche `t` Pour Afficher ou Cacher le nom des objets célèstes, il faut appuyer sur la touche `t`
### Résultat
#### Système solaire
![Système planétaire](assets/planetarysystem.png "Système planétaire")
#### Terre, Lune, Apollon 11
File added
assets/planetarysystem.png

38.3 KiB

0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment