Enveloppe convexe Triangulation de Delaunay

Transcription

Enveloppe convexe Triangulation de Delaunay
Rapport du Mercredi 23 Janvier 2008
Enveloppe convexe
Triangulation de Delaunay
Pauleau Jean Denis
Roudaut Prigent
Vidal Clément
Master 1 SIS
1/16
Rapport du Mercredi 23 Janvier 2008
Table des matières
I/ Présentation....................................................................................................................................... 4
II/ Définition ........................................................................................................................................ 5
1/ Simplexe...................................................................................................................................... 5
2/ Complexe.....................................................................................................................................5
3/ Triangulation................................................................................................................................5
4/ Cercle circonscrit......................................................................................................................... 5
III/ Enveloppe convexe ........................................................................................................................6
1/ Présentation .................................................................................................................................6
2/ Définition ....................................................................................................................................6
3/ Algorithme Graham..................................................................................................................... 6
3.1/ Principe................................................................................................................................ 6
3.2/ Algorithme........................................................................................................................... 7
3.3/ Illustration............................................................................................................................ 7
4/ Algorithme Division Fusion........................................................................................................ 7
4.1/ Principe..................................................................................................................................... 7
4.2/ Algorithme .......................................................................................................................... 7
4.3/ Illustration............................................................................................................................ 8
III/ Triangulation de Delaunay ............................................................................................................ 9
1/ Présentation .................................................................................................................................9
2/ Définition ....................................................................................................................................9
3/ Algorithme Incrémental (Hermeline, Watson) .......................................................................... 9
3.1/ Principe................................................................................................................................ 9
3.2/ algorithme ......................................................................................................................... 10
3.3/ Illustration.......................................................................................................................... 11
4/ Algorithme Basculement .......................................................................................................... 12
4.1/ Principe.............................................................................................................................. 12
4.2/ Algorithme......................................................................................................................... 12
4.3/ Illustration.......................................................................................................................... 12
5/ Calcul de la boule circonscrite...................................................................................................13
5.1/ Calcul en 2D...................................................................................................................... 13
5.2/ Calcul en 3D...................................................................................................................... 13
6/ Point dans la boule ouverte........................................................................................................13
7/ Point dans simplexe................................................................................................................... 14
7.1/ Cas d’un simplex 2D (Triangle) :...................................................................................... 14
7.2/ Cas d’un simplex 3D (Tétraèdre) :.....................................................................................14
IV/ Conclusion....................................................................................................................................15
V/ Bibliographie................................................................................................................................. 16
1/ enveloppe convexe.....................................................................................................................16
2/ Triangulation..............................................................................................................................16
2/16
Rapport du Mercredi 23 Janvier 2008
Remerciement
Nous remercions l’ensemble du corps enseignant du master SIS et tout particulièrement notre tuteur
Jean Sequeira.
3/16
Rapport du Mercredi 23 Janvier 2008
I/ Présentation
L’étude de la structure d’un nuage de points est un problème récurrent et très important en
imagerie, en modélisation, et même en recherche opérationnelle. Cette étude passe classiquement
par le calcul de l’enveloppe convexe de ce nuage de points et par une triangulation « optimale »
appelée « Triangulation de Delaunay ». Des algorithmes ont été conçus pour répondre à ces deux
problèmes (un algorithme d’enveloppe convexe en 2D et un algorithme de triangulation de
Delaunay en 2D seront étudiés dans le cours de Modélisation Géométrique). L’objet de ce projet est
d’étudier et de mettre en œuvre, en les comparant, quelques algorithmes importants de ce domaine,
à la fois en 2D et en 3D.)
4/16
Rapport du Mercredi 23 Janvier 2008
II/ Définition
1/ Simplexe
Simplexe : Structure de base de construction. En Dimension n, cette structure sera constitué
de n+1 points (exemple en dimension 2, 3 points soit un triangle)
2/ Complexe
Complexe : Ensemble de simplexe de dimension inférieure.
3/ Triangulation
En topologie, une triangulation d'un espace topologique X est un complexe simplicial K
homéomorphe à X et un homéomorphisme h:K→X. Dans les termes de Layman, si X est un plan
alors une triangulation est une façon de découper X en une collection de triangles.
4/ Cercle circonscrit
Le cercle circonscrit est le cercle qui passe par les sommets du triangle. Son centre est situé
à l'intersection des médiatrices.
La boule circonscrite est la boule qui passe par les sommets du tétraèdre. Son centre est situé à
l'intersection des plans médians.
En dimension quelconque, son centre est situé à l'intersection des l'hyperplan médiateur.
5/16
Rapport du Mercredi 23 Janvier 2008
III/ Enveloppe convexe
1/ Présentation
Le calcul de l’enveloppe convexe est un problème récurrent en modélisation géométrique.
Nous allons ici présenter plusieurs algorithmes majeurs. Le premier a été créé par Ronald Graham
et publié en 1972. Le second est un algorithme de type division fusion que nous avons
implémentée.
2/ Définition
L'enveloppe convexe d'un ensemble de points est l‘ensemble
convexe le plus petit parmi ceux qui le contiennent
Un enveloppe est convexe si pour tout point A et B contenue dans
cette dernière le segment AB est lui aussi contenu.
3/ Algorithme Graham
3.1/ Principe
Le principe est de prendre un point au centre du nuage de points. On trie ensuite les points
de l'ensemble en fonction de leur angle avec ce point centrale.
A partir du point de plus petite ordonnée, on parcourt le nuage par séquences de 3 points
dans l'ordre de trie. Si pour passé du point un au point trois on tourne dans le sens trigonométrique,
alors le point 2 fait partie de l'enveloppe convexe sinon il n'en fait pas partie et on passe au point
d’après.
6/16
Rapport du Mercredi 23 Janvier 2008
3.2/ Algorithme
Calcul du barycentre du nuage de point.
Trie des points autour du barycentre
On sélectionne le point le plus bas
On traite les point trois par trois (point courant, point suivant, point suivant suivant)
Si l’angle entre le point courant, le point suivant et le point suivant suivant n’est pas dans le sens
trigonométrique.
On récupère le point courant (comme appartenant a l’enveloppe convexe)
On passe au point suivant
Fin si
Fin si
Sinon
Point suivant égale au point suivant suivant
Si on n’a pas atteint le dernier point
Le point courant égal au point précédent
Fin si
Fin sinon
3.3/ Illustration
4/ Algorithme Division Fusion
4.1/ Principe
La stratégie diviser pour régner consiste à briser un problème en sous-problèmes plus
simples de même type, à résoudre ces sous-problèmes, puis à fusionner les résultats obtenus pour
apporter une solution au problème posé. Il s'agit donc d'une démarche essentiellement récursive.
Les algorithmes de ce type apparaissent comme composés de deux algorithmes; le premier partage
le problème en sous-problèmes, le second algorithme fusionne les résultats partiels en le résultat
global.
4.2/ Algorithme
Trie tous les points par x croissant
Division en 2 parties
Recherche de l'enveloppe convexe de chacune des parties
On rejoint les deux parties pour avoir une enveloppe convexe
Rappel de la fonction sur chaque parties nouvellement créer
7/16
Rapport du Mercredi 23 Janvier 2008
4.3/ Illustration
8/16
Rapport du Mercredi 23 Janvier 2008
III/ Triangulation de Delaunay
1/ Présentation
La triangulation de Delaunay est importante dans le domaine de modélisation géométrique
mais aussi dans l’analyse de données car il est le dual du diagramme de Voronoï. Cette triangulation
porte le nom du mathématicien Boris Delone.
2/ Définition
Delaunay : « Façon de trianguler un ensemble de points avec des triangles le moins plat
possible »
La triangulation de Delaunay d'un ensemble de n points est l'unique triangulation telle que
les cercles circonscrits de chaque triangle triangle ne contienne aucun autre point de l'ensemble.
Cette notion peut être généralisée à n'importe quelle dimension : en 3D, par exemple, on utilisera
des tétraèdres et des sphères.
Le terme disque ouvert (ou boule vide en 3D) est employé pour désigner l'espace intérieur
au cercle circonscrit (ou à la sphère en 3D) sans prendre en compte les points situé sur celui-ci (ou
situé sur la surface de la sphère).
On utilisera donc ce principe de la boule vide pour notre triangulation.
Principe de la boule vide :
l'ensemble
le disque ouvert circonscrit ne contient aucun point de
Exemple :
Cette triangulation n'est pas de delaunay, le
critere de la boule vide n'est pas vérifié
Cette triangulation est de delaunay, le
critere de la boule vide est vérifié
3/ Algorithme Incrémental (Hermeline, Watson)
3.1/ Principe
Le principe est de créer un simplexe de dimension n englobant du nuage de point à
trianguler. Ensuite de manière incrémental on ajoute les points à mailler. A chaque ajout de point on
9/16
Rapport du Mercredi 23 Janvier 2008
triangule, De manière récursive, on vérifie la boule ouverte de chaque simplexe ainsi créé et on
effectue un basculement de simplexe de dimension n-1 sur chaque simplexe.
3.2/ algorithme
Algorithme incrémental
//calcul et ajout du simplexe de dimension n englobant
//Pour tout les points à trianguler
//Pout chaque simplexe de dimension n
//si le point appartient à ce simplexe
//On supprime le simplexe en cour de traitement
//on créer les 4 nouveaux simplexes en utilisant le nouveau point
//Basculement simplexe n-1 sur les 4 simplexes créés
//Fin si
//Fin pour
//Fin pour
//on retire les 4 points du simplexe 3d englobant créé au début
Algorithme récursif
Basculement de simplexe n-1 sur un simplexe de dimension n
(Arête pour un triangle ou face pour un tétraèdre)
Soit S1 le simplexe en cour de basculement
Pour tout les points déjà maillé
S’ils sont dans la boule ouverte de s1
*Recherche le simplexe de dimension n associé au point qui partage le même
simplexe de dimension n-1 que S1, on appel se implexe S2
*Basculement du simplex partagé
*Appel de la fonction Basculement S1
*Appel de la fonction Basculement S2
Fin si
Fin pour
10/16
Rapport du Mercredi 23 Janvier 2008
3.3/ Illustration
Nuage de points
ajout du 2eme point
Basculement
Boite englobante
ajout du 3eme point
ajout du 1er point
Basculement
ajout du 4eme point
11/16
Rapport du Mercredi 23 Janvier 2008
4/ Algorithme Basculement
4.1/ Principe
Le principe est d’effectuer en premier lieu une triangulation quelconque (pas de Delaunay)
et d'applique ensuite le principe de basculement de simplexe de dimension n-1 sur chaque simplexe
de dimension n récursivement (comme précédemment) afin qu'ils respectent le critère de la boule
vide
4.2/ Algorithme
Triangulation des points du nuage de points
Pour chaque simplexe
Pour chaque point du nuage de points
Si le point est dans la boule vide du simplex en cours
Basculement
Fin si
Fin pour
Fin pour
4.3/ Illustration
12/16
Rapport du Mercredi 23 Janvier 2008
5/ Calcul de la boule circonscrite
5.1/ Calcul en 2D
En deux dimensions, le centre du cercle circonscrit est donné par l'intersection des
médiatrices des arêtes du triangle.
5.2/ Calcul en 3D
En trois dimensions, on procède de la même façon, on cherche tout d’abord le centre du
cercle circonscrit à un des triangles du tétraèdre, on le nommera ABC. Une fois l'intersection O des
trois médiatrices trouvées, on détermine un vecteur normal au plan comprenant le triangle.
O
D
C
A
C
A
B
D
O
v
B
A
B
O
’
On déplace ensuite le point O sur ce vecteur normal, de cette façon il sera toujours a égale
distance des 3 points du triangle ABC.
Le point O est donc déplacé de sorte que la distance OA (ou OB ou OC) devienne égale à la
distance qui sépare O du dernier point du tétraèdre, cette distance définira le rayon de la sphère.
De cette façon, on récupère donc un point O à égale distance de tous les points du tétraèdre, qui est
donc le centre de la sphère circonscrite.
6/ Point dans la boule ouverte
On calcul la distance euclidienne entre le point et le centre de la boule vide si cette distance
est inferieur au rayon de celle ci alors les points est dans la boule ouverte
13/16
Rapport du Mercredi 23 Janvier 2008
7/ Point dans simplexe
7.1/ Cas d’un simplex 2D (Triangle) :
Pour vérifier si un point est contenu dans un polygone (triangle dans notre cas) on lance une
demi droite a partir du point à tester et on compte le nombre d’intersection de cette demi droite avec
les arêtes du polygone si ce nombre est impaire le point est intérieur si le nombre est pair le point
est extérieur.
7.2/ Cas d’un simplex 3D (Tétraèdre) :
Pour vérifier si un point est contenue dans un tétraèdre on calcul les équations des plans de
chaque face du tétraèdre en choisissant des coefficients de sorte a ce que lorsque on insère les
coordonnée du quatrième point du tétraèdre on obtiennent une valeur positive.
Pour tester ensuite l’intériorité du point il suffit d’insérer les coordonnées du point à tester
dans chaque équation de plan et si tous les résultats sont positif, le point est bien a l’intérieur dans
le cas contraire le point est extérieur.
14/16
Rapport du Mercredi 23 Janvier 2008
IV/ Conclusion
Ce projet nous a permis de mettre en œuvre et d’appréhender les techniques acquis au cours
de cette première année de master. Nous avons pue implémenter des algorithmes majeures dans le
domaine de la modélisation géométrique.
Outre les problèmes typiquement algorithmique nous avons rencontré des difficultés d’ordre
mathématiques qui nous on poussés à effectuer des recherche dans ce sens.
A l’issue du projet nous avons réussi a mettre en place un programme de calcul d’enveloppe
convexe sur un nuage de point 2D, une application de la triangulation de Delaunay sur le même
type de nuage de point.
Nous avons appliqué cette méthode sur un nuage de point 3D afin d’obtenir une surface,
cette méthode est souvent utilisé pour modéliser des terrains.
Enfin une dernière application a était réalisé dans le but de paver un nuage de point 3D. Par
manque de temps et en raison de certains problèmes rencontrés ce dernier n’est pas complètement
fonctionnel.
15/16
Rapport du Mercredi 23 Janvier 2008
V/ Bibliographie
1/ enveloppe convexe
,
http://fr.wikipedia.org/wiki/Enveloppe_convexe
http://www-sop.inria.fr/geometrica/courses/slides/enveloppe-convexe-od.pdf
http://www.liafa.jussieu.fr/~cc/ALGO-AVANCEE/Enveloppes.pdf
http://graal.ens-lyon.fr/~fvivien/Enseignement/PPP-2001-2002/Enonce.pdf
2/ Triangulation
http://fr.wikipedia.org/wiki/Triangulation_de_Delaunay
http://fearyourself.developpez.com/tutoriel/jeu/Delaunay/
http://www.kaddour.com/chap4/chap4.htm
http://bobuse.free.fr/Delaunay/
http://www-bio3d-igbmc.u-strasbg.fr/~wicker/Cours/Licence/GeoAlgo2.ppt
Et bien sur les cours de Jean Sequeira et Jean Luc Mari
16/16

Documents pareils