• Aucun résultat trouvé

De la g´eom´etrie algorithmique au calcul g´eom´etrique l’exemple de la triangulation de Delaunay

N/A
N/A
Protected

Academic year: 2022

Partager "De la g´eom´etrie algorithmique au calcul g´eom´etrique l’exemple de la triangulation de Delaunay"

Copied!
200
0
0

Texte intégral

(1)

De la g´eom´etrie algorithmique au calcul g´eom´etrique

l’exemple

de la triangulation de Delaunay

D´efinition, propri´et´ees, premiers algorithmes

(2)

G´eom´etrie algorithmique Probl`eme g´eom´etrique Analyse des performances

Borne inf´erieure Borne sup´erieure

Complexit´e asymptotique Analyse dans le cas le pire Analyse en moyenne

(3)

Definition de

la triangulation de Delaunay

(4)

L’exemple

(5)

L’exemple

recherche de plus proche voisin

(6)

L’exemple

recherche de plus proche voisin

(7)

L’exemple

recherche de plus proche voisin

(8)

L’exemple

recherche de plus proche voisin

(9)

L’exemple

recherche de plus proche voisin

(10)

Vorono¨ı L’exemple

recherche de plus proche voisin

(11)

Vorono¨ı L’exemple

(12)

Vorono¨ı Delaunay

L’exemple

(13)

Vorono¨ı Delaunay

Le probl`eme embl´ematique de la g´eom´etrie algorithmique

L’exemple

(14)

Vorono¨ı

Probl`eme du plus proche voisin

(15)

Vorono¨ı

Probl`eme du plus proche voisin

(16)

Vorono¨ı

Probl`eme du plus proche voisin

(17)

Vorono¨ı

Probl`eme du plus proche voisin

Cellule de Vorono¨ı

Vi = {q; ∀j 6= i|qpi| ≤ |qpj|}

(18)

LA propri´et´e de

la triangulation de Delaunay

(19)

Vorono¨ı

(20)

Vorono¨ı

Propri´et´e du cercle vide

(21)

Vorono¨ı

Propri´et´e du cercle vide

Delaunay

(22)

Vorono¨ı

Propri´et´e du cercle vide

Delaunay

(23)

Quelques applications de la triangulation de Delaunay

(24)

graphe des plus proche voisins Applications “th´eoriques”

(25)

graphe des plus proche voisins

p

q Applications “th´eoriques”

q plus proche voisin de p

alors pq arˆete de Delaunay

(26)

graphe des plus proche voisins Applications “th´eoriques”

(27)

Applications “th´eoriques”

plus grand cercle vide

(28)

Applications “th´eoriques”

plus grand cercle vide

(29)

Recherche `a rayon fix´e Applications “th´eoriques”

(30)

Recherche `a rayon fix´e Applications “th´eoriques”

(31)

Recherche `a rayon fix´e Applications “th´eoriques”

(32)

Arbre couvrant de longueur minimale Applications “th´eoriques”

(33)

Arbre couvrant de longueur minimale Applications “th´eoriques”

(34)

Applications

Reconstruction

(35)

Applications

Maillage

Reconstruction

(36)

Applications

Maillage / Remaillage Reconstruction

(37)

Applications

Maillage / Remaillage Reconstruction

(38)

Applications

Maillage / Remaillage Reconstruction

Plainfication de trajectoires

(39)

Propri´et´es de

la triangulation de Delaunay

(40)

Relation d’Euler

c: nombre de cellules (inclus ∞) a: nombre d’arˆetes

n: nombre de sommets

n − a + s = 2

(41)

Relation d’Euler

c: nombre de cellules (inclus ∞) a: nombre d’arˆetes

n: nombre de sommets

1 − 3 + 3 = 2 n − a + s = 2

(42)

Relation d’Euler

c: nombre de cellules (inclus ∞) a: nombre d’arˆetes

n: nombre de sommets

n − a + s = 2

0 − 1 + 1 = 0

(43)

Relation d’Euler

c: nombre de cellules (inclus ∞) a: nombre d’arˆetes

n: nombre de sommets

n − a + s = 2

1 − 1 + 0 = 0

(44)

Nombre d’arˆetes orient´ees dans une triangulation

2a = 3c + k

k: taille cellule ∞

(45)

Relation d’Euler

ca+n= t+ 1a+n = 2

Triangulation 2a = 3t+ k

t = 2n 2 k a = 3n 3 k

(46)

Propri´et´e : le plus petit angle est maximal

(47)
(48)
(49)
(50)
(51)
(52)

Maximise dans l’ordre lexicographique

(53)

Optimalit´e locale vs globale

locallement

Delaunay mais pas globalement Delaunay

(54)

Th´eor`eme

