Escolar Documentos
Profissional Documentos
Cultura Documentos
Dorel Lucanu
Faculty of Computer Science
Alexandru Ioan Cuza University, Iasi, Romania
dlucanu@info.uaic.ro
PA 2014/2015
Geometrie computational
a
PA 2014/2015
1 / 46
Outline
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
2 / 46
Introducere
Plan
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
3 / 46
Introducere
Motivatie
Plan
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
4 / 46
Introducere
Motivatie
Geometrie computational
a
PA 2014/2015
5 / 46
Introducere
Motivatie
Aplicatii
Geometrie computational
a
PA 2014/2015
6 / 46
Introducere
Plan
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
7 / 46
Introducere
Puncte
p=(x,y)
p=(, )
Conversii (partial):
p
(x, y ) 7 ( x 2 + y 2 , atan(y /x)) (x 6= 0)
(, ) 7 ( cos(), sin())
Geometrie computational
a
PA 2014/2015
8 / 46
Introducere
Geometrie computational
a
PA 2014/2015
9 / 46
Introducere
Segmente
A.y
B.x
B.y . . .
3
2
1
Geometrie computational
a
PA 2014/2015
10 / 46
Introducere
Linii poligonale
linie poligonala
linie poligonala
simpla
linie poligonala
inchisa
Geometrie computational
a
linie poligonala
simpla inchisa
PA 2014/2015
11 / 46
Introducere
sau
PoligLine = LLinhPPointi
Geometrie computational
a
PA 2014/2015
12 / 46
Introducere
Dreapta
O dreapta este reprezentata printr-o ecuatie liniara: a x + b y + c = 0
Geometrie computational
a
PA 2014/2015
13 / 46
Introducere
Se rezolva sistemul:
Geometrie computational
a
PA 2014/2015
14 / 46
Introducere
Operatii primitive
Plan
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
15 / 46
Introducere
Operatii primitive
Geometrie computational
a
PA 2014/2015
16 / 46
Introducere
Operatii primitive
a1 x + b1 y + c1 = 0
a2 x + b2 y + c2 = 0
c1 b1
a1 b1
dx =
d =
c2 b2
a2 b2
a1 c1
dy =
a2 c2
d = 0, drepte paralele
d 6= 0, sistemul are solutie unica: x =
dy
dx
, y=
d
d
Geometrie computational
a
PA 2014/2015
17 / 46
Introducere
Operatii primitive
Geometrie computational
a
PA 2014/2015
18 / 46
Introducere
Operatii primitive
1
1
1
B,
C formeaza un ciclu n sens invers arcelor de
Geometrie computational
a
PA 2014/2015
19 / 46
Introducere
Operatii primitive
A
P
Geometrie computational
a
PA 2014/2015
20 / 46
Introducere
Operatii primitive
- distanta dintre
doua puncte:
p
dist(P, Q) =
Geometrie computational
a
si acos()?)
PA 2014/2015
21 / 46
Introducere
Operatii primitive
Geometrie computational
a
PA 2014/2015
22 / 46
Introducere
Operatii primitive
Geometrie computational
a
PA 2014/2015
22 / 46
Introducere
Operatii primitive
nu se numara
Geometrie computational
a
PA 2014/2015
23 / 46
Structura DCEL
Plan
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
24 / 46
Structura DCEL
P3
P1
P2
F3
F2
F1
P6
F4
F5
F6
P5
P8
P4
F0
P7
P0
Geometrie computational
a
PA 2014/2015
25 / 46
Structura DCEL
un graf planar este un graf care poate fi scufundat n plan astfel ncat
varfurile sunt puncte din plan iar muchiile sun curbe n plan care nu
se intersecteaza
orice graf planar admite o scufundare n plan n care muchiile sunt
segmente (Fary, 1948)
un PSLG este graf conex planar scufundat n plan, n care muchiile
sunt segmente
Geometrie computational
a
PA 2014/2015
26 / 46
Structura DCEL
P0
Ptr1 |-> i2
Ptr2 |-> i3 }
Geometrie computational
a
PA 2014/2015
27 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
28 / 46
Structura DCEL
P1
P2
F3
F2
F1
P6
F5
F6
P7
F4
P5
P8
P4
F0
P0
Geometrie computational
a
PA 2014/2015
29 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
30 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
31 / 46
Structura DCEL
dreapta
stanga
Geometrie computational
a
PA 2014/2015
32 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
33 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
34 / 46
Structura DCEL
i1
Geometrie computational
a
PA 2014/2015
35 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
36 / 46
Structura DCEL
P1
vizitat
P2
F3
F2
F1
P6
F4
F5
F6
P7
in coada
P5
P4
P8
F0
P0
Geometrie computational
a
F6
F5
PA 2014/2015
37 / 46
Structura DCEL
P1
vizitat
P2
F3
F2
F1
P6
F4
F5
F6
P7
in coada
P5
P4
P8
F0
P0
Geometrie computational
a
F6
F0
F5
F4
PA 2014/2015
38 / 46
Structura DCEL
P1
vizitat
P2
F3
F2
F1
P6
F4
F5
F6
P7
in coada
P5
P4
P8
F0
P0
Geometrie computational
a
F6
F0
F5
F4
F3
PA 2014/2015
39 / 46
Structura DCEL
P1
vizitat
P2
F3
F2
F1
P6
F4
F5
F6
P7
in coada
P5
P4
P8
F0
P0
Geometrie computational
a
F6
F0
F5
F4
F3
F2
F1
PA 2014/2015
40 / 46
Structura DCEL
P1
vizitat
P2
F3
F2
F1
P6
F4
F5
F6
P7
in coada
P5
P4
P8
F0
P0
Geometrie computational
a
F6
F0
F5
F4
F3
F2
F1
PA 2014/2015
41 / 46
Structura DCEL
Geometrie computational
a
PA 2014/2015
42 / 46
Plan
Introducere
Motivatie
Cunoasterea domeniului problemei
Operatii primitive
Structura DCEL
Geometrie computational
a
PA 2014/2015
43 / 46
Geometrie computational
a
PA 2014/2015
44 / 46
banda (slab)
Geometrie computational
a
PA 2014/2015
45 / 46
Preprocesare
1
2
Procesare
1
2
Timp:
preprocesare: O(n2 log n) (pot fi n2 segmente pe o banda n cazul cel mai
nefavorabil - exemplu pe tabla)
procesare: O(log n)
Preprocesarea se poate reduce la O(n2 ) printr-o tehnica de sweep plane.
Exercitiu: scrierea n limbajul Alk al algoritmului
D. Lucanu (FII - UAIC)
Geometrie computational
a
PA 2014/2015
46 / 46