• Nenhum resultado encontrado

Geometria Computacional

N/A
N/A
Protected

Academic year: 2022

Share "Geometria Computacional"

Copied!
41
0
0

Texto

(1)

Geometria Computacional

Aula 13 Localização de ponto Sec 7.4 do O’Rourke

(2)

Ponto q está no polígono?

P convexo

Algoritmo trivial:

verifique seq está à esquerda de todas as arestas de P Complexidade: linear

Algo mais rápido? Váriasqueries:

pré-processamento linear e queriesusandobusca binária! Procure a fatia ondeq está. q está à esquerda ou à direita da aresta na fatia?

q

z

(3)

Ponto q está no polígono?

P convexo Algoritmo trivial:

verifique seq está à esquerda de todas as arestas de P

Complexidade: linear Algo mais rápido? Váriasqueries:

pré-processamento linear e queriesusandobusca binária! Procure a fatia ondeq está. q está à esquerda ou à direita da aresta na fatia?

q

z

(4)

Ponto q está no polígono?

P convexo Algoritmo trivial:

verifique seq está à esquerda de todas as arestas de P Complexidade: linear

Algo mais rápido? Váriasqueries:

pré-processamento linear e queriesusandobusca binária! Procure a fatia ondeq está. q está à esquerda ou à direita da aresta na fatia?

q

z

(5)

Ponto q está no polígono?

P convexo Algoritmo trivial:

verifique seq está à esquerda de todas as arestas de P Complexidade: linear

Algo mais rápido?

Váriasqueries:

pré-processamento linear e queriesusandobusca binária! Procure a fatia ondeq está. q está à esquerda ou à direita da aresta na fatia?

q

z

(6)

Ponto q está no polígono?

P convexo Algoritmo trivial:

verifique seq está à esquerda de todas as arestas de P Complexidade: linear

Algo mais rápido?

Váriasqueries:

pré-processamento linear e queriesusandobusca binária!

Procure a fatia ondeq está.

q está à esquerda ou à direita da aresta na fatia?

q

z

(7)

Ponto q está no polígono?

E seP não forconvexo?

Os dois algoritmos anteriores funcionam para alguns polígonos não convexos. Quais?

Polígonos estrela (star polygon)

P tem um ponto que enxerga todos os outros pontos deP.

q

p

(8)

Ponto q está no polígono?

E seP não forconvexo?

Os dois algoritmos anteriores funcionam para alguns polígonos não convexos.

Quais?

Polígonos estrela (star polygon)

P tem um ponto que enxerga todos os outros pontos deP.

q

p

(9)

Ponto q está no polígono?

E seP não forconvexo?

Os dois algoritmos anteriores funcionam para alguns polígonos não convexos.

Quais?

Polígonos estrela (star polygon)

P tem um ponto que enxerga todos os outros pontos deP.

q

p

(10)

Polígonos arbitrários

Problema: Dados P e q, decidir se q está ou não em P.

Dois algoritmoslineares:

I número de voltas (winding number) I cruzamentos de um raio

(ray casting/crossing number/even-odd rule)

Ângulocom sinaldeab~ em relação a q:

a b

q q

b

a

θ >0 θ <0

(11)

Polígonos arbitrários

Problema: Dados P e q, decidir se q está ou não em P. Dois algoritmoslineares:

I número de voltas (winding number) I cruzamentos de um raio

(ray casting/crossing number/even-odd rule)

Ângulocom sinaldeab~ em relação a q:

a b

q q

b

a

θ >0 θ <0

(12)

Polígonos arbitrários

Problema: Dados P e q, decidir se q está ou não em P. Dois algoritmoslineares:

I número de voltas (winding number) I cruzamentos de um raio

(ray casting/crossing number/even-odd rule)

Ângulocom sinaldeab~ em relação a q:

a b

q q

b

a

θ >0 θ <0

(13)

Winding number

Problema: Dados P e q, decidir se q está ou não em P.

Calcule a soma dos ângulos com sinal de cada aresta deδP em relação a q.

Esse número é ouzeroou 2π.

Winding number: essa soma dividida por2π Se o winding numberé zero,

então q não está emP, senãoq está emP.

(14)

Winding number

Problema: Dados P e q, decidir se q está ou não em P. Calcule a soma dos ângulos com sinal

de cada aresta deδP em relação a q.

Esse número é ouzeroou 2π.

Winding number: essa soma dividida por2π Se o winding numberé zero,

então q não está emP, senãoq está emP.

(15)

Winding number

Problema: Dados P e q, decidir se q está ou não em P. Calcule a soma dos ângulos com sinal

