• Nenhum resultado encontrado

Geometria Computacional

N/A
N/A
Protected

Academic year: 2022

Share "Geometria Computacional"

Copied!
54
0
0

Texto

(1)

Geometria Computacional

Aula 10

Algoritmo de Fortune: comentários finais Sec 7.2 do livro de de Berg e outros

Triangulação de Delaunay

Secs 9.1 e 9.2 do livro de de Berg e outros

(2)

Algoritmo de Fortune

Fortune(P,n)

1 Q ←FilaDeEventos(P,n) P ord. porY-coordenada

2 CrieABB(T) ED para a linha da praia

3 CrieDCEL(V) ED paraVor(P)

4 enquanto nãoVazia(Q)faça 5 q ←RemovaMax(Q) 6 se q é um evento-ponto

7 entãoTrataEventoPonto(q,T,Q,V) 8 senão TrataEventoCírculo(q,T,Q,V) 9 FinalizeVoronoi(V,T) adiciona o vértice

10 devolvaV

(3)

Casos degenerados

Ponto p deP exatamente abaixo de um ponto de quebra:

◮ qual arco está acima de p?

pode-se escolher qualquer um dos dois candidatos.

(4)

Casos degenerados

Ponto p deP exatamente abaixo de um ponto de quebra:

◮ qual arco está acima de p?

pode-se escolher qualquer um dos dois candidatos.

O que está acontecendo no desenho do diagrama?

(5)

Casos degenerados

Ponto p deP exatamente abaixo de um ponto de quebra:

◮ qual arco está acima de p?

pode-se escolher qualquer um dos dois candidatos.

O que está acontecendo no desenho do diagrama?

O que exatamente acontece na sequência, se seguirmos o acima?

(6)

Casos degenerados

Ponto p deP exatamente abaixo de um ponto de quebra:

◮ qual arco está acima de p?

pode-se escolher qualquer um dos dois candidatos.

O que está acontecendo no desenho do diagrama?

O que exatamente acontece na sequência, se seguirmos o acima?

Tripla de arcos de pontos colineares:

◮ definem um círculo?

não, logo não geram um evento-círculo.

(7)

Casos degenerados

Eventos com mesma Y-coordenada:

(8)

Casos degenerados

Eventos com mesma Y-coordenada:

Possibilidades:

◮ dois pontos deP com mesmaY-coordenada

◮ um ponto de P com a mesmaY-coordenada que o ponto de um evento-círculo

◮ dois pontos de evento-círculo com mesma Y-coordenada O que significam no desenho?

(9)

Casos degenerados

Eventos com mesma Y-coordenada:

Possibilidades:

◮ dois pontos deP com mesmaY-coordenada

◮ um ponto de P com a mesmaY-coordenada que o ponto de um evento-círculo

◮ dois pontos de evento-círculo com mesma Y-coordenada O que significam no desenho?

◮ seX-coordenadas são distintas,

podem ser tratados numa ordem arbitrária, exceto quando estes são os primeiros,

quando é necessário um tratamento diferente.

(10)

Casos degenerados

Eventos com mesma Y-coordenada:

Possibilidades:

◮ dois pontos deP com mesmaY-coordenada

◮ um ponto de P com a mesmaY-coordenada que o ponto de um evento-círculo

◮ dois pontos de evento-círculo com mesma Y-coordenada O que significam no desenho?

◮ seX-coordenadas são distintas,

podem ser tratados numa ordem arbitrária, exceto quando estes são os primeiros,

quando é necessário um tratamento diferente.

◮ seX-coordenadas coincidem...

(11)

Casos degenerados

Eventos com mesma Y-coordenada:

◮ seX-coordenadas coincidem,

podem ser tratados numa ordem arbitrária, exigindo eventualmente uma limpeza final.

(12)

Casos degenerados

Eventos com mesma Y-coordenada:

◮ seX-coordenadas coincidem,

podem ser tratados numa ordem arbitrária, exigindo eventualmente uma limpeza final.

Possibilidades:

◮ dois pontos de P coincidentes

◮ um ponto deP que coincide com o ponto de um evento-círculo O que significa no desenho do diagrama?

(13)

Casos degenerados

Eventos com mesma Y-coordenada:

◮ seX-coordenadas coincidem,

podem ser tratados numa ordem arbitrária, exigindo eventualmente uma limpeza final.

Possibilidades:

◮ dois pontos de P coincidentes

◮ um ponto deP que coincide com o ponto de um evento-círculo O que significa no desenho do diagrama?

◮ dois pontos de evento-círculo coincidentes O que significa no desenho do diagrama?

(14)

