Algorithme de flip pour les triangulations de segments

Transcription

Algorithme de flip pour les triangulations de segments
Algorithme de flip pour les triangulations de
segments
Mathieu Brévilliers
Nicolas Chevallier
Dominique Schmitt
Laboratoire LMIA
Université de Haute-Alsace
Journées Informatique et Géométrie 2008
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
1 / 22
Triangulations d’ensembles de points
Triangulation quelconque
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
2 / 22
Triangulations d’ensembles de points
Triangulation quelconque
Théorème
Toute triangulation de S admet
2n − n′ − 2 faces et 3n − n′ − 3
arêtes, où n est le nombre de
sites de S et n′ le nombre de
côtés de l’enveloppe convexe
de S.
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
2 / 22
Triangulations d’ensembles de points
Triangulation de Delaunay
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
3 / 22
Triangulations d’ensembles de points
Triangulation de Delaunay
M. Brévilliers & al. (LMIA, UHA)
Diagramme de Voronoï
Algorithme de flip pour les TS
JIG 2008
3 / 22
Algorithme de flip
Triangulation quelconque
⇓
Modifications Locales
⇓
Triangulation de Delaunay
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
4 / 22
Algorithme de flip
Triangulation quelconque
⇓
Modifications Locales
⇓
Triangulation de Delaunay
1
Comment savoir si la triangulation courante est de Delaunay ?
2
Quelles sont les modifications locales à effectuer ?
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
4 / 22
Légalité d’une arête
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
5 / 22
Légalité d’une arête
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
5 / 22
Légalité d’une arête
Arête légale
M. Brévilliers & al. (LMIA, UHA)
Arête illégale
Algorithme de flip pour les TS
JIG 2008
5 / 22
Légalité d’une arête
Arête légale
Arête illégale
Théorème
La triangulation de Delaunay est l’unique triangulation sans arête
illégale.
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
5 / 22
Algorithme de flip
Triangulation quelconque
⇓
Modifications Locales
⇓
Triangulation de Delaunay
1
Comment savoir si la triangulation courante est de Delaunay ?
2
Quelles sont les modifications locales à effectuer ?
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
6 / 22
Modification locale
Arête illégale
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
7 / 22
Modification locale
Arête illégale
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
7 / 22
Modification locale
Arête illégale
M. Brévilliers & al. (LMIA, UHA)
Arête légale
Algorithme de flip pour les TS
JIG 2008
7 / 22
Algorithme de flip pour les triangulations de points
Mettre les arêtes internes dans une pile.
Tant que la pile n’est pas vide :
Dépiler une arête,
Si l’arête est illégale :
flipper l’arête,
remettre dans la pile les quatre autres
arêtes de la configuration locale.
(si elles n’y sont pas déjà)
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
8 / 22
Le flip d’une arête fait baisser le relèvement
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
9 / 22
Triangulations de segments
Triangulation de segments
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
S2
S5
S1
S3
S8
S4
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
Topologie
S6
S2
S5
S1
S7
S3
S8
S5
S1
S3
S8
S4
M. Brévilliers & al. (LMIA, UHA)
S2
S4
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
Topologie
S6
S2
S5
S1
S7
S3
S8
S5
S1
S3
S8
S4
S4
M. Brévilliers & al. (LMIA, UHA)
S2
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
Topologie
S6
S2
S5
S1
S7
S3
S8
S5
S1
S3
S8
S4
S4
M. Brévilliers & al. (LMIA, UHA)
S2
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
Topologie
S6
S2
S5
S1
S7
S3
S8
S5
S1
S3
S8
S4
S4
M. Brévilliers & al. (LMIA, UHA)
S2
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
Topologie
S6
S2
S5
S1
S7
S3
S8
S5
S1
S3
S8
S4
M. Brévilliers & al. (LMIA, UHA)
S2
S4
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de segments
S6
S7
Topologie
S6
S2
S5
S1
S7
S3
S8
S2
S5
S3
S8
S4
S1
S4
Théorème
Toute triangulation de segments de S admet 2n − n′ − 2 faces et
3n − n′ − 3 arêtes, où n est le nombre de sites de S et n′ le nombre de
côtés de l’enveloppe convexe de S qui ne sont pas des sites.
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
10 / 22
Triangulations de segments
Triangulation de Delaunay de
segments
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
11 / 22
Triangulations de segments
Triangulation de Delaunay de
segments
M. Brévilliers & al. (LMIA, UHA)
Diagramme de Voronoï de
segments
Algorithme de flip pour les TS
JIG 2008
11 / 22
Algorithme de flip
Triangulation de segments quelconque
⇓
Modifications Locales
⇓
Triangulation de Delaunay de segments
1
Comment savoir si la triangulation de segments courante est de
Delaunay ?
2
Quelles sont les modifications locales à effectuer ?
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
12 / 22
Légalité d’une arête
Exemple 1
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
M. Brévilliers & al. (LMIA, UHA)
Arête légale
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
Arête légale
c
d
a b
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
Arête légale
c
a b
M. Brévilliers & al. (LMIA, UHA)
c
d
d
a
Algorithme de flip pour les TS
b
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
Arête légale
c
c
d
d
a b
a
b
Exemple 2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
Arête légale
c
c
d
d
a b
a
b
Exemple 2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
Arête légale
c
a b
a
Exemple 2
M. Brévilliers & al. (LMIA, UHA)
c
d
d
b
Arête illégale
Algorithme de flip pour les TS
JIG 2008
13 / 22
Légalité d’une arête
Exemple 1
Arête légale
c
c
d
d
a b
a
Exemple 2
d
Arête illégale
c
d
c
a b
M. Brévilliers & al. (LMIA, UHA)
b
b
Algorithme de flip pour les TS
a
JIG 2008
13 / 22
Légalité d’une arête : cas particulier
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
14 / 22
Résultat
Théorème
Une triangulation de segments dont toutes les arêtes sont légales a la
même topologie que la triangulation de Delaunay de segments.
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
15 / 22
Algorithme de flip
Triangulation de segments quelconque
⇓
Modifications Locales
⇓
Triangulation de Delaunay de segments
1
Comment savoir si la triangulation de segments courante est de
Delaunay ?
2
Quelles sont les modifications locales à effectuer ?
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
16 / 22
Modifications locales : première approche
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
17 / 22
Modifications locales : première approche
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
17 / 22
Modifications locales : première approche
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
17 / 22
Contre-exemple
Triangulation initiale
Triangulation de Delaunay
e3
e1
e2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
18 / 22
Contre-exemple
Triangulation initiale
Triangulation de Delaunay
e3
e1
e2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
18 / 22
Contre-exemple
Triangulation initiale
Triangulation de Delaunay
e3
e1
e2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
18 / 22
Modifications locales
Exemple 1
Exemple 2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
19 / 22
Algorithme de flip pour les triangulations de segments
Mettre les arêtes internes dans une file.
Tant que les arêtes de la triangulation
courante ne sont pas toutes légales :
Retirer la première arête de la file,
Calculer la triangulation de Delaunay de
segments à l’intérieur du polygone
associé à l’arête,
Ajouter la nouvelle arête obtenue à la fin
de la file.
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
20 / 22
Exemple
e3
e1
e2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
e3
e1
e2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
e3
e3
e3
e3
e2
e1
e1
e2
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
e3
e2
e1
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
e3
e3
e2
e2
e2
e1
e1
M. Brévilliers & al. (LMIA, UHA)
e2
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
e3
e2
e1
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
e3
e3
e2
e2
e1
e1
M. Brévilliers & al. (LMIA, UHA)
e1
e1
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Exemple
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
21 / 22
Conclusion
Algorithme de flip pour les triangulations de segments.
Le nombre d’étapes de l’algorithme est fini.
Complexité difficile à estimer :
l’algorithme traite même les arêtes légales,
une arête peut être traitée plusieurs fois,
une arête illégale n’est pas forcément immédiatement flippable,
une arête légale peut être flippée, devenir illégale, et être à
nouveau flippée quelques étapes plus tard pour redevenir légale.
Perspectives :
Meilleure gestion de la liste des arêtes à traiter,
Optimalité de la triangulation de Delaunay de segments,
Généralisation de l’ensemble des sites,
Extension en dimension 3.
M. Brévilliers & al. (LMIA, UHA)
Algorithme de flip pour les TS
JIG 2008
22 / 22