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 @@
</component>
<component name="ChangeListManager">
<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.h" beforeDir="false" afterPath="$PROJECT_DIR$/quad_tree.h" afterDir="false" />
</list>
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
<option name="SHOW_DIALOG" value="false" />
......@@ -60,7 +62,7 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/galaxy.c">
<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" />
</state>
</provider>
......@@ -78,8 +80,8 @@
<file pinned="false" current-in-tab="true">
<entry file="file://$PROJECT_DIR$/quad_tree.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="257">
<caret line="17" column="81" selection-start-line="17" selection-start-column="81" selection-end-line="17" selection-end-column="81" />
<state relative-caret-position="342">
<caret line="35" column="43" selection-start-line="35" selection-start-column="43" selection-end-line="35" selection-end-column="43" />
</state>
</provider>
</entry>
......@@ -87,8 +89,8 @@
<file pinned="false" current-in-tab="false">
<entry file="file://$PROJECT_DIR$/quad_tree.h">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="35" selection-start-line="14" selection-start-column="35" selection-end-line="14" selection-end-column="35" />
<state relative-caret-position="51">
<caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="28" />
</state>
</provider>
</entry>
......@@ -126,12 +128,12 @@
<option value="$PROJECT_DIR$/galaxy.h" />
<option value="$PROJECT_DIR$/galaxy_simulation.c" />
<option value="$PROJECT_DIR$/makefile" />
<option value="$PROJECT_DIR$/quad_tree.h" />
<option value="$PROJECT_DIR$/Box.h" />
<option value="$PROJECT_DIR$/Box.c" />
<option value="$PROJECT_DIR$/Star.h" />
<option value="$PROJECT_DIR$/Star.c" />
<option value="$PROJECT_DIR$/galaxy.c" />
<option value="$PROJECT_DIR$/quad_tree.h" />
<option value="$PROJECT_DIR$/quad_tree.c" />
</list>
</option>
......@@ -190,12 +192,12 @@
<option name="presentableId" value="Default" />
<updated>1559227081243</updated>
<workItem from="1559227084365" duration="53793000" />
<workItem from="1560336527698" duration="39245000" />
<workItem from="1560336527698" duration="41593000" />
</task>
<servers />
</component>
<component name="TimeTrackingManager">
<option name="totallyTimeSpent" value="93038000" />
<option name="totallyTimeSpent" value="95386000" />
</component>
<component name="ToolWindowManager">
<frame x="-7" y="-7" width="1550" height="838" extended-state="6" />
......@@ -294,13 +296,6 @@
</state>
</provider>
</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">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="1088">
......@@ -315,17 +310,24 @@
</state>
</provider>
</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">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="238">
<caret line="14" column="35" selection-start-line="14" selection-start-column="35" selection-end-line="14" selection-end-column="35" />
<state relative-caret-position="51">
<caret line="3" column="4" selection-start-line="3" selection-start-column="4" selection-end-line="3" selection-end-column="28" />
</state>
</provider>
</entry>
<entry file="file://$PROJECT_DIR$/quad_tree.c">
<provider selected="true" editor-type-id="text-editor">
<state relative-caret-position="257">
<caret line="17" column="81" selection-start-line="17" selection-start-column="81" selection-end-line="17" selection-end-column="81" />
<state relative-caret-position="342">
<caret line="35" column="43" selection-start-line="35" selection-start-column="43" selection-end-line="35" selection-end-column="43" />
</state>
</provider>
</entry>
......
No preview for this file type
File added
......@@ -14,30 +14,27 @@ quad_tree *create_quad_tree_from_galaxy(const galaxy *const g){
galaxy->root->b = g->b;
galaxy->root->is_empty = true;
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
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é
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->is_empty) {
n->s = s;
n->is_empty = false;
} else {
box *zones = divide_in_four(n->b);
node *childs = malloc(4 * sizeof(node *));
for (int i = 0; i < 4; i++) {
childs[i]->b = zones[i];
childs[i]->is_empty = true;
insert_star(childs[i], n->s);
insert_star(childs[i], s);
n->children[i]->b = zones[i];
n->children[i]->is_empty = true;
insert_star(n->children[i], n->s);
insert_star(n->children[i], s);
}
n->children = childs;
n->s = NULL;
}
}else{
......
#include "galaxy.h"
typedef struct quad_tree {
node *root;
} quad_tree;
typedef struct node {
struct node *children[4];
......@@ -11,6 +8,9 @@ typedef struct node {
bool is_empty;
} node;
typedef struct quad_tree {
node *root;
} quad_tree;
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