Consumo de tempo

TrataEventoPonto(q,T,Q,V) 1 se T =∅

2 entãoInsere(T,q)

3 senão f ←Busque(T,q) folha deT do arco acima deq

4 i ←evento_circ(f)

5 sei 6=NIL

6 entãoRemove(Q,i)

7 (u,f,v)←Quebre_e_Insira(T,f,q) 8 NovaAresta(V,u,NIL,v,NIL)

9 AtualizaEventos(Q,T,f) Consumo de tempo: O(lgn).

(15)

Consumo de tempo

TrataEventoPonto(q,T,Q,V) Consumo de tempo: O(lgn).

TrataEventoCírculo(q,T,Q,V)

1 f ←folha(q) folha deT do arco associado aq

2 (pred,suc,novo)←Remove(T,f) 3 AtualizaEventos(Q,T,f)

4 c ←centro(q) centro do círculo associado aq

5 u ←NovoVértice(V,c)

6 AdicionaExtremo(V,u,aresta(pred),aresta(suc)) 7 NovaAresta(V,novo,NIL,NIL,u)

Consumo de tempo: O(lgn).

(16)

Consumo de tempo

TrataEventoPonto(q,T,Q,V) TrataEventoCírculo(q,T,Q,V) Consumo de tempo: O(lgn).

Fortune(P,n)

1 Q ←FilaDeEventos(P,n) P ord. porY-coordenada

2 CrieABB(T) ED para a linha da praia

3 CrieDCEL(V) ED paraVor(P)

4 enquanto nãoVazia(Q) faça 5 q ←RemovaMin(Q) 6 se q é um evento-ponto

7 entãoTrataEventoPonto(q,T,Q,V) 8 senão TrataEventoCírculo(q,T,Q,V) 9 FinalizeVoronoi(V,T) adiciona o vértice

10 devolvaV

Consumo de tempo: O(nlgn).

(17)

Cuidados numéricos nos cálculos

Como lidar com erros numéricos nos cálculos dos nossos algoritmos?

(18)

Cuidados numéricos nos cálculos

Como lidar com erros numéricos nos cálculos dos nossos algoritmos?

Se possível, fique nos inteiros.

Exemplo: cálculo do par mais próximo.

(19)

Cuidados numéricos nos cálculos

Como lidar com erros numéricos nos cálculos dos nossos algoritmos?

Se possível, fique nos inteiros.

Exemplo: cálculo do par mais próximo.

Toda comparação “=” deve ser feita permitindo um erro de atéǫ, para um ǫpequeno, por exemplo, ǫ=109.

Exemplo: em vez de 1 sea=b 2 então· · · 3 senão· · ·

(20)

Cuidados numéricos nos cálculos

Como lidar com erros numéricos nos cálculos dos nossos algoritmos?

Se possível, fique nos inteiros.

Exemplo: cálculo do par mais próximo.

Toda comparação “=” deve ser feita permitindo um erro de atéǫ, para um ǫpequeno, por exemplo, ǫ=109.

Exemplo: em vez de 1 sea=b 2 então· · · 3 senão· · · escreva

1 seabs(a−b)≤ǫ 2 então· · · 3 senão· · ·

(21)

Cuidados numéricos nos cálculos

Similarmente, comparações “<” ou “≤” devem ser feita permitindo um erro de até ǫ, para, por exemplo, ǫ=109. Exemplo: em vez de

1 sea<b ✄se a−b<0 2 então· · ·

3 senão· · ·

(22)

Cuidados numéricos nos cálculos

Similarmente, comparações “<” ou “≤” devem ser feita permitindo um erro de até ǫ, para, por exemplo, ǫ=109. Exemplo: em vez de

1 sea<b ✄se a−b<0 2 então· · ·

3 senão· · · escreva

1 sea−b < ǫ 2 então· · · 3 senão· · ·

(23)

Geometria Computacional

Aula 10

Triangulação de Delaunay

Secs 9.1 e 9.2 do livro de de Berg e outros

(24)

Relevos

Medimos a altura de vários pontos em um terreno.

(25)

Relevos

Medimos a altura de vários pontos em um terreno.

Queremos estimar o relevo do terreno por uma superfície.

Como fazer?

(26)

Relevos

Medimos a altura de vários pontos em um terreno.

Queremos estimar o relevo do terreno por uma superfície.

Como fazer?

Triangularizamos a projeção no plano e...

(27)

Relevos

Medimos a altura de vários pontos em um terreno.

Queremos estimar o relevo do terreno por uma superfície.

Como fazer?

Triangularizamos a projeção no plano e levantamos!

(28)

Qual triangulação é melhor?

23 28 36 20 19 1240

1000 990 890 0

0 10

4

6 1008

980

(29)

Qual triangulação é melhor?

23 28 36 20 19 1240

1000

990 890 0

0 10

4

6 1008

980

(30)

Vetor de ângulos

P: conjunto de pontos T: triangulação de P

m: número de triângulos emT

A(T): vetor de ângulos (α1, . . . , α3m) deT onde

A(T): os αi são os ângulos internos dos mtriângulos de T, A(T): em ordem não-decrescente.

(31)

Vetor de ângulos

P: conjunto de pontos T: triangulação de P

m: número de triângulos emT

A(T): vetor de ângulos (α1, . . . , α3m) deT onde

A(T): os αi são os ângulos internos dos mtriângulos de T, A(T): em ordem não-decrescente.

Seja T uma outra triangulação de P. Escrevemos A(T)>A(T)

seA(T) é lexicograficamente maior que A(T).

(32)

Vetor de ângulos

P: conjunto de pontos T: triangulação de P

m: número de triângulos emT

A(T): vetor de ângulos (α1, . . . , α3m) deT onde

A(T): os αi são os ângulos internos dos mtriângulos de T, A(T): em ordem não-decrescente.

Seja T uma outra triangulação de P. Escrevemos A(T)>A(T)

seA(T) é lexicograficamente maior que A(T).

T é ângulo-ótima

seA(T)≥A(T) para toda triangulaçãoT deP.

(33)

Tamanho de uma triangulação

Seja P um conjunto den pontos no plano, não todos colineares.

Seja k o número de vértices

na fronteira do fecho convexo dos pontos deP.

(34)

Tamanho de uma triangulação

Seja P um conjunto den pontos no plano, não todos colineares.

Seja k o número de vértices

na fronteira do fecho convexo dos pontos deP. Teorema: Toda triangulação deP tem

2n−2−k triângulos e 3n−3−k arestas.

(35)

Tamanho de uma triangulação

Seja P um conjunto den pontos no plano, não todos colineares.

Seja k o número de vértices

na fronteira do fecho convexo dos pontos deP. Teorema: Toda triangulação deP tem

2n−2−k triângulos e 3n−3−k arestas.

Prova: Sejat o número de triângulos e

m o número de arestas de uma triangulação de P.

(36)

Tamanho de uma triangulação

Seja P um conjunto den pontos no plano, não todos colineares.

Seja k o número de vértices

na fronteira do fecho convexo dos pontos deP. Teorema: Toda triangulação deP tem

2n−2−k triângulos e 3n−3−k arestas.

Prova: Sejat o número de triângulos e

m o número de arestas de uma triangulação de P. Então 3t+k =2m e portantot = 2m3k.

(37)

Tamanho de uma triangulação

Seja P um conjunto den pontos no plano, não todos colineares.

Seja k o número de vértices

na fronteira do fecho convexo dos pontos deP. Teorema: Toda triangulação deP tem

2n−2−k triângulos e 3n−3−k arestas.

Prova: Sejat o número de triângulos e

m o número de arestas de uma triangulação de P. Então 3t+k =2m e portantot = 2m3k.

Pela fórmula de Euler, temos que n−m+ (t+1) =2.

(38)

Tamanho de uma triangulação

Seja P um conjunto den pontos no plano, não todos colineares.

Seja k o número de vértices

na fronteira do fecho convexo dos pontos deP. Teorema: Toda triangulação deP tem

2n−2−k triângulos e 3n−3−k arestas.

Prova: Sejat o número de triângulos e

m o número de arestas de uma triangulação de P. Então 3t+k =2m e portantot = 2m3k.

Pela fórmula de Euler, temos que n−m+ (t+1) =2.

Portanto, n−m+2m3k +1=n−m+3k +1=2, que implica que m=3n−3−k e t =2n−2−k.

(39)

Triangulação legal

T: triangulação da coleçãoP de pontos do plano.

e: aresta interna deT cujos triângulos deT

que a compartilham formam um quadrilátero convexo (a aresta verde não satisfaz esta condição)

(40)

Triangulação legal

T: triangulação da coleçãoP de pontos do plano.

e: aresta interna deT cujos triângulos deT

que a compartilham formam um quadrilátero convexo f: outra diagonal doquadrilátero dee

1, . . . , α6}: ângulos dos∆s de e {β1, . . . , β6}: ângulos dos∆s def e é ilegal seminαi <minβj

(41)

Triangulação legal

T: triangulação da coleçãoP de pontos do plano.

e: aresta interna deT cujos triângulos deT

