Skip to content
Snippets Groups Projects
Commit 91a75108 authored by Benjamin-Sitbon's avatar Benjamin-Sitbon
Browse files

Vector

made same fonction without pointers to make easier star fonctions
parent ee4d3ba0
No related branches found
No related tags found
No related merge requests found
......@@ -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>
......
......@@ -79,6 +79,8 @@ void print_box(box b){
}
//TEST FONCTIONS//
int Test_new_box(){
......
......@@ -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;
print_star(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);
}
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
No preview for this file type
......@@ -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("}");
}
......
......@@ -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();
No preview for this file type
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