Localement Delaunay partout

Globalement Delaunay

⇐⇒

(55)

D´emonstration:

(56)

D´emonstration:

Soit t localement mais pas globalement Delaunay

(57)

D´emonstration:

Soit t localement mais pas globalement Delaunay

(58)

D´emonstration:

Soit t localement mais pas globalement Delaunay

(59)

D´emonstration:

Soit t localement mais pas globalement Delaunay

(60)

D´emonstration:

Soit t localement mais pas globalement Delaunay

Comme le nombre de points est fini

(61)

Optimalit´e locale et plus petit angle Cas de 4 points

(62)

Optimalit´e locale et plus petit angle Cas de 4 points

Lemme:

Pour 4 points en position convexe

Delaunay ⇐⇒ maximise le plus petit angle

(63)

Optimalit´e locale et plus petit angle Cas de 4 points

δ

δ le plus petit angle

(64)

Optimalit´e locale et plus petit angle Cas de 4 points

p

q s r

δ

δ

δ

(65)

Th´eor`eme

Delaunay ⇐⇒ maximise le plus petit angle Optimalit´e locale et plus petit angle

D´emonstration:

(66)

Th´eor`eme

Delaunay ⇐⇒ maximise le plus petit angle

Triangulation max pour ordre des angles Optimalit´e locale et plus petit angle

D´emonstration:

(67)

Th´eor`eme

Delaunay ⇐⇒ maximise le plus petit angle

Triangulation max pour ordre des angles

= Max dans chaque quadrilat`ere Optimalit´e locale et plus petit angle

D´emonstration:

(68)

Th´eor`eme

Delaunay ⇐⇒ maximise le plus petit angle

Triangulation max pour ordre des angles

= Max dans chaque quadrilat`ere

= localement Delaunay Optimalit´e locale et plus petit angle

D´emonstration:

(69)

Th´eor`eme

Delaunay ⇐⇒ maximise le plus petit angle

Triangulation max pour ordre des angles

= Max dans chaque quadrilat`ere

= localement Delaunay

= globalement Delaunay Optimalit´e locale et plus petit angle

D´emonstration:

(70)

Predicats pour

la triangulation de Delaunay

(71)

Algorithmes g´eom´etriques Prendre des d´ecisions

repose sur des pr´edicats g´eom´etriques

Entre´e de taille constante Sortie discrˆete (signe)

Pr´edicats

(72)

Pr´edicats

Pr´edicat d’orientation

xq xp xr xp yq yp yr yp

p

q

r

p

q r 0

p

q

r +

(73)

Pr´edicats

Pr´edicat de cocyclicit´e

xq xp xr xp xs xp yq yp yr yp ys yp

(xq−xp)2+(yq−yp)2 (xr−xp)2+(yr−yp)2 (xs−xp)2+(ys−yp)2

p

q r

s

(74)

Π : x2 + y2 = z

(75)

p = (xp, yp) p? = (xp, yp, x2p + yp2)

(76)

C : x2 + y2 − 2ax − 2by + c = 0 C : z − 2ax − 2by + c = 0

(77)

p ∈ ∂C p? ∈ C

(78)

p ∈ C

p? au dessous de C

(79)

p 6∈ C

p? au dessus de C

(80)

Pr´edicat d’orientation 3D

Pr´edicat de cocyclicit´e

(81)

Pr´edicats

Pr´edicat : cercle le plus `a droite p1 q1

r1 = p2

q2

r2 6 points

polynˆome de degr´e 24

(82)

Pr´edicats

Probl`emes de robustesse

Paradigme du calcul exact Arithm´etique arrondie

Pas de coh´erence entre les resultats arrondis

(83)

Structures de donn´ees pour la triangulation (de Delaunay)

(84)
(85)

G´eom´etrie (x, y)

(86)

connectivit´e G´eom´etrie (x, y)

(87)

Repr´esentation bas´ee triangles

(88)

Repr´esentation bas´ee triangles

triangle :

(89)

Repr´esentation bas´ee triangles

trois sommets triangle :

(90)

Repr´esentation bas´ee triangles

trois sommets triangle :

trois voisins

(91)

Repr´esentation bas´ee triangles

trois sommets triangle :

trois voisins

num´erotation : voisin oppos´e au sommet

(92)

Repr´esentation bas´ee triangles

sommet :

(93)

Repr´esentation bas´ee triangles

sommet : x, y

un triangle

(94)

Repr´esentation bas´ee triangles

(95)

Repr´esentation bas´ee triangles

tourner autour d’un sommet

(96)

Repr´esentation bas´ee triangles

v

(97)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

(98)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

i tel que t->v[i] == v;

i

(99)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

i tel que t->v[i] == v;

i

t = t->n[ i+1 mod 3 ];

i+1

(100)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

i tel que t->v[i] == v;

i

t = t->n[ i+1 mod 3 ];

i+1

t

(101)

Repr´esentation bas´ee triangles

(102)

Repr´esentation bas´ee triangles

tourner dans l’autre sens

(103)

Repr´esentation bas´ee triangles

v

(104)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

(105)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

i tel que t->v[i] == v;

i

(106)

Repr´esentation bas´ee triangles

v t

t = v->triangle;

i tel que t->v[i] == v;

i

t = t->n[ i-1 mod 3 ];

i-1 t

(107)

Repr´esentation

bas´ee (demi) arˆetes

(108)

Repr´esentation

bas´ee (demi) arˆetes

(109)

Repr´esentation

bas´ee (demi) arˆetes

twin

(110)

Repr´esentation

bas´ee (demi) arˆetes

next

(111)

Repr´esentation

bas´ee (demi) arˆetes

previous

(112)

Repr´esentation

bas´ee (demi) arˆetes

target

(113)

Repr´esentation

bas´ee (demi) arˆetes

face

(114)

Repr´esentation

bas´ee (demi) arˆetes

(x, y)

(115)

Repr´esentation

bas´ee (demi) arˆetes

(116)

Repr´esentation

tourner autour d’un sommet

bas´ee (demi) arˆetes

(117)

Repr´esentation

v

bas´ee (demi) arˆetes

(118)

Repr´esentation

v e

e = v->edge;

bas´ee (demi) arˆetes

(119)

Repr´esentation

v e

e = v->edge;

e = e->twin->next->next;

bas´ee (demi) arˆetes

(120)

Repr´esentation

bas´ee (demi) arˆetes

(121)

Repr´esentation

tourner dans l’autre sens

bas´ee (demi) arˆetes

(122)

Repr´esentation

v

bas´ee (demi) arˆetes

(123)

Repr´esentation

v e

e = v->edge;

bas´ee (demi) arˆetes

(124)

Repr´esentation

v e

e = v->edge;

e = e->next->twin;

bas´ee (demi) arˆetes

(125)

Borne inf´erieure pour

la triangulation de Delaunay

(126)

Borne inf´erieure pour Delaunay

(127)

Borne inf´erieure pour Delaunay

Delaunay sert `a trier

(128)

Borne inf´erieure pour Delaunay

Delaunay sert `a trier

Ω(n log n)

(129)

Premiers algorithmes pour la triangulation de Delaunay

(130)

Algorithme incr´ementral

(131)

Algorithme incr´ementral

(132)

Algorithme incr´ementral

en conflit

(133)

Algorithme incr´ementral

pas en conflit

(134)

Algorithme incr´ementral

pas en conflit

(135)

Algorithme incr´ementral

(136)

Algorithme incr´ementral

(137)

Trouver les triangles en conflit

Algorithme incr´ementral

(138)

Algorithme incr´ementral

(139)

Algorithme incr´ementral

(140)

Supprimer les triangles en conflit

Algorithme incr´ementral

(141)

Algorithme incr´ementral

Trianguler le trou

(142)

Algorithme incr´ementral

Un nouveau triangle est de Delaunay

(143)

Algorithme incr´ementral

Un nouveau triangle est de Delaunay

(144)

Algorithme incr´ementral

