Skip to content
Snippets Groups Projects
Commit 9f8bb9be authored by orestis.malaspin's avatar orestis.malaspin
Browse files
parents bdf484cc 0ee2dcac
No related branches found
No related tags found
No related merge requests found
......@@ -66,11 +66,11 @@ void bowyer_watson(point *points, int num_p, vec_triangle *t, int *num_t) {
}
}
vec_arretes = vecteur_vide();
vec_aretes = vecteur_vide();
pour chaque t dans mauvais_triangles {
pour chaque arrete dans t {
si l'arrete n'est partagée avec aucun triangle de mauvais_triangles {
vecteur_push(vec_arretes, arrete);
pour chaque arete dans t {
si l'arete n'est partagée avec aucun triangle de mauvais_triangles {
vecteur_push(vec_aretes, arete);
}
}
}
......@@ -79,8 +79,8 @@ void bowyer_watson(point *points, int num_p, vec_triangle *t, int *num_t) {
vec_remove(vec_triangles, t);
}
pour chaque arrete dans vec_arretes {
t = form_triangle_from_edge_and_point(arrete, p);
pour chaque arete dans vec_aretes {
t = form_triangle_from_edge_and_point(arete, p);
vector_push(vec_triangles, t);
}
......@@ -98,29 +98,29 @@ void bowyer_watson(point *points, int num_p, vec_triangle *t, int *num_t) {
\scriptsize
```C
void bowyer_watson(point *points, int num_p, vec_triangle *t, int *num_t) {
ajout_super_triangle(vec_triangle, num_t); // ajout super triangle
void bowyer_watson(vec_points *points, vec_triangle *triangles) {
ajout_super_triangle(points, t, num_t); // ajout super triangle
pour chaque p dans points {
mauvais_triangles = vecteur_vide();
// on détermine les mauvais triangles
pour chaque t dans vec_triangle {
pour chaque t dans triangles {
si p est dans le triangle circonscrit de t {
vecteur_push(mauvais_triangles, t);
}
}
vec_arretes = vecteur_vide();
vec_aretes = vecteur_vide();
// stockage du polygone entourant le "trou"
pour chaque t dans mauvais_triangles {
pour chaque arrete dans t {
si l'arrete n'est partagée avec aucun triangle de mauvais_triangles {
vecteur_push(vec_arretes, arrete);
pour chaque arete dans t {
si l'arete n'est partagée avec aucun triangle de mauvais_triangles {
vecteur_push(vec_aretes, arete);
}
}
}
// on retire les mauvais triangles
pour chaque t dans mauvais_triangles {
vec_remove(vec_triangles, t);
vec_remove(triangles, t);
}
```
......@@ -130,15 +130,15 @@ void bowyer_watson(point *points, int num_p, vec_triangle *t, int *num_t) {
```C
// on forme les nouveaux triangles et on les ajoute
pour chaque arrete dans vec_arretes {
t = form_triangle_from_edge_and_point(arrete, p);
vector_push(vec_triangles, t);
pour chaque arete dans vec_aretes {
t = form_triangle_from_edge_and_point(arete, p);
vector_push(triangles, t);
}
// on retire les points du super triangle
pour chaque t dans vec_triangles {
pour chaque t dans triangles {
if t contient un point du super triangle {
vec_remove(vec_triangles, t);
vec_remove(triangles, t);
}
}
}
......
......@@ -6,17 +6,17 @@
## Pointeurs de fonctions (1/2)
- COnsidérons la fonction `max` retournant la valeur maximale d'un tableau
- Considérons la fonction `max` retournant la valeur maximale d'un tableau
```C
int max(int *t, int size) {
int val_max = t[0];
for (int i = 1; i < n; ++i) {
for (int i = 1; i < size; ++i) {
if (t[i] > val_max) {
val_max = t[i];
}
}
return max_val;
return val_max;
}
```
- L'appel à `max`, retourne l'adresse de la fonction en mémoire.
......@@ -30,7 +30,7 @@
int (*pmax)(int *, int);
```
- Le type doit être déclaré avec la signature de la fonction.
- On peut alors utiliser l'un ou l'autre indiféremment
- On peut alors utiliser l'un ou l'autre indifféremment
```C
int (*pmax)(int *, int);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment