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

quad tree

parent f0c1428c
No related branches found
No related tags found
No related merge requests found
...@@ -10,8 +10,10 @@ ...@@ -10,8 +10,10 @@
</component> </component>
<component name="ChangeListManager"> <component name="ChangeListManager">
<list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment=""> <list default="true" id="43aff179-c306-46b9-b69f-eca5306fbf96" name="Default Changelist" comment="">
<change beforePath="$PROJECT_DIR$/galaxy.c" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/galaxy_simulation" beforeDir="false" afterPath="$PROJECT_DIR$/galaxy_simulation" afterDir="false" />
<change beforePath="$PROJECT_DIR$/quad_tree.c" beforeDir="false" afterPath="$PROJECT_DIR$/quad_tree.c" afterDir="false" /> <change beforePath="$PROJECT_DIR$/quad_tree.c" beforeDir="false" afterPath="$PROJECT_DIR$/quad_tree.c" afterDir="false" />
<change beforePath="$PROJECT_DIR$/quad_tree.h" beforeDir="false" afterPath="$PROJECT_DIR$/quad_tree.h" afterDir="false" />
</list> </list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
...@@ -60,7 +62,7 @@ ...@@ -60,7 +62,7 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/galaxy.c"> <entry file="file://$PROJECT_DIR$/galaxy.c">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340"> <state relative-caret-position="442">
<caret line="95" column="73" selection-start-line="95" selection-start-column="73" selection-end-line="95" selection-end-column="73" /> <caret line="95" column="73" selection-start-line="95" selection-start-column="73" selection-end-line="95" selection-end-column="73" />
</state> </state>
</provider> </provider>
...@@ -78,8 +80,8 @@ ...@@ -78,8 +80,8 @@
<file pinned="false" current-in-tab="true"> <file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/quad_tree.c"> <entry file="file://$PROJECT_DIR$/quad_tree.c">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="257"> <state relative-caret-position="342">
<caret line="17" column="81" selection-start-line="17" selection-start-column="81" selection-end-line="17" selection-end-column="81" /> <caret line="35" column="43" selection-start-line="35" selection-start-column="43" selection-end-line="35" selection-end-column="43" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -87,8 +89,8 @@ ...@@ -87,8 +89,8 @@
<file pinned="false" current-in-tab="false"> <file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/quad_tree.h"> <entry file="file://$PROJECT_DIR$/quad_tree.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238"> <state relative-caret-position="51">
<caret line="14" column="35" selection-start-line="14" selection-start-column="35" selection-end-line="14" selection-end-column="35" /> <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="28" />
</state> </state>
</provider> </provider>
</entry> </entry>
...@@ -126,12 +128,12 @@ ...@@ -126,12 +128,12 @@
<option value="$PROJECT_DIR$/galaxy.h" /> <option value="$PROJECT_DIR$/galaxy.h" />
<option value="$PROJECT_DIR$/galaxy_simulation.c" /> <option value="$PROJECT_DIR$/galaxy_simulation.c" />
<option value="$PROJECT_DIR$/makefile" /> <option value="$PROJECT_DIR$/makefile" />
<option value="$PROJECT_DIR$/quad_tree.h" />
<option value="$PROJECT_DIR$/Box.h" /> <option value="$PROJECT_DIR$/Box.h" />
<option value="$PROJECT_DIR$/Box.c" /> <option value="$PROJECT_DIR$/Box.c" />
<option value="$PROJECT_DIR$/Star.h" /> <option value="$PROJECT_DIR$/Star.h" />
<option value="$PROJECT_DIR$/Star.c" /> <option value="$PROJECT_DIR$/Star.c" />
<option value="$PROJECT_DIR$/galaxy.c" /> <option value="$PROJECT_DIR$/galaxy.c" />
<option value="$PROJECT_DIR$/quad_tree.h" />
<option value="$PROJECT_DIR$/quad_tree.c" /> <option value="$PROJECT_DIR$/quad_tree.c" />
</list> </list>
</option> </option>
...@@ -190,12 +192,12 @@ ...@@ -190,12 +192,12 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1559227081243</updated> <updated>1559227081243</updated>
<workItem from="1559227084365" duration="53793000" /> <workItem from="1559227084365" duration="53793000" />
<workItem from="1560336527698" duration="39245000" /> <workItem from="1560336527698" duration="41593000" />
</task> </task>
<servers /> <servers />
</component> </component>
<component name="TimeTrackingManager"> <component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="93038000" /> <option name="totallyTimeSpent" value="95386000" />
</component> </component>
<component name="ToolWindowManager"> <component name="ToolWindowManager">
<frame x="-7" y="-7" width="1550" height="838" extended-state="6" /> <frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
...@@ -294,13 +296,6 @@ ...@@ -294,13 +296,6 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/galaxy.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="340">
<caret line="95" column="73" selection-start-line="95" selection-start-column="73" selection-end-line="95" selection-end-column="73" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/Box.c"> <entry file="file://$PROJECT_DIR$/Box.c">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1088"> <state relative-caret-position="1088">
...@@ -315,17 +310,24 @@ ...@@ -315,17 +310,24 @@
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/galaxy.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="442">
<caret line="95" column="73" selection-start-line="95" selection-start-column="73" selection-end-line="95" selection-end-column="73" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/quad_tree.h"> <entry file="file://$PROJECT_DIR$/quad_tree.h">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238"> <state relative-caret-position="51">
<caret line="14" column="35" selection-start-line="14" selection-start-column="35" selection-end-line="14" selection-end-column="35" /> <caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="28" />
</state> </state>
</provider> </provider>
</entry> </entry>
<entry file="file://$PROJECT_DIR$/quad_tree.c"> <entry file="file://$PROJECT_DIR$/quad_tree.c">
<provider selected="true" editor-type-id="text-editor"> <provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="257"> <state relative-caret-position="342">
<caret line="17" column="81" selection-start-line="17" selection-start-column="81" selection-end-line="17" selection-end-column="81" /> <caret line="35" column="43" selection-start-line="35" selection-start-column="43" selection-end-line="35" selection-end-column="43" />
</state> </state>
</provider> </provider>
</entry> </entry>
......
No preview for this file type
File added
...@@ -14,30 +14,27 @@ quad_tree *create_quad_tree_from_galaxy(const galaxy *const g){ ...@@ -14,30 +14,27 @@ quad_tree *create_quad_tree_from_galaxy(const galaxy *const g){
galaxy->root->b = g->b; galaxy->root->b = g->b;
galaxy->root->is_empty = true; galaxy->root->is_empty = true;
galaxy->root->s = NULL; galaxy->root->s = NULL;
galaxy->root->children = NULL;
//Création de la super étoile avec un masse null et placé au centre de la box //Création de la super étoile avec un masse null et placé au centre de la box
galaxy->root->super_s = new_star_vel((vec){mid_point(g->b.x0,g->b.x1),mid_point(g->b.y0,g->b.y1)},(vec){0.0,0.0},(vec){0.0,0.0},0.0,0.0); galaxy->root->super_s = new_star_vel((vec){mid_point(g->b.x0,g->b.x1),mid_point(g->b.y0,g->b.y1)},(vec){0.0,0.0},(vec){0.0,0.0},0.0,0.0);
return galaxy;
} }
//Suit à la lettre la fonction décrite dans l'énoncé //Suit à la lettre la fonction décrite dans l'énoncé
void insert_star(node *n, star *s){ void insert_star(node *n, star *s){
if(is_inside(n->b,s) && n!=NULL){ if(is_inside(n->b,s->pos_t) && n!=NULL){
if(n->children==NULL) { if(n->children==NULL) {
if (n->is_empty) { if (n->is_empty) {
n->s = s; n->s = s;
n->is_empty = false; n->is_empty = false;
} else { } else {
box *zones = divide_in_four(n->b); box *zones = divide_in_four(n->b);
node *childs = malloc(4 * sizeof(node *));
for (int i = 0; i < 4; i++) { for (int i = 0; i < 4; i++) {
childs[i]->b = zones[i]; n->children[i]->b = zones[i];
childs[i]->is_empty = true; n->children[i]->is_empty = true;
insert_star(childs[i], n->s); insert_star(n->children[i], n->s);
insert_star(childs[i], s); insert_star(n->children[i], s);
} }
n->children = childs;
n->s = NULL; n->s = NULL;
} }
}else{ }else{
......
#include "galaxy.h" #include "galaxy.h"
typedef struct quad_tree {
node *root;
} quad_tree;
typedef struct node { typedef struct node {
struct node *children[4]; struct node *children[4];
...@@ -11,6 +8,9 @@ typedef struct node { ...@@ -11,6 +8,9 @@ typedef struct node {
bool is_empty; bool is_empty;
} node; } node;
typedef struct quad_tree {
node *root;
} quad_tree;
void insert_star(node *n, star *s); void insert_star(node *n, star *s);
......
File added
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment