ANNEXE A: Algorithme
Triangulation de Delaunay en 2D - M´ethode incr´ementale
Structure de donn´ees propos´ee
TRIANGLE : sommet *p1, *p2, *p3; /* sommets*/
triangle *t1, *t2, *t3; /* voisins */
(´eventuellement en plus:
point m; /* centre du cercle circonscrit */
double r; /* rayon de ce cercle */ )
POINT : double x, y; /* coordonn´ees */
Les indices des points et des triangles voisins sont li´es de la fa¸con suivante:
Les triangles ont tous la mˆeme orientation.
Dans la suite on d´ecrit un algorithme permettant d’ins´erer un point `a une triangulation de Delaunay d´ej`a
existante. On suppose que le point `a ins´erer se trouve dans l’enveloppe convexe des points introduits auparavant.
Algorithme
Input: DTlet le nouveau point pl.
Output: DTl+1
Proc´edure:
1. D´eterminer le triangle Ti, dans lequel se trouve le point pl(parcourir toute la triangulation.)
2. determiner DTL ( pl, Ti, DT L )
determiner NTL ( pl, DT L, N T L )
supprimer les triangles DT L de la triangulation DTl.
3. Rajouter pl`a la liste des points de la triangulation.
L’algorithme a besoin de deux listes importantes:
-NT L : Liste des triangles, qui seront rajout´es `a la triangulation DTl.
-DT L : Liste des triangles, qui seront effac´es de la triangulation DTl.
On va maintenant voir en d´etail les deux proc´edures:
proc´edure: determiner DTL
Input: ppoint `a rajouter
Titriangle, qui contient p
Output: DT L liste des triangles `a effacer
Proc´edure:
1. Rajouter Ti`a la liste DT L
2. FOR j=0 TO 2DO
IF Tij/∈DT L THEN
IF p`a l’int´erieur du cercle circonscrit `a TijTHEN
determiner DTL( p, Tij, DT L) /* appel r´ecursif */
2