de cada aresta deδP em relação a q.

Esse número é ouzeroou 2π.

Winding number: essa soma dividida por2π Se o winding numberé zero,

então q não está emP, senãoq está emP.

(16)

Winding number

Problema: Dados P e q, decidir se q está ou não em P. Calcule a soma dos ângulos com sinal

de cada aresta deδP em relação a q.

Esse número é ouzeroou 2π.

Winding number: essa soma dividida por2π

Se o winding numberé zero, então q não está emP, senãoq está emP.

(17)

Winding number

Problema: Dados P e q, decidir se q está ou não em P. Calcule a soma dos ângulos com sinal

de cada aresta deδP em relação a q.

Esse número é ouzeroou 2π.

Winding number: essa soma dividida por2π Se owinding numberé zero,

então q não está emP, senãoq está emP.

(18)

Ray casting ou even-odd rule

Problema: Dados P e q, decidir se q está ou não em P.

R: raio horizontal saindo de q para x = +∞ Quantas vezesR cruza δP?

Quantas arestas deδP o raioR cruza?

b

b b

b b

cruza 2 arestas cruza 6 arestas

cruza 4 arestas cruza 3 arestas cruza 3 arestas

Se cruza um númeropar de arestas,

entãoq não está em P, senão q está emP.

(19)

Ray casting ou even-odd rule

Problema: Dados P e q, decidir se q está ou não em P. R: raio horizontal saindo de q para x= +∞

Quantas vezesR cruza δP?

Quantas arestas deδP o raioR cruza?

b

b b

b b

cruza 2 arestas cruza 6 arestas

cruza 4 arestas cruza 3 arestas cruza 3 arestas

Se cruza um númeropar de arestas,

entãoq não está em P, senão q está emP.

(20)

Ray casting ou even-odd rule

Problema: Dados P e q, decidir se q está ou não em P. R: raio horizontal saindo de q para x= +∞

Quantas vezesR cruza δP?

Quantas arestas deδP o raioR cruza?

b

b b

b b

cruza 2 arestas cruza 6 arestas

cruza 4 arestas cruza 3 arestas cruza 3 arestas

Se cruza um númeropar de arestas,

entãoq não está em P, senão q está emP.

(21)

Ray casting ou even-odd rule

Problema: Dados P e q, decidir se q está ou não em P. R: raio horizontal saindo de q para x= +∞

Quantas vezesR cruza δP?

Quantas arestas deδP o raioR cruza?

b

b b

b b

cruza 2 arestas cruza 6 arestas

cruza 4 arestas cruza 3 arestas cruza 3 arestas

Se cruza um númeropar de arestas,

entãoq não está em P, senão q está emP.

(22)

Ray casting ou even-odd rule

Problema: Dados P e q, decidir se q está ou não em P. R: raio horizontal saindo de q para x= +∞

Quantas vezesR cruza δP?

Quantas arestas deδP o raioR cruza?

b

b b

b b

cruza 2 arestas cruza 6 arestas

cruza 4 arestas cruza 3 arestas cruza 3 arestas

Se cruza um númeropar de arestas,

entãoq não está em P, senão q está emP.

(23)

Casos especiais

R: raio horizontal saindo de q para x= +∞

Quantas arestas deδP o raioR cruza?

b b

b b

cruza 7 arestas...

cruza 5 arestas... cruza 4 arestas... cruza quantas arestas??

Considere cada aresta

fechada no extremo inferior e aberta no superior! Cruza: um extremo estritamente acima, outro abaixo.

(24)

Casos especiais

R: raio horizontal saindo de q para x= +∞

Quantas arestas deδP o raioR cruza?

b b

b b

cruza 7 arestas...

cruza 5 arestas...

cruza 4 arestas...

cruza quantas arestas??

Como tratar destes casos?

b b

b b

cruza 7 arestas...

cruza 5 arestas... cruza 4 arestas... cruza quantas arestas??

Considere cada aresta

fechada no extremo inferior e aberta no superior! Cruza: um extremo estritamente acima, outro abaixo.

(25)

Casos especiais

R: raio horizontal saindo de q para x= +∞

Quantas arestas deδP o raioR cruza?

b b

b b

cruza 7 arestas...

cruza 5 arestas...

cruza 4 arestas...

cruza quantas arestas??

Considere cada aresta

fechada no extremo inferior e aberta no superior!

Cruza: um extremo estritamente acima, outro abaixo.

(26)

Primeira versão do algoritmo

Suponha queq é a origem.

Em-Polígono-v0(P,n) 1 c ←0

2 para i ←0até n−1faça

3 j ←(i+n−1)modn vértice i−1

4 se (P[i][Y]>0e P[j][Y]≤0) 4 se ou (P[j][Y]>0 eP[i][Y]≤0)

5 entãox (P[i][X]P[j][Y]P[j][X]P[i][Y]) 5 entãox ← /(P[j][Y]P[i][Y]) interseção c/ eixox

6 se x>0

7 entãoc ←c +1

8 se c é ímpar

9 então devolvadentro 10 senão devolva fora

Nem sempre funciona quandoq está na fronteira deP...

(27)

Primeira versão do algoritmo

Suponha queq é a origem.

Em-Polígono-v0(P,n) 1 c ←0

2 para i ←0até n−1faça

3 j ←(i+n−1)modn vértice i−1

4 se (P[i][Y]>0e P[j][Y]≤0) 4 se ou (P[j][Y]>0 eP[i][Y]≤0)

5 entãox (P[i][X]P[j][Y]P[j][X]P[i][Y]) 5 entãox ← /(P[j][Y]P[i][Y]) interseção c/ eixox

6 se x>0

7 entãoc ←c +1

8 se c é ímpar

9 então devolvadentro 10 senão devolva fora

Nem sempre funciona quandoq está na fronteira deP...

(28)

Primeira versão do algoritmo

Suponha queq é a origem.

Em-Polígono-v0(P,n) 1 c ←0

2 para i ←0até n−1faça

3 j ←(i+n−1)modn vértice i−1

4 se (P[i][Y]>0e P[j][Y]≤0) 4 se ou (P[j][Y]>0 eP[i][Y]≤0)

5 entãox (P[i][X]P[j][Y]P[j][X]P[i][Y]) 5 entãox ← /(P[j][Y]P[i][Y]) interseção c/ eixox

6 se x>0

7 entãoc ←c +1

8 se c é ímpar

9 então devolvadentro 10 senão devolva fora

Nem sempre funciona quandoq está na fronteira deP...

(29)

Primeira versão do algoritmo

Suponha queq é a origem.

Em-Polígono-v0(P,n) 1 c ←0

2 para i ←0até n−1faça

3 j ←(i+n−1)modn vértice i−1

4 se (P[i][Y]>0e P[j][Y]≤0) 4 se ou (P[j][Y]>0 eP[i][Y]≤0)

5 entãox (P[i][X]P[j][Y]P[j][X]P[i][Y]) 5 entãox ← /(P[j][Y]P[i][Y]) interseção c/ eixox

6 se x>0

7 entãoc ←c +1

8 se c é ímpar

9 então devolvadentro 10 senão devolva fora

Nem sempre funciona quandoq está na fronteira deP...

(30)

Primeira versão do algoritmo

Suponha queq é a origem.

Em-Polígono-v0(P,n) 1 c ←0

2 para i ←0até n−1faça

3 j ←(i+n−1)modn vértice i−1

4 se (P[i][Y]>0e P[j][Y]≤0) 4 se ou (P[j][Y]>0 eP[i][Y]≤0)

5 entãox (P[i][X]P[j][Y]P[j][X]P[i][Y]) 5 entãox ← /(P[j][Y]P[i][Y]) interseção c/ eixox

6 se x>0

7 entãoc ←c +1

8 se c é ímpar

9 então devolvadentro 10 senão devolva fora

Nem sempre funciona quandoq está na fronteira deP...

(31)

Primeira versão do algoritmo

Suponha queq é a origem.

Em-Polígono-v0(P,n) 1 c ←0

2 para i ←0até n−1faça

3 j ←(i+n−1)modn vértice i−1

4 se (P[i][Y]>0e P[j][Y]≤0) 4 se ou (P[j][Y]>0 eP[i][Y]≤0)

5 entãox (P[i][X]P[j][Y]P[j][X]P[i][Y]) 5 entãox ← /(P[j][Y]P[i][Y]) interseção c/ eixox

6 se x>0

7 entãoc ←c +1

8 se c é ímpar

9 então devolvadentro 10 senão devolva fora

Nem sempre funciona quandoq está na fronteira deP...

(32)

Pontos na fronteira

R: raio horizontal saindo de q para x= +∞

Quantas arestas deδP o raioR cruza?

b

b b

b

cruza 0 arestas...

cruza 2 arestas...

cruza 4 arestas...

cruza 0 arestas...

Erra em algunspontos da fronteira, concluindo que eles estãofora deP...

(33)

Pontos na fronteira

R: raio horizontal saindo de q para x= +∞

Quantas arestas deδP o raioR cruza?

b

b b

b

cruza 0 arestas...

cruza 2 arestas...

cruza 4 arestas...

cruza 0 arestas...

Erra em algunspontos da fronteira, concluindo que eles estãofora deP...

(34)

Casos especiais

Se aresta é

fechada no extremo inferior e aberta no superior.

Pontos “emP”:

(35)

Casos especiais

Se aresta é

fechada no extremo inferior e aberta no superior.

Pontos “emP”:

(36)

Casos especiais

Agora considere ao contrário: que uma aresta é fechada no extremo superior e aberta no inferior e queR vai parax=−∞.

Pontos “emP”:

(37)

Casos especiais

Primeira maneira:

acerta no interior das arestasda esquerda e de baixo.

Segunda maneira:

acerta no interior das arestasda direita e de cima.

Interpretando das duas maneiras,

acertamos a resposta no interior de todas as arestas! Restam os vértices...

Quandoq é um dos vértices deP, a resposta pode ainda estar errada... Faça um teste em separado

para ver seq não é um dos vértices deP.

(38)

Casos especiais

Primeira maneira:

acerta no interior das arestasda esquerda e de baixo.

Segunda maneira:

acerta no interior das arestasda direita e de cima.

Interpretando das duas maneiras,

acertamos a resposta no interior de todas as arestas!

Restam os vértices...

Quandoq é um dos vértices deP, a resposta pode ainda estar errada... Faça um teste em separado

para ver seq não é um dos vértices deP.

(39)

Casos especiais

Primeira maneira:

acerta no interior das arestasda esquerda e de baixo.

Segunda maneira:

acerta no interior das arestasda direita e de cima.

Interpretando das duas maneiras,

acertamos a resposta no interior de todas as arestas!

Restam os vértices...

Quandoq é um dos vértices de P, a resposta pode ainda estar errada...

Faça um teste em separado

para ver seq não é um dos vértices deP.

(40)

Casos especiais

Primeira maneira:

acerta no interior das arestasda esquerda e de baixo.

Segunda maneira:

acerta no interior das arestasda direita e de cima.

Interpretando das duas maneiras,

acertamos a resposta no interior de todas as arestas!

Restam os vértices...

Quandoq é um dos vértices de P, a resposta pode ainda estar errada...

Faça um teste em separado

para ver seq não é um dos vértices deP.

(41)

Segunda versão do algoritmo

Em-Polígono(P,n) para facilitar, q é a origem

1 c ←0 d ←0

2 para i ←0até n−1faça

3 se P[i][X] =0e P[i][Y] =0então devolva vértice

4 j ←(i+n−1)modn vértice i−1

5 testec ←(P[i][Y]>0)6= (P[j][Y]>0) 6 tested ←(P[i][Y]<0)6= (P[j][Y]<0) 7 se testec ou tested

8 entãox ← intersecção com eixox

9 se testec e x>0entãoc ←c +1 10 setested e x <0 entãod ←d +1 11 sec e d têm paridade distinta

12 então devolvaem aresta 13 sec é ímpar

14 então devolvadentro 15 senão devolvafora

Referências

Documentos relacionados

Nessa época a maioria dos caminhoneiros que se aventurava pelas estradas Brasil afora (e não eram essas estradas que você conhece hoje) faziam do pára-choque de seus

Homem é como basculante: quando velho, não levanta mais.. Homem é como vassoura: sem o pau, não serve

Sendo assim, ainda que se entenda que a bibliografia de seu trabalho também goza da proteção como direito autoral - o que, em si, já é discutível - ela não pode

Quanto a dimensão empreendedorismo rural, os jovens agroempreendedores revelaram que tem muitas ideias de atividades de prestação de serviços para ganhar dinheiro no meio rural

Observar o sucesso na escolaridade entre os alunos das famílias de classes escolarizadas não muda a realidade do ensino das escolas públicas, nem serve de parâmetro para justificar

No próximo mandato a construção da nova Unidade de Saúde Local, já anunciada, deverá ser uma realidade sendo que esta será uma das obras mais marcantes para

destacar que além de fazer parte de um projeto de extensão e do programa do governo Museu da Escola, este trabalho de “tirar os documentos do silêncio e

CUSTO COM ASSISTÊNCIA DE PACIENTES INTERNADOS EM UNIDADE DE TERAPIA INTENSIVA DE UM HOSPITAL PÚBLICO DE NÍVEL TERCIÁRIO, DISTRITO FEDERAL, 2008.. Dissertação apresentada ao