que a compartilham formam um quadrilátero convexo f: outra diagonal doquadrilátero dee

1, . . . , α6}: ângulos dos∆s de e {β1, . . . , β6}: ângulos dos∆s def e é ilegal seminαi <minβj T é legalse não tem arestas ilegais

(42)

Triangulação legal

e: aresta ilegal deT

(43)

Triangulação legal

e: aresta ilegal deT

T: triangulação obtida trocando-se e pelaoutra diagonal.

(44)

Triangulação legal

e: aresta ilegal deT

T: triangulação obtida trocando-se e pelaoutra diagonal.

Vale que A(T)>A(T).

(45)

Triangulação legal

e: aresta ilegal deT

T: triangulação obtida trocando-se e pelaoutra diagonal.

Vale que A(T)>A(T). Então existe triangulação legal!

(46)

Um pouco de geometria

a

b p

q

∠apb = ∠aqb

Prova feita na aula.

(47)

Um pouco de geometria

a a

b b

p

p

q q

r

s

∠arb < ∠apb = ∠aqb < ∠asb

(48)

Um pouco de geometria

a a

b b

p p q q

r

s

∠arb < ∠apb = ∠aqb < ∠asb

(49)

Aresta ilegal

e é ilegal seminαi <minβj Aresta interna e =pipj e

pk e p pontas dos triângulos que compartilham e.

pi

pj

pk p

e é ilegal sse

p está no interior do círculo determinado porpipjpk. Prova feita na aula.

(50)

Triangulação de Delaunay

O grafo de DelaunayDG(P) é o grafo plano que tem como conjunto de vértices os pontos de P e uma aresta entre os pontos u e v, representada pelo segmento uv, seV(u) e V(v) compartilham uma aresta deVor(P).

(51)

Triangulação de Delaunay

O grafo de DelaunayDG(P) é o grafo plano que tem como conjunto de vértices os pontos de P e uma aresta entre os pontos u e v, representada pelo segmento uv, seV(u) e V(v) compartilham uma aresta deVor(P).

P é a coleção de pontos negros.

As linhas vermelhas são odiagrama de Voronoi deP.

(52)

Triangulação de Delaunay

Grafo de Delaunay DG(P): grafo cujo conjunto de vértices éP e uv é uma aresta sseV(u) e V(v)compartilham aresta de Vor(P).

Qualquer triangulação de DG(P)é chamada de triangulação de Delaunay.

(53)

Triangulação de Delaunay

Grafo de Delaunay DG(P): grafo cujo conjunto de vértices éP e uv é uma aresta sseV(u) e V(v)compartilham aresta de Vor(P).

Qualquer triangulação de DG(P)é chamada de triangulação de Delaunay.

Se P está em posição geral, então os vértices deVor(P)têm grau 3 e DG(P) já é triangulação: é únicatriangulação de DelaunaydeP.

(54)

Triangulação de Delaunay

Grafo de Delaunay DG(P): grafo cujo conjunto de vértices éP e uv é uma aresta sseV(u) e V(v)compartilham aresta de Vor(P).

Qualquer triangulação de DG(P)é chamada de triangulação de Delaunay.

Teorema. Uma triangulação de P é legal se e somente se é uma triangulação de DelaunaydeP. Provaremos esse teorema na próxima aula!

Referências

Documentos relacionados

Figura 8 – Isocurvas com valores da Iluminância média para o período da manhã na fachada sudoeste, a primeira para a simulação com brise horizontal e a segunda sem brise

(Radamés Gnattali em depoimento ao Museu da Imagem e do som, no Rio de Janeiro, em agosto de 1985). No cinema mudo era comum a execução de um repertório familiar,

1 -Bolsa coletora drenável: serve para coletar as fezes ou a urina.. 2 -Clipe

Diversos estudos e trabalhos foram realizados próximos às desembocaduras dos principais rios brasileiros, como os rios São Francisco, Jequitinhonha, Paraíba do Sul

O verso de II Samuel 7.10 nos mostra que este é o ano em que o Eterno preparará um lugar para seu povo Israel, e isso está relacionado não somente com a herança física como também

No segundo capítulo, intitulado “Does beak volume and bite force influence song structure of sympatric species of Neotropical seedeaters finches

Precisamos nos dispor para confiar em Deus, trabalharmos no treinamento dos novos evangelistas e sermos continuamente desafiados na obra missionária.. D isponhamo-nos para “esperar

Periodicamente, elas lançam as suas promoções e ofertas nas redes sociais e, sendo assim, essas mídias são ferramentas de extrema importância para os resultados de um negócio.. Com