Sunteți pe pagina 1din 39

Geometrie computaţională (II)

Mihai-Sorin Stupariu

IDD, Sem. I, 2016-2017


Problematizare

I Cursul anterior: triangularea unui poligon convex (listă


ordonată de puncte (P1 , P2 , . . . , Pn )).
Problematizare

I Cursul anterior: triangularea unui poligon convex (listă


ordonată de puncte (P1 , P2 , . . . , Pn )).
I Are sens să vorbim de triangulare pentru mulţimea
{P1 , P2 , . . . , Pn }?
Problematizare

I Cursul anterior: triangularea unui poligon convex (listă


ordonată de puncte (P1 , P2 , . . . , Pn )).
I Are sens să vorbim de triangulare pentru mulţimea
{P1 , P2 , . . . , Pn }?
I Definiţie. O triangulare a unei mulţimi P este o subdivizare
maximală a acoperirii convexe Conv(P) a lui P cu triunghiuri
ale căror vârfuri sunt elemente ale lui P (fără autointersecţii!)
Problematizare

I Cursul anterior: triangularea unui poligon convex (listă


ordonată de puncte (P1 , P2 , . . . , Pn )).
I Are sens să vorbim de triangulare pentru mulţimea
{P1 , P2 , . . . , Pn }?
I Definiţie. O triangulare a unei mulţimi P este o subdivizare
maximală a acoperirii convexe Conv(P) a lui P cu triunghiuri
ale căror vârfuri sunt elemente ale lui P (fără autointersecţii!)
I Trebuie făcută distincţie ı̂ntre triangulare a unui poligon
(P1 , P2 , . . . , Pn ) şi triangulare a mulţimii subdiacente
{P1 , P2 , . . . , Pn } (coincid dacă poligonul este convex!)
Elemente ale unei triangulări

I Dată o mulţime de puncte P şi o triangulare TP a sa:


vârfuri, muchii, triunghiuri.
Elemente ale unei triangulări

I Dată o mulţime de puncte P şi o triangulare TP a sa:


vârfuri, muchii, triunghiuri.
I Legătură ı̂ntre aceste elemente?
Elemente ale unei triangulări

I Dată o mulţime de puncte P şi o triangulare TP a sa:


vârfuri, muchii, triunghiuri.
I Legătură ı̂ntre aceste elemente?
I Propoziţie. Fie P o mulţime de n puncte din plan nesituate
toate pe o aceeaşi dreaptă. Notăm cu k numărul de puncte de
pe frontiera acoperirii convexe Conv(P). Orice triangulare a
lui P are (2n − k − 2) triunghiuri şi (3n − k − 3) muchii.
Elemente ale unei triangulări

I Dată o mulţime de puncte P şi o triangulare TP a sa:


vârfuri, muchii, triunghiuri.
I Legătură ı̂ntre aceste elemente?
I Propoziţie. Fie P o mulţime de n puncte din plan nesituate
toate pe o aceeaşi dreaptă. Notăm cu k numărul de puncte de
pe frontiera acoperirii convexe Conv(P). Orice triangulare a
lui P are (2n − k − 2) triunghiuri şi (3n − k − 3) muchii.
I Demonstraţie: Se bazează pe formula lui Euler.
Elemente ale unei triangulări

I Dată o mulţime de puncte P şi o triangulare TP a sa:


vârfuri, muchii, triunghiuri.
I Legătură ı̂ntre aceste elemente?
I Propoziţie. Fie P o mulţime de n puncte din plan nesituate
toate pe o aceeaşi dreaptă. Notăm cu k numărul de puncte de
pe frontiera acoperirii convexe Conv(P). Orice triangulare a
lui P are (2n − k − 2) triunghiuri şi (3n − k − 3) muchii.
I Demonstraţie: Se bazează pe formula lui Euler.
I Exemplu: Cazul unui poligon convex.
Problematizare

I Problemă. Se fac măsurători ale altitidinii pentru un teren.


Se doreşte reprezentarea tridimensională (cât mai sugestivă).
I Exemplu: http://vterrain.org/LOD/RuntimeTIN/
Problematizare

I Problemă. Se fac măsurători ale altitidinii pentru un teren.


Se doreşte reprezentarea tridimensională (cât mai sugestivă).
I Exemplu: http://vterrain.org/LOD/RuntimeTIN/
I Problemă (reformulată). Cum ”comparăm triangulările”
unei mulţimi de puncte fixate?
Problematizare

I Problemă. Se fac măsurători ale altitidinii pentru un teren.


Se doreşte reprezentarea tridimensională (cât mai sugestivă).
I Exemplu: http://vterrain.org/LOD/RuntimeTIN/
I Problemă (reformulată). Cum ”comparăm triangulările”
unei mulţimi de puncte fixate?
I Exemplu. Cazul unui patrulater convex.
Terminologie

I Fixată: o mulţime de puncte P.


Terminologie

I Fixată: o mulţime de puncte P.


I Vectorul unghiurilor unei triangulări a lui P
Terminologie

I Fixată: o mulţime de puncte P.


I Vectorul unghiurilor unei triangulări a lui P
I Relaţie de ordine pe mulţimea triangulărilor lui P
Terminologie

I Fixată: o mulţime de puncte P.


I Vectorul unghiurilor unei triangulări a lui P
I Relaţie de ordine pe mulţimea triangulărilor lui P
I Triangulare unghiular optimă
Terminologie

I Fixată: o mulţime de puncte P.


I Vectorul unghiurilor unei triangulări a lui P
I Relaţie de ordine pe mulţimea triangulărilor lui P
I Triangulare unghiular optimă
I Muchie ilegală
Terminologie

I Fixată: o mulţime de puncte P.


I Vectorul unghiurilor unei triangulări a lui P
I Relaţie de ordine pe mulţimea triangulărilor lui P
I Triangulare unghiular optimă
I Muchie ilegală
I Triangulare legală
Triangulări unghiular optime vs. triangulări legale

I Propoziţie. Fie P o mulţime de puncte din plan.


(i) Orice triangulare unghiular optimă este legală.
(ii) Dacă P este ı̂n poziţie generală (oricare patru puncte nu
sunt conciclice), atunci există o unică triangulare legală, iar
aceasta este unghiular optimă.
Problema oficiiilor poştale

I Se consideră o mulţime de puncte (oficiile poştale) din plan.


Care este cel mai apropiat?
Formalizare

I Fie P = {P1 , P2 , . . . , Pn } o mulţime de puncte din planul R2 .


Formalizare

I Fie P = {P1 , P2 , . . . , Pn } o mulţime de puncte din planul R2 .


I Diagrama Voronoi a lui P (notată Vor(P)) este o divizare a
planului R2 ı̂n n celule V(P1 ), . . . , V(Pn ) cu proprietatea că

P ∈ V(Pi ) ⇔ d(P, Pi ) ≤ d(P, Pj ), ∀j = 1, . . . , n.


Formalizare

I Fie P = {P1 , P2 , . . . , Pn } o mulţime de puncte din planul R2 .


I Diagrama Voronoi a lui P (notată Vor(P)) este o divizare a
planului R2 ı̂n n celule V(P1 ), . . . , V(Pn ) cu proprietatea că

P ∈ V(Pi ) ⇔ d(P, Pi ) ≤ d(P, Pj ), ∀j = 1, . . . , n.

I Două celule adiacente au ı̂n comun o muchie sau un vârf


(punct de intesecţie a muchiilor).
Formalizare

I Fie P = {P1 , P2 , . . . , Pn } o mulţime de puncte din planul R2 .


I Diagrama Voronoi a lui P (notată Vor(P)) este o divizare a
planului R2 ı̂n n celule V(P1 ), . . . , V(Pn ) cu proprietatea că

P ∈ V(Pi ) ⇔ d(P, Pi ) ≤ d(P, Pj ), ∀j = 1, . . . , n.

I Două celule adiacente au ı̂n comun o muchie sau un vârf


(punct de intesecţie a muchiilor).
I Atenţie! Vârfurile lui Vor(P) sunt diferite de punctele din P.
Formalizare

I Fie P = {P1 , P2 , . . . , Pn } o mulţime de puncte din planul R2 .


I Diagrama Voronoi a lui P (notată Vor(P)) este o divizare a
planului R2 ı̂n n celule V(P1 ), . . . , V(Pn ) cu proprietatea că

P ∈ V(Pi ) ⇔ d(P, Pi ) ≤ d(P, Pj ), ∀j = 1, . . . , n.

I Două celule adiacente au ı̂n comun o muchie sau un vârf


(punct de intesecţie a muchiilor).
I Atenţie! Vârfurile lui Vor(P) sunt diferite de punctele din P.
I Uneori, prin abuz de limbaj, este precizată doar ı̂mpărţirea ı̂n
muchii / vârfuri.
Proprietăţi elementare

I Celula asociată unui punct este o intersecţie de semiplane.


Aplicabilitate: algoritm (lent) de determinare a diagramei
Voronoi.
Proprietăţi elementare

I Celula asociată unui punct este o intersecţie de semiplane.


Aplicabilitate: algoritm (lent) de determinare a diagramei
Voronoi.
I Structura unei diagrame Voronoi.
Proprietăţi elementare

I Celula asociată unui punct este o intersecţie de semiplane.


Aplicabilitate: algoritm (lent) de determinare a diagramei
Voronoi.
I Structura unei diagrame Voronoi.
I Legătură ı̂ntre numărul de vârfuri, respectiv de muchii şi
numărul de puncte (nv ≤ 2n − 5, nm ≤ 3n − 6).
Legătura cu triangulările Delaunay

I Mulţime de puncte P
Legătura cu triangulările Delaunay

I Mulţime de puncte P
I Diagrama Voronoi Vor(P)
Legătura cu triangulările Delaunay

I Mulţime de puncte P
I Diagrama Voronoi Vor(P)
I Graful dual G(P)
Legătura cu triangulările Delaunay

I Mulţime de puncte P
I Diagrama Voronoi Vor(P)
I Graful dual G(P)
I Triangulare TP (triangulare Delaunay)
Legătura cu triangulările Delaunay

I Mulţime de puncte P
I Diagrama Voronoi Vor(P)
I Graful dual G(P)
I Triangulare TP (triangulare Delaunay)
I Teoremă. Triangularea Delaunay este unghiular optimă.
Legătura cu triangulările Delaunay

I Mulţime de puncte P
I Diagrama Voronoi Vor(P)
I Graful dual G(P)
I Triangulare TP (triangulare Delaunay)
I Teoremă. Triangularea Delaunay este unghiular optimă.
I Exemple:
http://www.cs.cornell.edu/info/people/chew/Delaunay.html
http://cgm.cs.mcgill.ca/˜godfried/teaching/projects.pr.98/tesson/taxi/taxivoro.html
Algoritmul lui Fortune (1987)

I Metodă clasică (şi eficientă) de determinare a diagramei


Voronoi pentru o mulţime de puncte din planul R2 .
Algoritmul lui Fortune (1987)

I Metodă clasică (şi eficientă) de determinare a diagramei


Voronoi pentru o mulţime de puncte din planul R2 .
I Bazat pe paradigma liniei de baleiere (sweep line).
Algoritmul lui Fortune (1987)

I Metodă clasică (şi eficientă) de determinare a diagramei


Voronoi pentru o mulţime de puncte din planul R2 .
I Bazat pe paradigma liniei de baleiere (sweep line).
I Complexitate: O(n log n).
Algoritmul lui Fortune (1987)

I Metodă clasică (şi eficientă) de determinare a diagramei


Voronoi pentru o mulţime de puncte din planul R2 .
I Bazat pe paradigma liniei de baleiere (sweep line).
I Complexitate: O(n log n).
I Detalii:
http://www.ams.org/samplings/feature-column/fcarc-voronoi

S-ar putea să vă placă și