Complexit´e

O(n) pour chaque insertion O(n2)

(145)

Algorithme incr´ementral

Complexit´e

O(n) pour chaque insertion O(n2)

Ω(n2)

(146)

Algorithme incr´ementral

Complexit´e

O(n) pour chaque insertion O(n2)

Ω(n2)

(147)

Algorithme incr´ementral

(148)

Insertion

Algorithme incr´ementral

(149)

Insertion

Algorithme incr´ementral

(150)

Insertion

Algorithme incr´ementral

(151)

Insertion

Algorithme incr´ementral

(152)

Insertion

Strat´egies de localisation

Algorithme incr´ementral

(153)

Insertion

Strat´egies de localisation Tous

O(n)

Algorithme incr´ementral

(154)

Insertion

Strat´egies de localisation Marche rectiligne

O(

n) en moyenne

Algorithme incr´ementral

(155)

Insertion

Strat´egies de localisation Marche par visibilit´e

Algorithme incr´ementral

(156)

Insertion

Strat´egies de localisation Marche par visibilit´e

Algorithme incr´ementral

(157)

Insertion

Strat´egies de localisation Marche par visibilit´e

O(

n) ???? en moyenne

Algorithme incr´ementral

(158)

Insertion

Strat´egies de localisation Jump & walk

Algorithme incr´ementral

(159)

Insertion

Strat´egies de localisation Jump & walk

Algorithme incr´ementral

(160)

Insertion

Strat´egies de localisation Jump & walk

O(3

n) en moyenne

Algorithme incr´ementral

(161)

Algorithme incr´ementral

Complexit´e O(n2)

O(n

n) en moyenne O(n3

n) en moyenne

(162)

Algorithme incr´ementral

Complexit´e O(n2)

Ω(n2) dans le cas le pire

O(n

n) en moyenne O(n3

n) en moyenne

(163)

Bascule de diagonales

(164)

Bascule de diagonales

(165)

Bascule de diagonales

(166)

Bascule de diagonales

(167)

Bascule de diagonales

(168)

Complexit´e

Algorithme en O(n2) Bascule de diagonales

(169)

Complexit´e

Une arˆete bascul´ee n’est jamais reconstruite

(les nouvelles arˆetes sont toujours dessous)

Algorithme en O(n2) Bascule de diagonales

(170)

Bascule de diagonales et algorithme incr´emental

(171)

Bascule de diagonales et algorithme incr´emental Localisation

(172)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

(173)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(174)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

OUI

(175)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(176)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(177)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(178)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(179)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(180)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

OUI

(181)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(182)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(183)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(184)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(185)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(186)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

OUI

(187)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(188)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(189)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(190)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

OUI

(191)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(192)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(193)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay ?

Bascule ?

(194)

Bascule de diagonales et algorithme incr´emental Localisation

Non localement Delaunay Bascule

NON

(195)

Bascule de diagonales et algorithme incr´emental

] OUI

(196)

Bascule de diagonales et algorithme incr´emental

] OUI

] arˆetes cr´e´ees

(197)

Bascule de diagonales et algorithme incr´emental

] NON

(198)

Bascule de diagonales et algorithme incr´emental

] NON

] triangles cr´e´es

(199)

Bascule de diagonales et algorithme incr´emental

O(degr´e( ))

(200)

C’est tout pour aujourd’hui

Références

Documents relatifs

std::cout << "Sorry, needs QT..." << std::endl; return

Supposer que l’on sait faire Delaunay Utiliser Delaunay pour trier... Algorithmes optimaux pour la triangulation

Quel est le plus proche voisin de q dans S... Diagramme

division fusion (division au hasard) incr´emental (ordre al´eatoire).. ¸ca termine avec

Si l’objet est bien ´echantillonn´e les arˆetes de la reconstruction sont des arˆetes de Delaunay... Si l’objet est bien ´echantillonn´e les arˆetes de la reconstruction sont

R´epondre exactement aux pr´edicats mais pas forc´ement du calcul exact.. Algorithmes

Syst`eme de coordonn´ee pour un nuage de points Dessin de graphes et similarit´es mol´eculaires.. 1998

Autres probl`emes en g´eom´etrie algorithmique G´en´eralisations (puissance, contraint. ) Enveloppes convexes...