diff --git a/README.md b/README.md index 6edfe2e4b3de462d91c2c67c8f4e737b9597352e..5b4611226b6f83fa7eaa15fccb280f6997215139 100644 --- a/README.md +++ b/README.md @@ -115,6 +115,41 @@ void vector2_print(Vector2 v); :TODO: 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 #### 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 #### 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` + + +### Résultat + +#### Système solaire + + + + +#### Terre, Lune, Apollon 11 diff --git a/README.pdf b/README.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5feb380c44fc312b23b799117afeda36100d4000 Binary files /dev/null and b/README.pdf differ diff --git a/assets/planetarysystem.png b/assets/planetarysystem.png new file mode 100644 index 0000000000000000000000000000000000000000..18f7877a5ced8e389377d869a03f67b848857709 Binary files /dev/null and b/assets/planetarysystem.png differ