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

galaxy

parent ffb98265
No related branches found
No related tags found
No related merge requests found
......@@ -10,12 +10,15 @@
</component>
<component name="ChangeListManager">
<list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Star.c" beforeDir="false" afterPath="$PROJECT_DIR$/Star.c" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Star.h" beforeDir="false" afterPath="$PROJECT_DIR$/Star.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/Star.o" beforeDir="false" afterPath="$PROJECT_DIR$/Star.o" 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$/galaxy.c" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy.c" afterDir="false" />
<change beforePath="$PROJECT_DIR$/galaxy.h" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy.h" afterDir="false" />
<change beforePath="$PROJECT_DIR$/galaxy.o" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy.o" afterDir="false" />
<change beforePath="$PROJECT_DIR$/galaxy_simulation" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy_simulation" afterDir="false" />
<change beforePath="$PROJECT_DIR$/galaxy_simulation.c" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy_simulation.c" afterDir="false" />
<change beforePath="$PROJECT_DIR$/galaxy_simulation.o" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy_simulation.o" afterDir="false" />
<change beforePath="$PROJECT_DIR$/makefile" beforeDir="false" afterPath="$PROJECT_DIR$/makefile" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
......@@ -29,7 +32,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Vector.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="427">
<state relative-caret-position="-542">
<caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" />
</state>
</provider>
......@@ -47,8 +50,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="597">
<caret line="82" selection-start-line="82" selection-end-line="82" />
<state relative-caret-position="1632">
<caret line="111" selection-start-line="111" selection-end-line="111" />
</state>
</provider>
</entry>
......@@ -56,8 +59,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/Box.h">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="19" selection-start-column="19" selection-end-column="19" />
<state relative-caret-position="204">
<caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
</state>
</provider>
</entry>
......@@ -65,8 +68,8 @@
<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="-867">
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" />
<state relative-caret-position="833">
<caret line="79" selection-start-line="79" selection-end-line="79" />
</state>
</provider>
</entry>
......@@ -75,7 +78,7 @@
<entry file="file://$PROJECT_DIR$/Star.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
<caret line="20" selection-start-line="20" selection-end-line="20" />
</state>
</provider>
</entry>
......@@ -83,8 +86,8 @@
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/galaxy.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="87" selection-start-line="15" selection-start-column="87" selection-end-line="15" selection-end-column="87" />
<state relative-caret-position="223">
<caret line="120" column="8" selection-start-line="120" selection-start-column="8" selection-end-line="120" selection-end-column="8" />
</state>
</provider>
</entry>
......@@ -92,8 +95,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/galaxy.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="15" lean-forward="true" selection-start-line="1" selection-start-column="15" selection-end-line="1" selection-end-column="15" />
<state relative-caret-position="340">
<caret line="20" column="15" selection-start-line="20" selection-start-column="15" selection-end-line="20" selection-end-column="15" />
</state>
</provider>
</entry>
......@@ -101,8 +104,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/galaxy_simulation.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
<state relative-caret-position="425">
<caret line="25" column="18" selection-start-line="25" selection-start-column="18" selection-end-line="25" selection-end-column="18" />
</state>
</provider>
</entry>
......@@ -110,8 +113,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="49" selection-start-line="2" selection-start-column="49" selection-end-line="2" selection-end-column="49" />
<state relative-caret-position="306">
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
</state>
</provider>
</entry>
......@@ -126,15 +129,15 @@
<list>
<option value="$PROJECT_DIR$/Vector_Test.h" />
<option value="$PROJECT_DIR$/Vector_Test.c" />
<option value="$PROJECT_DIR$/Box.h" />
<option value="$PROJECT_DIR$/Box.c" />
<option value="$PROJECT_DIR$/Vector.h" />
<option value="$PROJECT_DIR$/Vector.c" />
<option value="$PROJECT_DIR$/Star.c" />
<option value="$PROJECT_DIR$/galaxy_simulation.c" />
<option value="$PROJECT_DIR$/Star.h" />
<option value="$PROJECT_DIR$/galaxy.h" />
<option value="$PROJECT_DIR$/galaxy_simulation.c" />
<option value="$PROJECT_DIR$/makefile" />
<option value="$PROJECT_DIR$/Box.h" />
<option value="$PROJECT_DIR$/Box.c" />
<option value="$PROJECT_DIR$/galaxy.h" />
<option value="$PROJECT_DIR$/galaxy.c" />
</list>
</option>
......@@ -193,12 +196,12 @@
<option name="presentableId" value="Default" />
<updated>1559227081243</updated>
<workItem from="1559227084365" duration="53793000" />
<workItem from="1560336527698" duration="16824000" />
<workItem from="1560336527698" duration="28191000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="70617000" />
<option name="totallyTimeSpent" value="81984000" />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
......@@ -248,73 +251,73 @@
<entry file="file://$PROJECT_DIR$/../C/Projet/makefile">
<provider selected="true" editor-type-id="text-editor" />
</entry>
<entry file="file://$PROJECT_DIR$/Box.c">
<entry file="file://$PROJECT_DIR$/Vector.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="597">
<caret line="82" selection-start-line="82" selection-end-line="82" />
<state relative-caret-position="-542">
<caret line="39" column="18" selection-start-line="39" selection-start-column="18" selection-end-line="39" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Box.h">
<entry file="file://$PROJECT_DIR$/Vector.h">
<provider selected="true" editor-type-id="text-editor">
<state>
<caret column="19" selection-start-column="19" selection-end-column="19" />
<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>
<entry file="file://$PROJECT_DIR$/Vector.c">
<entry file="file://$PROJECT_DIR$/galaxy_simulation.c">
<provider selected="true" editor-type-id="text-editor">
<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 relative-caret-position="425">
<caret line="25" column="18" selection-start-line="25" selection-start-column="18" selection-end-line="25" selection-end-column="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/galaxy_simulation.c">
<entry file="file://$PROJECT_DIR$/makefile">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="68">
<caret line="4" column="18" selection-start-line="4" selection-start-column="18" selection-end-line="4" selection-end-column="18" />
<state relative-caret-position="306">
<caret line="18" lean-forward="true" selection-start-line="18" selection-end-line="18" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Star.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="-867">
<caret line="12" lean-forward="true" selection-start-line="12" selection-end-line="12" />
<state relative-caret-position="833">
<caret line="79" selection-start-line="79" selection-end-line="79" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Vector.h">
<entry file="file://$PROJECT_DIR$/Star.h">
<provider selected="true" editor-type-id="text-editor">
<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 relative-caret-position="340">
<caret line="20" selection-start-line="20" selection-end-line="20" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Star.h">
<entry file="file://$PROJECT_DIR$/Box.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="20" lean-forward="true" selection-start-line="20" selection-end-line="20" />
<state relative-caret-position="204">
<caret line="12" column="26" selection-start-line="12" selection-start-column="26" selection-end-line="12" selection-end-column="26" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/galaxy.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="17">
<caret line="1" column="15" lean-forward="true" selection-start-line="1" selection-start-column="15" selection-end-line="1" selection-end-column="15" />
<state relative-caret-position="340">
<caret line="20" column="15" selection-start-line="20" selection-start-column="15" selection-end-line="20" selection-end-column="15" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/makefile">
<entry file="file://$PROJECT_DIR$/Box.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="34">
<caret line="2" column="49" selection-start-line="2" selection-start-column="49" selection-end-line="2" selection-end-column="49" />
<state relative-caret-position="1632">
<caret line="111" selection-start-line="111" selection-end-line="111" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/galaxy.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="255">
<caret line="15" column="87" selection-start-line="15" selection-start-column="87" selection-end-line="15" selection-end-column="87" />
<state relative-caret-position="223">
<caret line="120" column="8" selection-start-line="120" selection-start-column="8" selection-end-line="120" selection-end-column="8" />
</state>
</provider>
</entry>
......
......@@ -22,10 +22,10 @@ box new_box(double x0, double x1, double y0, double y1){
}
bool is_inside(box b, vec *v){
bool is_inside(box b, vec v){
//Vérification des valeurs du vecteur dans les intervalles de la box
if(v->x >= b.x0 && v->x <= b.x1 && v->y >= b.y0 && v->y <= b.y1){
if(v.x >= b.x0 && v.x <= b.x1 && v.y >= b.y0 && v.y <= b.y1){
return true;
}
......@@ -97,8 +97,8 @@ int Test_new_box(){
int Test_is_inside(){
box b = new_box(-1.0,1.0,-2.0,2.0);
vec *v1 = new_vec(0.5,1.5);
vec *v2 = new_vec(1.0,2.5);
vec v1 = (vec){0.5,1.5};
vec v2 = (vec){1.0,2.5};
bool test1 = is_inside(b,v1);
bool test2 = is_inside(b,v2);
......@@ -109,8 +109,7 @@ int Test_is_inside(){
else{
printf("Test_is_inside has an ERROR\n");
}
free(v1);
free(v2);
}
int Test_compute_length(){
......
......@@ -10,7 +10,7 @@ box new_box(double x0, double x1, double y0, double y1);
box *divide_in_four(box b);
//Déterminer si une position est à l’intérieur de la box
bool is_inside(box b, vec *v);
bool is_inside(box b, vec v);
//Déterminer la taille maximale d’un des côtés de la box
double compute_length(box b);
......
No preview for this file type
......@@ -2,6 +2,7 @@
#include <stdlib.h>
#include <stdbool.h>
#include <math.h>
#include <time.h>
#include "galaxy.h"
......@@ -11,13 +12,134 @@ galaxy *create_and_init_galaxy(int num_bodies, box b,double dt){
new_gal->num_bodies = num_bodies;
new_gal->b = b;
star* tab[num_bodies];
srand ( time ( NULL));
star** tab = malloc(num_bodies* sizeof(star*));
for(int i = 0; i<num_bodies;i++){
tab[i] = new_star_vel((vec){0.0,0.0},(vec){1.0,1.0},(vec){0.0,0.0},100000,1.0);
tab[i] = new_star_vel((vec){rand()%(int)b.x1,rand()%(int)b.y1},(vec){1.0,1.0},(vec){0.0,0.0},100000,dt);
}
new_gal->stars = tab;
return new_gal;
}
void free_galaxy(galaxy *g){
for(int i = 0; i<g->num_bodies; i++){
free(g->stars[i]);
}
free(g->stars);
free(g);
}
void free_stars(galaxy *g){
for(int i = 0; i<g->num_bodies; i++){
free(g->stars[i]);
}
free(g->stars);
}
void reset_accelerations(galaxy *g){
for(int i = 0; i<g->num_bodies; i++){
reset_acceleration(g->stars[i]);
}
}
void update_positions(galaxy *g, double dt){
for(int i = 0; i<g->num_bodies; i++){
update_position(g->stars[i],dt);
}
}
void resize_galaxy(galaxy *g){
int compt = 0;
for(int i = 0; i<g->num_bodies; i++){
if(!is_inside(g->b,g->stars[i]->pos_t)){
compt++;
}
}
int new_size = g->num_bodies-compt;
star** tab = malloc(new_size* sizeof(star*));
compt = 0;
for(int i = 0; i<g->num_bodies; i++){
if(!is_inside(g->b,g->stars[i]->pos_t)){
compt++;
continue;
}
tab[i-compt] = g->stars[i];
}
g->stars = tab;
g->num_bodies = new_size;
}
//FONCTION TEST//
int Test_reset_accelerations(){
int compt = 0;
box b = new_box(0.0,5.0,0.0,5.0);
galaxy *g = create_and_init_galaxy(5,b,1.0);
reset_accelerations(g);
for(int i = 0; i<g->num_bodies; i++){
if(g->stars[i]->acc.x == 0.0 && g->stars[i]->acc.y == 0.0){
compt++;
}
}
if(compt==g->num_bodies){
printf("Test_reset_accelerations is OK\n");
}
else{
printf("Test_reset_accelerations has an ERROR\n");
}
free_galaxy(g);
}
int Test_resize_gal(){
box b = new_box(0.0,5.0,0.0,5.0);
galaxy *g = create_and_init_galaxy(5,b,1.0);
g->stars[0]->pos_t.x = 6.0;
int compt = 0;
resize_galaxy(g);
for(int i = 0; i<g->num_bodies; i++){
if(!is_inside(g->b,g->stars[i]->pos_t)){
continue;
}
compt++;
}
if(compt==g->num_bodies){
printf("Test_resize_gal is OK\n");
}
else{
printf("Test_resize_gal has an ERROR\n");
}
free_galaxy(g);
}
int galaxy_tests(){
Test_reset_accelerations();
Test_resize_gal();
}
\ No newline at end of file
#include "Star.h"
typedef struct galaxy {
int num_bodies;
star *stars;
star **stars;
box b;
} galaxy;
......@@ -18,5 +18,7 @@ void update_positions(galaxy *g, double dt);
//La libération de la mémoire de la galaxie:
void free_galaxy(galaxy *g);
void free_stars(galaxy *g);
//Lorsqu’une étoile, s, sort de la box de la galaxie, celle-ci doit être s doit effacée du tableau d’étoiles contenu dans la galaxie et sa mémoire libérée:
void resize_galaxy(galaxy *g);
No preview for this file type
No preview for this file type
......@@ -22,5 +22,9 @@ int main(int argc, char *argv[]) {
star_tests();
}
else if (strcmp(argv[1],"galaxy_test") == 0) {
galaxy_tests();
}
}
}
\ No newline at end of file
No preview for this file type
......@@ -14,3 +14,5 @@ Star.o: Star.c
gcc -o Star.o -c Star.c
galaxy.o: galaxy.c
gcc -o galaxy.o -c galaxy.c
clean:
rm -f noise *.o *.gch
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment