l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n...

79
Geometria Computacional Cristina G. Fernandes Departamento de Ciência da Computação do IME-USP http://www.ime.usp.br/˜cris/ segundo semestre de 2018 GeoComp 2018 – p. 1/30

Transcript of l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n...

Page 1: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Geometria Computacional

Cristina G. FernandesDepartamento de Ciência da Computação do IME-USP

http://www.ime.usp.br/˜cris/

segundo semestre de 2018

GeoComp 2018 – p. 1/30

Page 2: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Dentro ou fora?

Candidata a diagonal P [i]P [j] está no interior do polígono?

Está no cone das arestas vizinhas do polígono?

NoCone(n, P, i, j)1 u← i− 1 (mod n)2 w ← i+ 1 (mod n)3 se Esquerda(P [u], P [i], P [w]) ✄ P [i] é convexo4 então devolva Esquerda+(P [i], P [j], P [u]) e4 então devolva Esquerda+(P [j], P [i], P [w])5 senão devolva não (Esquerda(P [i], P [j], P [w]) e5 senão devolva não (Esquerda(P [j], P [i], P [u]))

GeoComp 2014 – p. 15

Page 3: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Teste de diagonalQuase uma diagonal...

QuaseDiagonal(n, P, i, j)1 para k ← 0 até n− 12 ℓ← k + 1(mod n)3 se k 6= i e k 6= j e ℓ 6= i e ℓ 6= j4 então se Intersecta(P [i], P [j], P [k], P [ℓ])5 então devolva FALSO6 devolva VERDADE

Diagonal de fato...

Diagonal(n, P, i, j)1 devolva NoCone(n, P, i, j) e QuaseDiagonal(n, P, i, j)

Tempo de execução: Θ(n)

GeoComp 2014 – p. 16

Page 4: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentosPonto c está no segmento ab

Entre(a, b, c)1 se não Colinear(a, b, c)2 então devolva FALSO

3 se a[X ] 6= b[X ] ✄ ab não é vertical4 então devolva a[X ] ≤ c[X ] ≤ b[X ] ou b[X ] ≤ c[X ] ≤ a[X ]

5 senão devolva a[Y ] ≤ c[Y ] ≤ b[Y ] ou b[Y ] ≤ c[Y ] ≤ a[Y ]

Interseção entre ab e cd

Intersecta(a, b, c, d)1 se IntersectaProp(a, b, c, d)2 então devolva VERDADE

3 devolva Entre(a, b, c) ou Entre(a, b, d)3 devolva ou Entre(c, d, a) ou Entre(c, d, b)

GeoComp 2014 – p. 14

Page 5: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Orelhas de polígonos

Teorema (Meister’s Two Ears Theorem): Todo polígono compelo menos 4 vértices possui pelo menos duas orelhas.

Segue do teorema abaixo.

Teorema 3: Seja P um polígono com pelo menos 4 vérticese T uma triangulação de P . Então pelo menos doistriangulos de T formam orelhas de P .

Prova: (Feita na aula.)

GeoComp 2014 – p. 15

Page 6: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Triangulação em O(n3): use orelhas!

PontaDeOrelha(n, P, i)1 j ← (i− 1)mod n2 k ← (i+ 1)mod n3 devolva Diagonal(n, P, j, k)

GeoComp 2014 – p. 20

Page 7: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Triangulação em O(n3): use orelhas!

PontaDeOrelha(n, P, i)1 j ← (i− 1)mod n2 k ← (i+ 1)mod n3 devolva Diagonal(n, P, j, k)

Triang-n3(n, P )1 se n > 32 então i← 03 enquanto não PontaDeOrelha(n, P, i) faça4 i← i+ 15 imprima {(i− 1)mod n, (i+ 1)mod n}6 m,P ′ ← Remove(n, P, i)7 Triang-n3(m,P ′)

GeoComp 2014 – p. 20

Page 8: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Triangulação em O(n3): use orelhas!

PontaDeOrelha(n, P, i)1 j ← (i− 1)mod n2 k ← (i+ 1)mod n3 devolva Diagonal(n, P, j, k)

Triang-n3(n, P ) ✄ sem recursão de cauda1 enquanto n > 32 i← 03 enquanto não PontaDeOrelha(n, P, i) faça4 i← i+ 15 imprima {(i− 1)mod n, (i+ 1)mod n}6 P [i . . n − 2]← P [i+ 1 . . n − 1] ✄ remove o i7 n← n− 1

GeoComp 2014 – p. 20

Page 9: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Triangulação em O(n3): use orelhas!

PontaDeOrelha(n, P, i)1 j ← (i− 1)mod n2 k ← (i+ 1)mod n3 devolva Diagonal(n, P, j, k)

Triang-n3(n, P ) ✄ sem recursão de cauda1 enquanto n > 32 i← 03 enquanto não PontaDeOrelha(n, P, i) faça4 i← i+ 15 imprima {(i− 1)mod n, (i+ 1)mod n}6 P [i . . n − 2]← P [i+ 1 . . n − 1] ✄ remove o i7 n← n− 1

Pior caso: Θ(n2) chamadas a Diagonal

GeoComp 2014 – p. 20

Page 10: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Exemplo ruim

0

1

23

4

5

67

GeoComp 2014 – p. 21

Page 11: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Triangulação em O(n2)Triang-n2(n, P )

1 MarcaOrelha(P )

2 enquanto n > 3 faça3 v2 ← P

4 enquanto não orelha[v2] faça5 v2 ← prox [v2]

6 v1 ← prev [v2]

7 v3 ← prox [v2]

8 imprima {vert [v1], vert [v3]}9 prox [v1]← v3

10 prev [v3]← v1

11 P ← v3

12 n← n− 1

13 orelha[v1]← PontaDeOrelha(P, v1)14 orelha[v3]← PontaDeOrelha(P, v3)

GeoComp 2014 – p. 22

Page 12: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Triangulação em O(n2)Triang-n2(n, P )

1 MarcaOrelha(P )

2 enquanto n > 3 faça3 v2 ← P

4 enquanto não orelha[v2] faça5 v2 ← prox [v2]

6 v1 ← prev [v2]

7 v3 ← prox [v2]

8 imprima {vert [v1], vert [v3]}9 prox [v1]← v3

10 prev [v3]← v1

11 P ← v3

12 n← n− 1

13 orelha[v1]← PontaDeOrelha(P, v1)14 orelha[v3]← PontaDeOrelha(P, v3)

Pior caso: Θ(n) chamadas a Diagonal.GeoComp 2014 – p. 22

Page 13: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Orelhas com listas ligadas

PontaDeOrelha(P, v)1 u← prev [v]2 w ← prox [v]3 devolva Diagonal(P, u, w)

GeoComp 2014 – p. 23

Page 14: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Orelhas com listas ligadas

PontaDeOrelha(P, v)1 u← prev [v]2 w ← prox [v]3 devolva Diagonal(P, u, w)

MarcaOrelha(P )1 v ← P2 repita3 u← prev [v]4 w ← prox [v]5 orelha[v]← Diagonal(P, u, w)6 v ← w7 até que v = P

GeoComp 2014 – p. 23

Page 15: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Orelhas com listas ligadas

PontaDeOrelha(P, v)1 u← prev [v]2 w ← prox [v]3 devolva Diagonal(P, u, w)

MarcaOrelha(P )1 v ← P2 repita3 u← prev [v]4 w ← prox [v]5 orelha[v]← Diagonal(P, u, w)6 v ← w7 até que v = P

Diagonal também teria que ser reescrita para listas ligadas.GeoComp 2014 – p. 23

Page 16: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Uma coleção de segmentos do plano é dada por doisvetores e[1 . . n], d[1 . . n] de pontos.

GeoComp 2014 – p. 2/22

Page 17: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Uma coleção de segmentos do plano é dada por doisvetores e[1 . . n], d[1 . . n] de pontos.

A coordenada do ponto e[i] é (eX [i], eY [i]).A coordenada do ponto d[i] é (dX [i], dY [i]).

GeoComp 2014 – p. 2/22

Page 18: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Uma coleção de segmentos do plano é dada por doisvetores e[1 . . n], d[1 . . n] de pontos.

A coordenada do ponto e[i] é (eX [i], eY [i]).A coordenada do ponto d[i] é (dX [i], dY [i]).

1

2

3

4

56

eX 6 −2 −3 0 3 4

eY 3 1 4 6 5 1

1 2 3 4 5 6

dX 8 1 2 5 7 9

dY 7 3 4 8 0 2

1 2 3 4 5 6

GeoComp 2014 – p. 2/22

Page 19: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Problema: Dada uma coleção de segmentos no plano,decidir se existem dois segmentos na coleção que seintersectam.

1

2

3

4

56

eX 6 −2 −3 0 3 4

eY 3 1 4 6 5 1

1 2 3 4 5 6

dX 8 1 2 5 7 9

dY 7 3 4 8 0 2

1 2 3 4 5 6

GeoComp 2014 – p. 3/22

Page 20: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Problema: Dada uma coleção de segmentos no plano,decidir se existem dois segmentos na coleção que seintersectam.

1

2

3

4

56

eX 6 −2 −3 0 3 4

eY 3 1 4 6 5 1

1 2 3 4 5 6

dX 8 1 2 5 7 9

dY 7 3 4 8 0 2

1 2 3 4 5 6

GeoComp 2014 – p. 3/22

Page 21: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Problema: Dada uma coleção de segmentos no plano,decidir se existem dois segmentos na coleção que seintersectam.

1

2

3

4

56

eX 6 −2 −3 0 3 4

eY 3 1 4 6 5 1

1 2 3 4 5 6

dX 8 1 2 5 7 9

dY 7 3 4 8 0 2

1 2 3 4 5 6

Resposta: sim, existem dois segmentos com interseção.

GeoComp 2014 – p. 3/22

Page 22: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de dois segmentos

Das aulas passadas...

Interseção entre ab e cd

Intersecta(a, b, c, d)1 se IntersectaProp(a, b, c, d)2 então devolva VERDADE3 devolva Entre(a, b, c) ou Entre(a, b, d)

ou Entre(c, d, a) ou Entre(c, d, b)

GeoComp 2014 – p. 4/22

Page 23: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de dois segmentos

Das aulas passadas...

Interseção entre ab e cd

Intersecta(a, b, c, d)1 se IntersectaProp(a, b, c, d)2 então devolva VERDADE3 devolva Entre(a, b, c) ou Entre(a, b, d)

ou Entre(c, d, a) ou Entre(c, d, b)

Abreviatura:

INTER(e, d, i, j)1 devolva Intersecta(e[i], d[i], e[j], d[j])

GeoComp 2014 – p. 4/22

Page 24: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Solução quadrática:

IntersectaQuad(e, d, n)1 para i← 1 até n−1 faça2 para j ← i+1 até n faça3 se INTER (e, d, i, j)4 então devolva VERDADE5 devolva FALSO

GeoComp 2014 – p. 5/22

Page 25: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Solução quadrática:

IntersectaQuad(e, d, n)1 para i← 1 até n−1 faça2 para j ← i+1 até n faça3 se INTER (e, d, i, j)4 então devolva VERDADE5 devolva FALSO

Consumo de tempo: Θ(n2).

GeoComp 2014 – p. 5/22

Page 26: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de segmentos

Solução quadrática:

IntersectaQuad(e, d, n)1 para i← 1 até n−1 faça2 para j ← i+1 até n faça3 se INTER (e, d, i, j)4 então devolva VERDADE5 devolva FALSO

Consumo de tempo: Θ(n2).

Conseguimos fazer melhor que isso?

GeoComp 2014 – p. 5/22

Page 27: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalos

Este é o caso na reta.

GeoComp 2014 – p. 6/22

Page 28: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalos

Este é o caso na reta.

Um segmento na reta é um intervalo.

GeoComp 2014 – p. 6/22

Page 29: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalos

Este é o caso na reta.

Um segmento na reta é um intervalo.

Os vetores eX [1 . . n] e dX [1 . . n] representamos intervalos [eX [1] . . dX [1]], . . . , [eX [n] . . dX [n]].

GeoComp 2014 – p. 6/22

Page 30: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalos

Este é o caso na reta.

Um segmento na reta é um intervalo.

Os vetores eX [1 . . n] e dX [1 . . n] representamos intervalos [eX [1] . . dX [1]], . . . , [eX [n] . . dX [n]].

Se ordenarmos os pontos extremos dos intervalos,é fácil decidir se há interseção ou não,percorrendo os pontos na ordem obtida.

GeoComp 2014 – p. 6/22

Page 31: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalos

Este é o caso na reta.

Um segmento na reta é um intervalo.

Os vetores eX [1 . . n] e dX [1 . . n] representamos intervalos [eX [1] . . dX [1]], . . . , [eX [n] . . dX [n]].

Se ordenarmos os pontos extremos dos intervalos,é fácil decidir se há interseção ou não,percorrendo os pontos na ordem obtida.

Basta contar quantos intervalos estão “abertos”.Se houver mais do que um aberto num momento,há interseção.

GeoComp 2014 – p. 6/22

Page 32: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalosVARREDURA(e, d, n)1 para i← 1 até n faça ✄ para cada intervalo marca2 E[i]← eX [i] esq [i]← VERDADE ✄ extremo esquerdo3 E[i+ n]← dX [i] esq [i+ n]← FALSO ✄ extremo direito4 MERGESORT(E, esq , 1, 2n) ✄ ordena os extremos

1011

eX 10 0 18

dX 16 7 22

1 2 300 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

VARREDURA(eX , dX , 3) =

GeoComp 2014 – p. 7/22

Page 33: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalosVARREDURA(e, d, n)1 para i← 1 até n faça ✄ para cada intervalo marca2 E[i]← eX [i] esq [i]← VERDADE ✄ extremo esquerdo3 E[i+ n]← dX [i] esq [i+ n]← FALSO ✄ extremo direito4 MERGESORT(E, esq , 1, 2n) ✄ ordena os extremos5 cont ← 0 resp ← FALSO6 para p← 1 até 2n faça ✄ para cada ponto extremo7 se esq [p] ✄ se extremo esquerdo8 então cont ← cont+19 se cont = 2 então resp ← VERDADE

10 senão cont ← cont−111 devolva resp

eX 10 0 18

dX 16 7 22

1 2 300 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

VARREDURA(eX , dX , 3) =

GeoComp 2014 – p. 7/22

Page 34: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalosVARREDURA(e, d, n)1 para i← 1 até n faça ✄ para cada intervalo marca2 E[i]← eX [i] esq [i]← VERDADE ✄ extremo esquerdo3 E[i+ n]← dX [i] esq [i+ n]← FALSO ✄ extremo direito4 MERGESORT(E, esq , 1, 2n) ✄ ordena os extremos5 cont ← 0 resp ← FALSO6 para p← 1 até 2n faça ✄ para cada ponto extremo7 se esq [p] ✄ se extremo esquerdo8 então cont ← cont+19 se cont = 2 então resp ← VERDADE

10 senão cont ← cont−111 devolva resp

eX 10 0 18

dX 16 7 22

1 2 300 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

VARREDURA(eX , dX , 3) = FALSO

GeoComp 2014 – p. 7/22

Page 35: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalosVARREDURA(e, d, n)1 para i← 1 até n faça ✄ para cada intervalo marca2 E[i]← eX [i] esq [i]← VERDADE ✄ extremo esquerdo3 E[i+ n]← dX [i] esq [i+ n]← FALSO ✄ extremo direito4 MERGESORT(E, esq , 1, 2n) ✄ ordena os extremos5 cont ← 0 resp ← FALSO6 para p← 1 até 2n faça ✄ para cada ponto extremo7 se esq [p] ✄ se extremo esquerdo8 então cont ← cont+19 se cont = 2 então resp ← VERDADE

10 senão cont ← cont−111 devolva resp

eX 10 0 16

dX 18 7 22

1 2 300 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

VARREDURA(eX , dX , 3) =

GeoComp 2014 – p. 7/22

Page 36: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalosVARREDURA(e, d, n)1 para i← 1 até n faça ✄ para cada intervalo marca2 E[i]← eX [i] esq [i]← VERDADE ✄ extremo esquerdo3 E[i+ n]← dX [i] esq [i+ n]← FALSO ✄ extremo direito4 MERGESORT(E, esq , 1, 2n) ✄ ordena os extremos5 cont ← 0 resp ← FALSO6 para p← 1 até 2n faça ✄ para cada ponto extremo7 se esq [p] ✄ se extremo esquerdo8 então cont ← cont+19 se cont = 2 então resp ← VERDADE

10 senão cont ← cont−111 devolva resp

eX 10 0 16

dX 18 7 22

1 2 320 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

VARREDURA(eX , dX , 3) = VERDADE

GeoComp 2014 – p. 7/22

Page 37: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Interseção de intervalosVARREDURA(e, d, n)1 para i← 1 até n faça ✄ para cada intervalo marca2 E[i]← eX [i] esq [i]← VERDADE ✄ extremo esquerdo3 E[i+ n]← dX [i] esq [i+ n]← FALSO ✄ extremo direito4 MERGESORT(E, esq , 1, 2n) ✄ ordena os extremos5 cont ← 0 resp ← FALSO6 para p← 1 até 2n faça ✄ para cada ponto extremo7 se esq [p] ✄ se extremo esquerdo8 então cont ← cont+19 se cont = 2 então resp ← VERDADE

10 senão cont ← cont−111 devolva resp

Consumo de tempo: Θ(n lg n).

GeoComp 2014 – p. 7/22

Page 38: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Método da linha de varredura

Ideia: reduzir um problema estático bidimensionalIdeia: a um problema dinâmico unidimensional

GeoComp 2014 – p. 8/22

Page 39: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Método da linha de varredura

Ideia: reduzir um problema estático bidimensionalIdeia: a um problema dinâmico unidimensional

Uma linha imaginária move-se da esquerda para a direita.

20 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

GeoComp 2014 – p. 8/22

Page 40: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Método da linha de varredura

Ideia: reduzir um problema estático bidimensionalIdeia: a um problema dinâmico unidimensional

Uma linha imaginária move-se da esquerda para a direita.

20 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

À medida que ela move,o problema restrito à esquerda dela é resolvido.

GeoComp 2014 – p. 8/22

Page 41: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Método da linha de varredura

Ideia: reduzir um problema estático bidimensionalIdeia: a um problema dinâmico unidimensional

Uma linha imaginária move-se da esquerda para a direita.

20 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

À medida que ela move,o problema restrito à esquerda dela é resolvido.

Informação necessária para estender a solução parcial émantida numa descrição combinatória da linha.

GeoComp 2014 – p. 8/22

Page 42: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Método da linha de varredura

Ideia: reduzir um problema estático bidimensionalIdeia: a um problema dinâmico unidimensional

Uma linha imaginária move-se da esquerda para a direita.

20 011 1

0 7 10 16 18 22E[i]

VV FF F Vesq [i]cont

À medida que ela move,o problema restrito à esquerda dela é resolvido.

Informação necessária para estender a solução parcial émantida numa descrição combinatória da linha.

Muda apenas em posições chaves: os pontos eventos.

GeoComp 2014 – p. 8/22

Page 43: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e HoeyIdeia: Dois segmentos cuja projeção no eixo X sejamdisjuntas não se intersectam.

11

22

33

44

55 66

GeoComp 2014 – p. 9/22

Page 44: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e HoeyIdeia: Dois segmentos cuja projeção no eixo X sejamdisjuntas não se intersectam.

11

22

33

44

55 66

Se a projeção no eixo X de dois segmentos tem interseção,então há uma linha vertical que intersecta ambos.

GeoComp 2014 – p. 9/22

Page 45: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e HoeyIdeia: Dois segmentos cuja projeção no eixo X sejamdisjuntas não se intersectam.

11

22

33

44

55 66

Imagine esta linha vertical varrendo o plano da esquerdapara a direita...

GeoComp 2014 – p. 9/22

Page 46: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e HoeyIdeia: Dois segmentos cuja projeção no eixo X sejamdisjuntas não se intersectam.

11

22

33

44

55 66

Imagine esta linha vertical varrendo o plano da esquerdapara a direita...Enquanto a linha varre o plano, mantemos os segmentosintersectados por ela na descrição combinatória da linha.

GeoComp 2014 – p. 9/22

Page 47: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅GeoComp 2014 – p. 10/22

Page 48: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

GeoComp 2014 – p. 10/22

Page 49: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 50: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 51: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 52: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 53: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 54: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 55: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 56: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 57: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 58: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 59: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 60: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 10/22

Page 61: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Como guardarum destes conjuntos?

GeoComp 2014 – p. 11/22

Page 62: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

1

2

3

4

56

x < −3 ∅−3 ≤ x < −2 {3}−2 ≤ x < 0 {2, 3}0 ≤ x < 1 {2, 3, 4}1 ≤ x ≤ 2 {2, 3, 4, 6}2 < x < 3 {2, 3, 4, 5, 6}3 ≤ x < 4 {2, 4, 5, 6}4 ≤ x ≤ 5 {4, 5, 6}5 < x < 6 {5, 6}6 ≤ x ≤ 7 {1, 5, 6}7 < x ≤ 8 {1, 6}8 < x ≤ 9 {6}

9 < x ∅

Como guardarum destes conjuntos?

Que operações ele sofre?

GeoComp 2014 – p. 11/22

Page 63: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

O conjunto dos segmentos na linha sofreinserções e remoções.

GeoComp 2014 – p. 12/22

Page 64: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

O conjunto dos segmentos na linha sofreinserções e remoções.

Como a linha vai nos ajudar a detectar interseção?

GeoComp 2014 – p. 12/22

Page 65: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

O conjunto dos segmentos na linha sofreinserções e remoções.

Como a linha vai nos ajudar a detectar interseção?

Ideia: testar interseçãoapenas entre segmentos“vizinhos na linha”.

Para isso, mantemos ossegmentos na linhaordenados.

1

3

56

7

8

9

GeoComp 2014 – p. 12/22

Page 66: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

O conjunto dos segmentos na linha sofreinserções e remoções.

Como a linha vai nos ajudar a detectar interseção?

Ideia: testar interseçãoapenas entre segmentos“vizinhos na linha”.

Para isso, mantemos ossegmentos na linhaordenados.

1

3

56

7

8

9

GeoComp 2014 – p. 12/22

Page 67: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

Os segmentos ficam na ordem em que intersectam a linha.

GeoComp 2014 – p. 13/22

Page 68: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

Os segmentos ficam na ordem em que intersectam a linha.

1

2

3

56

7

8

9

3 ≺ 8 ≺ 1 ≺ 2 ≺ 7 ≺ 5 ≺ 6 ≺ 9

Ao inserimos um segmento, testamos a interseção delecom seu predecessor e com seu sucessor na ordem.

GeoComp 2014 – p. 13/22

Page 69: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Descrição combinatória da linha

Os segmentos ficam na ordem em que intersectam a linha.

1

2

3

56

7

8

9

3 ≺ 8 ≺ 1 ≺ 2 ≺ 7 ≺ 5 ≺ 6 ≺ 9

Ao removermos um segmento, testamos a interseção deseu predecessor e com seu sucessor na ordem.

GeoComp 2014 – p. 13/22

Page 70: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5 · · ·6

7

8

GeoComp 2014 – p. 14/22

Page 71: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

GeoComp 2014 – p. 14/22

Page 72: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 73: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5 5 ≺ 6

6 · · ·7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 74: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 75: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 76: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 77: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 78: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

GeoComp 2014 – p. 14/22

Page 79: l a n o i c a t u p m o C a i r t e m o e G › ~cris › mac331 › slides › aula04.pdf · l a n o i c a t u p m o C a i r t e m o e G s e d n a n r e F . G a n i t s i r C? a

Algoritmo de Shamos e Hoey

1

2

3

4

56

−∞−3 3

−2 3 ≺ 2

0 4 ≺ 3 ≺ 2

1 4 ≺ 3 ≺ 2 ≺ 6

2 4 ≺ 5 ≺ 3 ≺ 2 ≺ 6

3 4 ≺ 5 ≺ 2 ≺ 6

4 4 ≺ 5 ≺ 6

5

6

7

8

Alterações ocorremnos extremos dos segmentos.

Estes sãoos pontos eventos.

Encontrou uma interseção!

GeoComp 2014 – p. 14/22