Modifier le programme pour qu'a chaque fois que l'on clique sur le
bouton du milieu on e'nume`re les voisins du point bleu dans la
triangulation :
Queue;
correction
TD3/4 : Problèmes de robustesse
Les programmes fournis en
dimension 2 et
dimension 3
plantent pour un nombre de points assez grands.
- changer float en double et constater que l'on peut mettre plus de points.
- faire un exemple plus méchant en insérant d'abord une boite englobante,
puis des points aleatoires sur un segment de droite (une portion de plan),
et constater que ça plante même en double.
- utiliser un type de nombre exact,
par exemple des Quotient de MP_float
(doc).
- utiliser le noyau filtré
(doc).
- comparer les temps d'exécution de ces différentes solutions
dans le cas difficile, dans un cas facile (points random).
correction en dim 2 et
correction en dim 3
Sujet 1 : Benchs avec différents ordres d'insertion
- Engendrer dans un tableau N points aléatoires dans un carré.
- Construire une première triangulation de Delaunay en insérant ces points
dans l'ordre (aléatoire) du tableau.
- Recommencer après avoir trié le tableau en x
- Engendrer dans un tableau N points sur la spirale
t*(cos(t), sin(t)) pour t dans [0,10.Pi].
- Construire une triangulation de Delaunay en insérant ces points
dans l'ordre la spirale (intérieur vers extérieur).
- Recommencer dans l'ordre inverse
- Recommencer avec des points aléatoires sur la spirale.
Pour tous ces calculs, mesurer les temps d'execution pour N variant entre 1000 et 1 000 000 (si les temps de calculs restent raisonnable, moins de 100 secondes par exemple).
Vous comparerez aussi le Delaunay simple
(localisation par marche) avec la hiérarchie de Delaunay. Enfin, vous ferez des tests avec differents noyaux CGAL.
Vous presenterez les resultats dans des tableaux de synthèse, permettant de comparer facilement les resultats et de les commenter pour la soutenance.
Vous pourrez débuter avec le
squelette
Sujet 2 : Delaunay tridimensionnel
Vous pouvez commencer par charger le
programme initial.
Le programme initial engendre une liste de points en 3D,
calcule la triangulation de Delaunay
et l'affiche dans "Geomview".
Puis il permet de saisir un point à la souris,
affiche ses coordonnées et le dessine en bleu.
-
Modifier le programme pour qu'il génère une liste de points aléatoires à l'intérieur de la sphère unité.
-
Modifier le programme pour qu'il affiche l'enveloppe convexe des
points. Cette dernière peut être envoyée au Geomview_stream sous la
forme d'une liste de triangles.
-
Effacer, et réafficher la triangulation de Delaunay.
-
Saisir un point à l'aide d'un pickplane, comme
dans le programme initial.
-
Afficher en
vert le sommet de la triangulation le plus proche du point saisi. On
affichera également la sphère centrée en ce point passant par le
point vert.
-
Modifier le programme pour qu'il affiche également le bord de l'étoile
du point vert.
-
Modifier le programme pour qu'il affiche également le bord de la zone
de conflit du point saisi.
Pour la soutenance, vous ferez une demonstration de vos differents programmes.
Voici le genre de résultat que vous devriez obtenir :