diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 758fca2785dced5801731c1f0ad541448f26bb55..78c069551b47e817ee08503dace8b5f383aaae3a 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -10,15 +10,14 @@ </component> <component name="ChangeListManager"> <list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment=""> - <change beforePath="$PROJECT_DIR$/Box" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Box.c" beforeDir="false" afterPath="$PROJECT_DIR$/Box.c" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Box.h" beforeDir="false" afterPath="$PROJECT_DIR$/Box.h" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Box.o" beforeDir="false" afterPath="$PROJECT_DIR$/Box.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/Vector" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/Star.c" beforeDir="false" afterPath="$PROJECT_DIR$/Star.c" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/Star.o" beforeDir="false" afterPath="$PROJECT_DIR$/Star.o" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Vector.c" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Vector.h" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.h" afterDir="false" /> <change beforePath="$PROJECT_DIR$/Vector.o" beforeDir="false" afterPath="$PROJECT_DIR$/Vector.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/makefile" beforeDir="false" afterPath="$PROJECT_DIR$/makefile" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/galaxy_simulation" beforeDir="false" /> </list> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> @@ -27,12 +26,12 @@ <option name="LAST_RESOLUTION" value="IGNORE" /> </component> <component name="FileEditorManager"> - <leaf> - <file pinned="false" current-in-tab="false"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <file pinned="false" current-in-tab="true"> <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2159"> - <caret line="208" column="1" selection-start-line="208" selection-start-column="1" selection-end-line="208" selection-end-column="1" /> + <state relative-caret-position="427"> + <caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" /> </state> </provider> </entry> @@ -40,8 +39,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Vector.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="442"> - <caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" /> + <state relative-caret-position="153"> + <caret line="9" column="53" selection-start-line="9" selection-start-column="53" selection-end-line="9" selection-end-column="53" /> </state> </provider> </entry> @@ -49,8 +48,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Box.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="4" selection-start-line="4" selection-end-line="4" /> + <state relative-caret-position="597"> + <caret line="82" selection-start-line="82" selection-end-line="82" /> </state> </provider> </entry> @@ -64,11 +63,11 @@ </provider> </entry> </file> - <file pinned="false" current-in-tab="true"> + <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Star.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="255"> - <caret line="15" column="14" selection-start-line="15" selection-start-column="14" selection-end-line="15" selection-end-column="14" /> + <state relative-caret-position="291"> + <caret line="75" column="79" selection-start-line="75" selection-start-column="79" selection-end-line="75" selection-end-column="79" /> </state> </provider> </entry> @@ -76,8 +75,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/Star.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="442"> - <caret line="26" selection-start-line="26" selection-end-line="26" selection-end-column="36" /> + <state relative-caret-position="323"> + <caret line="19" selection-start-line="19" selection-end-line="22" selection-end-column="44" /> </state> </provider> </entry> @@ -94,8 +93,8 @@ <file pinned="false" current-in-tab="false"> <entry file="file://$PROJECT_DIR$/makefile"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="34"> - <caret line="2" column="20" selection-start-line="2" selection-start-column="20" selection-end-line="2" selection-end-column="41" /> + <state relative-caret-position="153"> + <caret line="9" column="31" selection-start-line="9" selection-start-column="31" selection-end-line="9" selection-end-column="31" /> </state> </provider> </entry> @@ -115,20 +114,20 @@ <list> <option value="$PROJECT_DIR$/Vector_Test.h" /> <option value="$PROJECT_DIR$/Vector_Test.c" /> - <option value="$PROJECT_DIR$/Vector.h" /> - <option value="$PROJECT_DIR$/Vector.c" /> - <option value="$PROJECT_DIR$/makefile" /> - <option value="$PROJECT_DIR$/Box.c" /> <option value="$PROJECT_DIR$/Box.h" /> <option value="$PROJECT_DIR$/galaxy_simulation.c" /> <option value="$PROJECT_DIR$/Star.h" /> + <option value="$PROJECT_DIR$/Box.c" /> + <option value="$PROJECT_DIR$/makefile" /> + <option value="$PROJECT_DIR$/Vector.h" /> <option value="$PROJECT_DIR$/Star.c" /> + <option value="$PROJECT_DIR$/Vector.c" /> </list> </option> </component> <component name="ProjectFrameBounds" extendedState="6"> - <option name="x" value="761" /> - <option name="y" value="53" /> + <option name="x" value="760" /> + <option name="y" value="52" /> <option name="width" value="1050" /> <option name="height" value="730" /> </component> @@ -155,6 +154,7 @@ <property name="WebServerToolWindowFactoryState" value="false" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + <property name="nodejs_package_manager_path" value="npm" /> </component> <component name="RunDashboard"> <option name="ruleStates"> @@ -178,24 +178,21 @@ <option name="number" value="Default" /> <option name="presentableId" value="Default" /> <updated>1559227081243</updated> - <workItem from="1559227084365" duration="44894000" /> + <workItem from="1559227084365" duration="53793000" /> + <workItem from="1560336527698" duration="9022000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="44894000" /> + <option name="totallyTimeSpent" value="62815000" /> </component> <component name="ToolWindowManager"> <frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> <editor active="true" /> <layout> - <window_info id="Favorites" side_tool="true" /> - <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.24966443" /> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25302014" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> - <window_info anchor="bottom" id="Database Changes" /> - <window_info anchor="bottom" id="Version Control" /> - <window_info anchor="bottom" id="Terminal" /> - <window_info anchor="bottom" id="Event Log" side_tool="true" /> + <window_info id="Favorites" order="2" side_tool="true" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> <window_info anchor="bottom" id="Run" order="2" /> @@ -203,10 +200,14 @@ <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" /> - <window_info anchor="right" id="Database" /> + <window_info anchor="bottom" id="Database Changes" order="7" /> + <window_info anchor="bottom" id="Version Control" order="8" /> + <window_info anchor="bottom" id="Terminal" order="9" /> + <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="Database" order="3" /> </layout> </component> <component name="TypeScriptGeneratedFilesManager"> @@ -225,51 +226,46 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Vector_Test.h"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="17"> - <caret line="1" column="17" selection-start-line="1" selection-start-column="17" selection-end-line="1" selection-end-column="17" /> - </state> - </provider> + <entry file="file://$PROJECT_DIR$/Vector_Test.h" /> + <entry file="file://$PROJECT_DIR$/Vector_Test.c" /> + <entry file="file://$PROJECT_DIR$/Vector.o"> + <provider selected="true" editor-type-id="text-editor" /> </entry> - <entry file="file://$PROJECT_DIR$/Vector_Test.c"> + <entry file="file://$PROJECT_DIR$/makefile"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="243"> - <caret line="21" column="1" lean-forward="true" selection-start-line="5" selection-end-line="21" selection-end-column="1" /> + <state relative-caret-position="153"> + <caret line="9" column="31" selection-start-line="9" selection-start-column="31" selection-end-line="9" selection-end-column="31" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Vector.o"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> <entry file="file://$PROJECT_DIR$/../C/Projet/makefile"> <provider selected="true" editor-type-id="text-editor" /> </entry> - <entry file="file://$PROJECT_DIR$/Vector.h"> + <entry file="file://$PROJECT_DIR$/Box.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="442"> - <caret line="26" lean-forward="true" selection-start-line="26" selection-end-line="26" /> + <state relative-caret-position="597"> + <caret line="82" selection-start-line="82" selection-end-line="82" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Box.c"> + <entry file="file://$PROJECT_DIR$/Box.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="4" selection-start-line="4" selection-end-line="4" /> + <state> + <caret column="19" selection-start-column="19" selection-end-column="19" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/makefile"> + <entry file="file://$PROJECT_DIR$/Star.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="34"> - <caret line="2" column="20" selection-start-line="2" selection-start-column="20" selection-end-line="2" selection-end-column="41" /> + <state relative-caret-position="323"> + <caret line="19" selection-start-line="19" selection-end-line="22" selection-end-column="44" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Star.h"> + <entry file="file://$PROJECT_DIR$/Vector.h"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="442"> - <caret line="26" selection-start-line="26" selection-end-line="26" selection-end-column="36" /> + <state relative-caret-position="153"> + <caret line="9" column="53" selection-start-line="9" selection-start-column="53" selection-end-line="9" selection-end-column="53" /> </state> </provider> </entry> @@ -280,24 +276,17 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Vector.c"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2159"> - <caret line="208" column="1" selection-start-line="208" selection-start-column="1" selection-end-line="208" selection-end-column="1" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/Box.h"> + <entry file="file://$PROJECT_DIR$/Star.c"> <provider selected="true" editor-type-id="text-editor"> - <state> - <caret column="19" selection-start-column="19" selection-end-column="19" /> + <state relative-caret-position="291"> + <caret line="75" column="79" selection-start-line="75" selection-start-column="79" selection-end-line="75" selection-end-column="79" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/Star.c"> + <entry file="file://$PROJECT_DIR$/Vector.c"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="255"> - <caret line="15" column="14" selection-start-line="15" selection-start-column="14" selection-end-line="15" selection-end-column="14" /> + <state relative-caret-position="427"> + <caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" /> </state> </provider> </entry> diff --git a/Box.c b/Box.c index 950e968a9537c7e96a2071b42e21c82c38b9b3a7..7e3ea03ead0e69e01d0fd81cd262966ec32a10c7 100644 --- a/Box.c +++ b/Box.c @@ -79,6 +79,8 @@ void print_box(box b){ } + + //TEST FONCTIONS// int Test_new_box(){ diff --git a/Star.c b/Star.c index a10811320ec7eb59c7ee6df5d051e8272938c449..8c892bc71681ea89c35cfd939178d9c003330ec6 100644 --- a/Star.c +++ b/Star.c @@ -4,55 +4,143 @@ #include <math.h> #include "Star.h" +double norme(const vec const v1){ + + //La norme correspond a la racine carré de (x^2 + y^2), ici on fait puissance 1/2 qui est équivalent à racine carrée + double norm = pow((pow(v1.x,2.0) + pow(v1.y,2.0)),0.5); + + return norm; + +} + void print_star(const star *const s){ - printf("POSITION:"); - printf(" "); - printf("VITESSE:"); - printf(" "); - printf("ACCELERATION:"); - printf(" "); - printf("MASSE"); + + vec *p = new_vec(s->pos_t.x,s->pos_t.y); + vec *v = new_vec(s->pos_t_dt.x,s->pos_t_dt.y); + vec *a = new_vec(s->acc.x,s->acc.y); + printf("POSITION:\n"); + print_vec(p); + printf("\n"); + printf("VITESSE:\n"); + print_vec(v); + printf("\n"); + printf("ACCELERATION:\n"); + print_vec(a); + printf("\n"); + printf("MASSE:\n"); + printf("%f",s->mass); printf("\n"); - print_vec(s->pos_t); - printf(" "); - print_vec(s->pos_t_dt); - printf(" "); - print_vec(s->acc); - printf(" "); - printf("%f",s->mass) + free(p); + free(v); + free(a); } star *new_star_vel(vec pos, vec vel, vec acc, double mass,double dt){ - star new_star; - new_star.mass = mass; - new_star.pos_t = pos; - new_star.pos_t_dt = sub_vec(pos,mul_vec(dt,vel)); - new_star.acc = acc; + star *new_star = malloc(sizeof(star)); + new_star->mass = mass; + new_star->pos_t = pos; + vec *pos_t_dt = sub_vec(&pos,mul_vec(dt,&vel)); + new_star->pos_t_dt.x = pos_t_dt->x; + new_star->pos_t_dt.y = pos_t_dt->y; + new_star->acc = acc; + + return new_star; + +} + +void reset_acceleration(star *s){ + + s->acc.y = 0.0; + s->acc.x = 0.0; + +} + +void update_acceleration(star *s, const star *const s2) { + + double G = 6.67e-11; + vec sub = sub_vect(s2->pos_t,s->pos_t); + vec F = mul_vect(G * s->mass * s2->mass, sub); + double n = pow(norme(sub),3); + + F = mul_vect(1/n,F); + print_vect(F); + + s->acc = mul_vect(1/s->mass,F); +} - print_star(new_star); +void update_position(star *s, double dt){ + s->pos_t = add_vect(sub_vect(mul_vect(2,s->pos_t),s->pos_t),mul_vect(dt*dt,s->acc)); } +//pos_t = 2*pos_t - pos_t_dt + acc * dt * dt + + + //TEST FONCTIONS// int Test_new_star(){ - vec *p = new_vec(1.0,4.0); - vec *v = new_vec(2.0,0.5); - vec *a = new_vec(1.0,1.0); + vec p = (vec){1.0,4.0}; + vec v = (vec){2.0,0.5}; + vec a = (vec){1.0,1.0}; - star star_test = new_star_vel(p,v,a,1000.0,3.0); + star *star_test = new_star_vel(p,v,a,1000.0,3.0); - free(p); - free(v); - free(a); + if(star_test->pos_t_dt.x == -5.0 && star_test->pos_t_dt.y ==2.5){ + + printf("Test_new_star IS OK\n"); + } + else{ + printf("Test_new_star has an ERROR\n"); + } + + free(star_test); + +} + +int Test_reset_acc(){ + + vec p = (vec){1.0,4.0}; + vec v = (vec){2.0,0.5}; + vec a = (vec){1.0,1.0}; + + star *star_test = new_star_vel(p,v,a,1000.0,0.0); + + reset_acceleration(star_test); + + if(star_test->acc.x == 0.0 && star_test->acc.y == 0.0){ + printf("Test_reset_acc IS OK\n"); + + } + else{ + printf("Test_reset_acc has an ERROR\n"); + } + free(star_test); +} + +int Test_update_acc(){ + + vec terre = (vec){0.0,0.0}; + vec v = (vec){2.0,0.5}; + vec a = (vec){1.0,1.0}; + + vec lune = (vec){0.0,384400000.0}; + + star *star1 = new_star_vel(terre,v,a,5.9722e24,0.0); + star *star2 = new_star_vel(lune,v,a,7.342e22,0.0); + + update_acceleration(star2,star1); + free(star1); + free(star2); } int star_tests(){ Test_new_star(); - + Test_reset_acc(); + Test_update_acc(); } \ No newline at end of file diff --git a/Star.o b/Star.o index faeb85e750266003160f8fc25d893d4a037c52bf..2a406ff12991be4950d2e3a751e3ce589c8a9387 100644 Binary files a/Star.o and b/Star.o differ diff --git a/Vector.c b/Vector.c index 984adedab79d83bf28b6acdc3b0f14fda0de8a36..14cbd3826c17ee4108999a9de9fd71c38b99fbd9 100644 --- a/Vector.c +++ b/Vector.c @@ -34,6 +34,18 @@ vec *add_vec(const vec *const v1, const vec *const v2){ } +vec add_vect(const vec const v1, const vec const v2){ + + //Création d'un vecteur nul + vec add_vec = (vec){0.0,0.0}; + //Addition des x et des y faite dans le nouveau vecteur + add_vec.x = v1.x + v2.x; + add_vec.y = v1.y + v2.y; + + return add_vec; + +} + vec *sub_vec(const vec *const v1, const vec *const v2){ //Création d'un vecteur nul @@ -46,6 +58,18 @@ vec *sub_vec(const vec *const v1, const vec *const v2){ } +vec sub_vect(const vec const v1, const vec const v2){ + + //Création d'un vecteur nul + vec sub_vec = (vec){0.0,0.0}; + //Soustraction des x et des y dans le nouveau vecteur + sub_vec.x = v1.x - v2.x; + sub_vec.y = v1.y - v2.y; + + return sub_vec; + +} + vec *mul_vec(double alpha, const vec *const v2) { //Création d'un vecteur nul vec *mul_vec = new_vec(0.0,0.0); @@ -57,6 +81,17 @@ vec *mul_vec(double alpha, const vec *const v2) { } +vec mul_vect(double alpha, const vec const v2) { + //Création d'un vecteur nul + vec mul_vec =(vec){0.0,0.0}; + //Multiplication du x et du y par le scalaire dans le nouveau vecteur + mul_vec.x = alpha * v2.x; + mul_vec.y = alpha * v2.y; + + return mul_vec; + +} + double norm(const vec *const v1){ //La norme correspond a la racine carré de (x^2 + y^2), ici on fait puissance 1/2 qui est équivalent à racine carrée @@ -66,6 +101,7 @@ double norm(const vec *const v1){ } + double distance(const vec *const v1, const vec *const v2){ //La distance correspond à la racine carré de (x2 - x1)^2 + (y2 -y1)^2 @@ -81,7 +117,16 @@ void print_vec(const vec *const v){ printf("}\n"); printf("{"); printf("%f",v->y); + printf("}"); +} + +void print_vect(const vec const v){ + printf("{"); + printf("%f",v.x); printf("}\n"); + printf("{"); + printf("%f",v.y); + printf("}"); } diff --git a/Vector.h b/Vector.h index fa618bdd588fda36cdf33d446e971c94d56bc12a..2079c67934acdfa348500200baf7723b52763cda 100644 --- a/Vector.h +++ b/Vector.h @@ -2,25 +2,30 @@ typedef struct vec { double x, y; } vec; -//Créé et initialiser un vecteur: +//Créer et initialiser un vecteur: vec *new_vec(double x, double y); //Additionne deux vecteurs vec *add_vec(const vec *const v1, const vec *const v2); +vec add_vect(const vec const v1, const vec const v2); //Soustrait deux vecteurs vec *sub_vec(const vec *const v1, const vec *const v2); +vec sub_vect(const vec const v1, const vec const v2); //Multiplie un vecteur par un scalaire vec *mul_vec(double alpha, const vec *const v2); +vec mul_vect(double alpha, const vec const v2); //Calcule la norme d’un vecteur double norm(const vec *const v1); +double norme(const vec const v1); //Calcule la distance entre deux vecteurs double distance(const vec *const v1, const vec *const v2); //Affiche un vecteur void print_vec(const vec *const v); +void print_vect(const vec const v); int vector_tests(); diff --git a/Vector.o b/Vector.o index 5809106742ed6108b09675bd4eef663470eaea3b..1d169814ec132196c3f1ebd784a80ce7658c9ace 100644 Binary files a/Vector.o and b/Vector.o differ diff --git a/galaxy_simulation b/galaxy_simulation index 25d1690ed1c11ac31335eb8c705957bea20b9113..65dc84f9d90ffd9e0acf082706742b9f5719ec82 100644 Binary files a/galaxy_simulation and b/galaxy_simulation differ