5
4. Problème de maximisation de l’angle minimal
a) « Uniform square mesh », par Baker
B.S. Baker, E. Grosse, and C.S. Rafferty. Nonobtuse triangulation of polygons. Disc. and
Comp. Geometry 3 (1988) 147-168.
Globalement, il y a 3 étapes:
- raffiner le maillage carré uniforme jusqu’à ce que chaque carré contiennent une partie
suffisamment petite des données de départ,
- déformer les carrés pour s’aligner sur les arêtes de départ,
- trianguler les carrés, en utilisant une étude de cas spéciaux.
Il s’agit de placer un maillage carré uniforme sur l’ensemble de départ : le maillage doit être
suffisamment fin pour que deux sommets de départ soient séparés par plusieurs carrés. Baker insère
les arêtes et les sommets de départ en retriangulant le maillage carré autour (à une petite distance)
de ces éléments initiaux.
Résultat: triangulations de régions polygonales et de PSLG avec des angles compris entre 13° et 90°
(si les angles de départ sont supérieurs à 13°).
Remarque : cet algorithme répond aussi au problème de triangulation non obtuse.
b) Algorithme avec des quadtree, par Bern
M. Bern, D. Eppstein, and J.R. Gilbert. Provably good mesh generation. In Proc. 31st IEEE
Symp. Foundations of Computer Science (1990) 231-241. To appear in J. Comp. System
Science. 48:384-409, 1994.
Il s’agit d’une amélioration de l’algorithme proposé par Baker. Les quadtree rendent l’algorithme
adaptatif : il place beaucoup de petits triangles aux endroits intéressants (risque d’erreur important,
donc on a besoin de plus de précision) et moins de triangles (qui sont plus grands) aux endroits
moins intéressants (là où la précision n’a pas d’importance, ce qui permet d’accélérer les calculs).
Quadtree : il s’agit d’une partition récursive d’une région du plan. Un carré (la racine) recouvre
toute la région. Un carré peut être subdivisé en quatre carrés fils en faisant passer des lignes
horizontales et verticales par son centre. L’ensemble des carrés forme un arbre avec les carrés les
plus petits aux niveaux les plus bas de l’arbre.
« Balance condition » : le côté d’un carré est subdivisé en au plus 2 parties par les carrés adjacents.