From ad501ed791fa5af441a4a677169741eb7130bf2a Mon Sep 17 00:00:00 2001 From: Florian Burgener <florian.burgener@etu.hesge.ch> Date: Tue, 21 Dec 2021 09:20:50 +0100 Subject: [PATCH] Update README --- README.md | 77 ------------------------------------------------------- 1 file changed, 77 deletions(-) diff --git a/README.md b/README.md index 53561db..8d5ccd2 100644 --- a/README.md +++ b/README.md @@ -25,89 +25,12 @@ Afin de mener ce projet à terme, nous avons dû créer certaines de nos structu | Terre | 5.9722 * 1E24 | 0.0167 | 149.596 * 1E9 | | Mars | 0.64169 * 1E24 | 0.0935 | 227.923 * 1E9 | - * https://nssdc.gsfc.nasa.gov/planetary/factsheet/sunfact.html * https://nssdc.gsfc.nasa.gov/planetary/factsheet/mercuryfact.html * https://nssdc.gsfc.nasa.gov/planetary/factsheet/venusfact.html * https://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html * https://nssdc.gsfc.nasa.gov/planetary/factsheet/marsfact.html -### Structures - -#### CelestialObject - -Représente un corps céleste comme par exmple : une planète ou une étoile. - -```c -typedef struct CelestialObject { - char name[100]; - double mass; - Vector2 previous_position; - Vector2 position; - double semi_major_axis; - double eccentricity; - int32_t drawing_disc_radius; - int32_t drawing_color; - Vector2 *previous_positions; - int32_t previous_positions_length; -} CelestialObject; - -CelestialObject *celestial_object_create(char *name, double mass, double semi_major_axis, double eccentricity, int32_t drawing_disc_radius, int32_t drawing_color); -void celestial_object_destroy(CelestialObject *object); -int32_t get_zoomed_drawing_disc_radius(CelestialObject *object, double zoom_factor); -Vector2 calculate_gravitational_acceleration(int32_t object_index, CelestialObject **objects, int32_t objects_length); -void celestial_object_first_update(int32_t object_index, CelestialObject **objects, int32_t objects_length, int32_t main_object_index); -void celestial_object_update(int32_t object_index, CelestialObject **objects, int32_t objects_length, double interval, double previous_interval); -void celestial_object_update_previous_positions(CelestialObject *object); -void celestial_object_draw(CelestialObject *object, Vector2 reference_frame, double zoom_factor); -void celestial_object_draw_name(CelestialObject *object, Vector2 reference_frame, double zoom_factor); -``` - -#### PlanetarySystem - -Représente un système planétaire composé d'une étoile en son centre et des planètes orbitant autour. - -```c -typedef struct PlanetarySystem { - CelestialObject **objects; - int32_t objects_length; - int32_t reference_frame_index; - double zoom_factor; - double previous_interval; - bool show_names; -} PlanetarySystem; - -PlanetarySystem *planetary_system_create(); -void planetary_system_destroy(PlanetarySystem *planetary_system); -Vector2 planetary_system_get_reference_frame(PlanetarySystem *planetary_system); -void planetary_system_update(PlanetarySystem *planetary_system, double interval); -void planetary_system_draw(PlanetarySystem *planetary_system); -void planetary_system_draw_object_names(PlanetarySystem *planetary_system); -``` - -#### Vector2 - -Représente un vecteur en 2 dimensions. - -```c -typedef struct Vector2 { - double x; - double y; -} Vector2; - -Vector2 vector2_create(double x, double y); -Vector2 vector2_create_zero(); -Vector2 vector2_add(Vector2 a, Vector2 b); -Vector2 vector2_substract(Vector2 a, Vector2 b); -Vector2 vector2_multiply(Vector2 v, double scalar); -double vector2_dot_product(Vector2 a, Vector2 b); -double vector2_norm_sqr(Vector2 v); -double vector2_norm(Vector2 v); -Vector2 vector2_normalize(Vector2 v); -Vector2 vector2_fit_canvas(Vector2 v, int32_t width, int32_t height); -void vector2_print(Vector2 v); -``` - ### Fonctionnement #### Système de mise à jour -- GitLab