Académique Documents
Professionnel Documents
Culture Documents
8 mars 2015
1 Triangulation de Delaunay 2
1.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.2 Utilisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Implémentation et algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.1 Ajout d’un point à une triangulation . . . . . . . . . . . . . . . . . . . . . . 3
1.2.2 Déterminer si un point est dans un cercle . . . . . . . . . . . . . . . . . . . 3
1.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Modèle physique 5
2.1 Choix du modèle physique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2 Mise en équation : Méthode d’Euler . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3 Choix des structures de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
A Annexe : auto-évaluation 7
Résumé
Voici le rapport du second projet de programmation. L’objectif était de un nuage de
points, en respectant le critère de Delaunay et la contrainte que les points soient contenus
dans un nuage pré-triangulé (ici : un rectangle constitué de ses quatre sommets reliés par
deux triangles)
Notre apport personnel a consisté en l’introduction d’un modèle physique permettant
une première approche dans la modélisation des tissus.
Mots-clés. Triangulation, Delaunay, physique, approximation.
1
1 Triangulation de Delaunay
1.1 Présentation
1.1.1 Définition
F IGURE 1 – La triangulation de Delaunay de quatre points, et les cercles circonscrit des deux
triangles.
1.1.2 Utilisation
2
1.2 Implémentation et algorithme
Pour générer une triangulation de Delaunay, nous nous basons sur un algorithme itératif
où chaque itération consiste à ajouter un point à la triangulation tout en conservant le critère
de Delaunay.
En effet, partant d’un maillage vérifiant le critère de Delaunay. L’ajout d’un point P à ce
maillage, s’obtient par le calcul successif des éléments suivants :
– T̃P ⊂ T l’ensemble des triangles dont le cercle circonscrit contient P (parcours de tout les
triangle, complexité : O(T))
– B( T̃P ) ⊂ A l’ensemble des arrêtes formant l’enveloppe connexe de T̃P (parcours de l’en-
semble des arrêtes issues des triangles de T̃P ,complexité : O(A))
– T̃˜ P un ensemble de triangles. Chacun d’eux constitués d’une arrête de B( T̃P et du point
P (parcours de l’ensemble des arrêtes de B( T̃P (complexité O(A)) et création de triangle
O(1)) (voir Figure 2)
– T ← ( T \ T̃P ) ∪ T̃˜ P
F IGURE 2 – A gauche, les triangles gris sont ceux tels que le point ajouté soit dans leur cercle
circonscrit. A droite, la triangulation finalement obtenue.
Cependant cet algorithme, impose que les points soient ajoutés à l’intérieur d’une triangu-
lation de Delaunay préexistante. Pour ce faire, on repère les points d’abscisse/ordonnée mi-
nimale/maximale, x/X/y/Y (x l’abscisse minimale, Y l’ordonnée maximale), ont note H ⊂ E,
cet ensemble de points. On commence par ajouter les points de H . On considère ensuite le
rectangle formé par les points (x,y) (x,Y) (X,Y) (X,y). On ajoute ensuite itérativement les points
de H, en évitant les triangles plats. Finalement, on ajoute les points de T \ H (voir Figure 3)
On commence par ajouter les points de H . On considère ensuite le rectangle formé par les
points (x,y) (x,Y) (X,Y) (X,y). On ajoute ensuite itérativement les points de H, en évitant les
triangles plats. Finalement, on ajoute les points de T \ H (voir Figure 3)
3
F IGURE 3 – La triangulation de Delaunay de trente points, inscrits dans un carré.
1.3 Conclusion
4
2 Modèle physique
Notre choix de modèle s’est porté sur une version assez simple, où chaque arête est assimilé
à un ressort (représentant le caractère élastique du matériaux), le choix de leur longueur à
vide fixe est le principal facteur pour déterminer l’état final du système, nous permettant de
distinguer deux situations différentes.
Lorsque la longueur à vide des ressorts est égale à leur longueur initiale dans la triangula-
tion, le modèle représente les déformation d’un tissu initialement dans un état stable.
À l’inverse, lorsque i la longueur à vide des ressorts est différente de leur longueur initiale,
on obtient un système déjà sous contrainte. Permettant d’observer la relaxation du matériaux.
Nous avons choisit la deuxième méthode dans un souci de simplicité. À cette fin, nous
fixons la longueur initiale de tout les ressorts égale à l0 la moyenne de la longueur de arête à
l’instant initial. L’ajout d’un coefficient de frottement permet de tendre vers un état stable du
système.
Fk ~ 2 k − l ) e ~ = k d 1−2 − l0 1 →
~ 1→2 = k(k1 → ~ 2
| {z } 0 1→2 d 1−2
noted1−2
Force de frottement :
~ Ω→1 = −αv~1
Fα
a~1 ∂t = ∂v~1
~1
v~1 ∂t = ∂ P
Puis introduire ∆t
a~1 × ∆t = ∆v~1
5
v~1 × ∆t = ∆ P
~1
Nous avons utilisé une structure de donnée que nous avons nommée Upoint (Univers de
points). Un point, en plus de contenir ses coordonnées, contient un alias vers chaque triangle
et chaque arête dont il fait parti. Cette structure permet d’accélérer le calcul de l’enveloppe
connexe d’un ensemble de triangle, mais également d’autre optimisation que nous n’avons
pas eu le temps d’implémenter tel que la réduction du temps moyen de recherche d’un
élément (point, arête, triangle)..
Dans cette structure, les points se voient associés à un identifiant i, ce qui permet de les
ordonner. Ainsi, les triangles ne sont plus seulement décrits par trois points A, B, C (ce qui
donnait 6 représentants pour décrire chaque triangle, comme on peut le voir sur la Figure
4), mais ces trois points doivent également vérifier : i ( A) i ( B), i ( A) i (C ), ( A, B, C )forment
un triangle direct. De cette manière, l’égalité entre deux triangles revient à l’identité leur
représentants choisis.
F IGURE 4 – Les six représentants possibles d’un triangles, les couleurs représentant l’ordre
d’apparition des sommets.
6
A Annexe : auto-évaluation
Points forts
– Utiliser des équations physiques
– Utiliser la méthode d’Euler
– Implémenter une extension dynamique.
Points faibles
– Échanger (transfert de données)
– Commenter le code, lors de sa rédaction (et non à la fin)
– Gérer du temps imparti, notamment pour la version basique du projet.
Améliorations possibles
– Utiliser d’avantage les fonctions présentes de base dans OCaml
– Conserver un code LATEX standard, afin d’optimiser le temps passé à concevoir la présen-
tation et le rapport.
Difficultés à anticiper
– Échanger : prendre en compte SVN/GIT lors de la répartition des tâches
– Hiérarchiser les objectifs.
– Tester les fonctions au fur et à mesure du projet.