INF2604 { Geometria Computacional Waldemar Celes

Post on 12-Jul-2022

3 views 0 download

Transcript of INF2604 { Geometria Computacional Waldemar Celes

Diagrama de VoronoiINF2604 – Geometria Computacional

Waldemar Celesceles@inf.puc-rio.br

Departamento de Informatica, PUC-Rio

W. Celes Diagrama de Voronoi 1

Diagrama de Voronoi

Determinacao de proximidadeI Regioes de Voronoi delimitam areas

cujo ponto associado e mais proximo

Regiao de Voronoi de um ponto p

Vor(p) = x ∈ R2 | ‖x− p‖ ≤ ‖x− q‖ ∀ q ∈ S

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011W. Celes Diagrama de Voronoi 2

Diagrama de Voronoi

Diagrama considerando apenas dois pontos p e q

I Regioes sao semiplanos

H(p,q) = x ∈ R2 | ‖x− p‖ ≤ ‖x− q‖

W. Celes Diagrama de Voronoi 3

Regioes de Voronoi

Teorema

I A regiao de Voronoi Vor(p) e a intersecao de todos ossemiplanos H(p,q), onde q e qualquer outro ponto de S .

Teorema fundamental da geometria discretaI A intersecao de um conjunto de objetos convexos e convexo

I Prova: considere Xi um conjunto de objeto convexos e X aintersecao desses conjuntos. Considere pontos arbitrarios p e qde X . Por definicao de intersecao, estes pontos tambempertencem a qualquer Xi e, como sao convexo, pq tambempertencem a Xi e, consequentemente, a X .

Teorema

I Todas as regioes de Voronoi sao convexas

W. Celes Diagrama de Voronoi 4

Regioes de Voronoi

Teorema

I A regiao de Voronoi Vor(p) e a intersecao de todos ossemiplanos H(p,q), onde q e qualquer outro ponto de S .

Teorema fundamental da geometria discretaI A intersecao de um conjunto de objetos convexos e convexo

I Prova: considere Xi um conjunto de objeto convexos e X aintersecao desses conjuntos. Considere pontos arbitrarios p e qde X . Por definicao de intersecao, estes pontos tambempertencem a qualquer Xi e, como sao convexo, pq tambempertencem a Xi e, consequentemente, a X .

Teorema

I Todas as regioes de Voronoi sao convexas

W. Celes Diagrama de Voronoi 4

Regioes de Voronoi

Teorema

I A regiao de Voronoi Vor(p) e a intersecao de todos ossemiplanos H(p,q), onde q e qualquer outro ponto de S .

Teorema fundamental da geometria discretaI A intersecao de um conjunto de objetos convexos e convexo

I Prova: considere Xi um conjunto de objeto convexos e X aintersecao desses conjuntos. Considere pontos arbitrarios p e qde X . Por definicao de intersecao, estes pontos tambempertencem a qualquer Xi e, como sao convexo, pq tambempertencem a Xi e, consequentemente, a X .

Teorema

I Todas as regioes de Voronoi sao convexas

W. Celes Diagrama de Voronoi 4

Regioes de Voronoi

Teorema

I A regiao de Voronoi Vor(p) e a intersecao de todos ossemiplanos H(p,q), onde q e qualquer outro ponto de S .

Teorema fundamental da geometria discretaI A intersecao de um conjunto de objetos convexos e convexo

I Prova: considere Xi um conjunto de objeto convexos e X aintersecao desses conjuntos. Considere pontos arbitrarios p e qde X . Por definicao de intersecao, estes pontos tambempertencem a qualquer Xi e, como sao convexo, pq tambempertencem a Xi e, consequentemente, a X .

Teorema

I Todas as regioes de Voronoi sao convexas

W. Celes Diagrama de Voronoi 4

Vertices de Voronoi

Considere 3 pontos p, r, rI Qual o diagrama de Voronoi?

I Formados pelas linhas perpendiculares bissetoras dossegmentos pq, qr, rp

I Necessariamente se encontram em um unico pontoI Este ponto e o centro do cırculo que passa pelos 3 pontos

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 5

Vertices de Voronoi

Considere 3 pontos p, r, rI Qual o diagrama de Voronoi?

I Formados pelas linhas perpendiculares bissetoras dossegmentos pq, qr, rp

I Necessariamente se encontram em um unico pontoI Este ponto e o centro do cırculo que passa pelos 3 pontos

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 5

Vertices de Voronoi

Diagrama de Voronoi com 4 pontos

I Pontos cocirculares ou nao

Conjunto de pontos nao degenerados

I Nao existem 4 ou mais vertices cocirculares

I Todos os vertices de Voronoi tem grau 3

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 6

Vertices de Voronoi

Diagrama de Voronoi com 4 pontos

I Pontos cocirculares ou nao

Conjunto de pontos nao degenerados

I Nao existem 4 ou mais vertices cocirculares

I Todos os vertices de Voronoi tem grau 3

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 6

Vertices de Voronoi

Teorema

I Dado um conjunto de pontos S e seu respectivo diagrama deVoronoi Vor(S), um ponto v e vertice de Voronoi sse existeum cırculo com centro em v que passa por 3 pontos de S , enao existe nenhum ponto de S interior a este cıculo.

ExercıcioI Para n ≥ 3:

I Quando o diagrama de Voronoi teria zero vertices?I Quando o diagrama de Voronoi teria um vertices?

W. Celes Diagrama de Voronoi 7

Vertices de Voronoi

Teorema

I Dado um conjunto de pontos S e seu respectivo diagrama deVoronoi Vor(S), um ponto v e vertice de Voronoi sse existeum cırculo com centro em v que passa por 3 pontos de S , enao existe nenhum ponto de S interior a este cıculo.

ExercıcioI Para n ≥ 3:

I Quando o diagrama de Voronoi teria zero vertices?

I Quando o diagrama de Voronoi teria um vertices?

W. Celes Diagrama de Voronoi 7

Vertices de Voronoi

Teorema

I Dado um conjunto de pontos S e seu respectivo diagrama deVoronoi Vor(S), um ponto v e vertice de Voronoi sse existeum cırculo com centro em v que passa por 3 pontos de S , enao existe nenhum ponto de S interior a este cıculo.

ExercıcioI Para n ≥ 3:

I Quando o diagrama de Voronoi teria zero vertices?I Quando o diagrama de Voronoi teria um vertices?

W. Celes Diagrama de Voronoi 7

Arestas de Voronoi

Tipos de arestas

I Finitas

I Semiinfinitas

Quando todos pontos sao colineares

I Arestas sao infinitas

I Arestas sao desconectadasFigura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 8

Arestas de Voronoi

Tipos de arestas

I Finitas

I Semiinfinitas

Quando todos pontos sao colineares

I Arestas sao infinitas

I Arestas sao desconectadasFigura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 8

Diagrama de Voronoi

Relacao linear entre numero de vertices e numero de arestasI Dados S com n ≥ 3 pontos, o diagrama de Voronoi de S ,

Vor(S):I Tem no maximo 2n − 5 verticesI Tem no maximo 3n − 6 arestas

I Prova:I Similar a grafo planar onde vertice no infinito e representado

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 9

Diagrama de Voronoi

Relacao linear entre numero de vertices e numero de arestasI Dados S com n ≥ 3 pontos, o diagrama de Voronoi de S ,

Vor(S):I Tem no maximo 2n − 5 verticesI Tem no maximo 3n − 6 arestasI Prova:

I Similar a grafo planar onde vertice no infinito e representado

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 9

Construcao do diagrama de Voronoi

Algoritmo incremental

I Dado um diagrama inicialI Acrescenta um ponto p no diagrama

I Localiza a regiao de Voronoi Vor(p1) que contem pI Acha bissetora de pp1

I Acha intersecao com arestas da regiao: x1 e x2I Acha bissetora de pp2

I Ate fechar regiao Vor(p)

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 10

Construcao do diagrama de Voronoi

Algoritmo incremental

I Complexidade O(n2)

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 11

Diagrama de Voronoi

Grafo dualI Arcos conectam pontos proximos

I Pontos cujas regioes de Voronoi compartilham uma aresta

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 12

Diagrama de Voronoi

Retificacao dos arcos em arestas conectando pontos

I Arestas nao se cruzam

I Subdivisao resultante e uma triangulacao de S

I Triangulacao e de DelaunayFigura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 13

Diagrama de Voronoi

Retificacao dos arcos em arestas conectando pontos

I Arestas nao se cruzam

I Subdivisao resultante e uma triangulacao de S

I Triangulacao e de DelaunayFigura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 13

Triangulacao de Delaunay

Algoritmo incrementalI Explora dualidade com diagrama de Voronoi

I Suponha uma triangulacao de Delaunay Del(Sk)I Adiciona pI Marca triangulos cujo circuncırculos contem pI Elimina diagonais do polıgono marcadoI Insere arestas de p aos vertices desse polıgono

Figura extraıda de Discrete and Computational Geometry, Devadoss and Rourke, 2011

W. Celes Diagrama de Voronoi 14

Diagrama de Voronoi Centroidal

CVT – Diagrama de Voronoi Centroidal

I Pontos geradores pi representam centros de massasdas correspondentes regioes de Voronoi Vor(pi )

I Regioes tendem a ser hexaedros regulares

W. Celes Diagrama de Voronoi 15

Diagrama de Voronoi Centroidal

Algoritmo de LloydI Dado um conjunto inicial de geradores S

I Gera o diagrama de Voronoi correspondente

I Itera ate convergenciaI Move cada ponto gerador para o centro de massa da sua regiaoI Regera o diagrama de Voronoi considerando os novos p

ontos

W. Celes Diagrama de Voronoi 16

Diagrama de Voronoi Centroidal

Algoritmo de LloydI Dado um conjunto inicial de geradores S

I Gera o diagrama de Voronoi correspondente

I Itera ate convergenciaI Move cada ponto gerador para o centro de massa da sua regiaoI Regera o diagrama de Voronoi considerando os novos p

ontos

W. Celes Diagrama de Voronoi 16

Diagrama de Voronoi Centroidal

Algoritmo de LloydI Dado um conjunto inicial de geradores S

I Gera o diagrama de Voronoi correspondente

I Itera ate convergenciaI Move cada ponto gerador para o centro de massa da sua regiaoI Regera o diagrama de Voronoi considerando os novos p

ontos

W. Celes Diagrama de Voronoi 16

Diagrama de Voronoi Centroidal

Algoritmo de LloydI Dado um conjunto inicial de geradores S

I Gera o diagrama de Voronoi correspondente

I Itera ate convergenciaI Move cada ponto gerador para o centro de massa da sua regiaoI Regera o diagrama de Voronoi considerando os novos p

ontos

W. Celes Diagrama de Voronoi 16

Diagrama de Voronoi discretizado

Diagrama de Voronoi em um domınio discretizado

I Exemplo: resolucao de uma tela

Metodos

I Construcao por renderizacao

I Construcao por dilatacao iterativa

W. Celes Diagrama de Voronoi 17

Diagrama de Voronoi discretizado

Diagrama de Voronoi em um domınio discretizado

I Exemplo: resolucao de uma tela

Metodos

I Construcao por renderizacao

I Construcao por dilatacao iterativa

W. Celes Diagrama de Voronoi 17

Diagrama de Voronoi discretizado

Construcao por renderizacao de cones

I Vertices dos cones posicionados nos pontos geradores

I Vista ortografica de cima

I Teste de visizilidade (depth test) garante corretude

W. Celes Diagrama de Voronoi 18

Diagrama de Voronoi discretizado

Construcao por renderizacao de cones

I Vertices dos cones posicionados nos pontos geradores

I Vista ortografica de cima

I Teste de visizilidade (depth test) garante corretude

W. Celes Diagrama de Voronoi 18

Diagrama de Voronoi discretizado

Construcao por dilatacao iterativa

I Cada ponto gerador e preenchido no domınio discretoI A cada iteracao, visita todos os pixels nao preenchidos

I Preenche pixel com atributo de vizinho preenchido, se houverI Repete o processo ate que todos os pixels estejam preenchidos

O(n) iteracoes

I Numeros de iteracoes proporcional ao numero de pixels

W. Celes Diagrama de Voronoi 19

Diagrama de Voronoi discretizado

Construcao por dilatacao iterativa

I Cada ponto gerador e preenchido no domınio discretoI A cada iteracao, visita todos os pixels nao preenchidos

I Preenche pixel com atributo de vizinho preenchido, se houverI Repete o processo ate que todos os pixels estejam preenchidos

O(n) iteracoes

I Numeros de iteracoes proporcional ao numero de pixels

W. Celes Diagrama de Voronoi 19

Algoritmo jump flooding

Propagacao completa com log n iteracoesI Mas pode apresentar erros

I Pequenos e contornaveis na maior parte dos casos

W. Celes Diagrama de Voronoi 20

Algoritmo jump flooding

Preenchimento convencional

(x , y) −→ (x + i , y + j) | i , j ∈ {−1, 0, 1}

Preenchimento com saltos (jumps)

(x , y) −→ (x + i , y + j) | i , j ∈ {−k, 0, k}

W. Celes Diagrama de Voronoi 21

Algoritmo jump flooding

Preenchimento convencional

(x , y) −→ (x + i , y + j) | i , j ∈ {−1, 0, 1}

Preenchimento com saltos (jumps)

(x , y) −→ (x + i , y + j) | i , j ∈ {−k, 0, k}

W. Celes Diagrama de Voronoi 21

Algoritmo jump flooding

EstrategiaI Reduzir o passo a metade a cada iteracao

I Cada pixel recebe informacoes de 8 outras localizacoesI Mais a sua propria informacao

I Cada pixel armazena a informacao da menor distancia

W. Celes Diagrama de Voronoi 22

Algoritmo jump flooding

AlgoritmoI Inıcio

I Semente com informacoes [s, pos(s)]I Nao semente com informacoes [nil , nil ]

I A cada iteracaoI Informacoes dos pixels sao atualizadas

I Escolhe-se a informacao a menor distancia

W. Celes Diagrama de Voronoi 23

Algoritmo jump flooding

Possıveis errosI No exemplo, p deveria ser r

I Mas p′ e p′′ nao tem r como menor distancia

W. Celes Diagrama de Voronoi 24

Algoritmo jump flooding

Variacoes visando reduzir errosI JFA + 1

I Uma passada extra com passo igual a 1 no final

I JFA + 2I Duas passadas extras no final com passos 2 e 1

I JFA + log n ou JFA2

I log n passadas adicionais

I JFA + 2 sementes (ou +n sementes)I Armazena os 2 (ou n) mais proximos

I Aumenta uso de memoriaI Aumenta processamento para escolha do mınimo

W. Celes Diagrama de Voronoi 25

Algoritmo jump flooding

Variacoes visando reduzir errosI JFA + 1

I Uma passada extra com passo igual a 1 no final

I JFA + 2I Duas passadas extras no final com passos 2 e 1

I JFA + log n ou JFA2

I log n passadas adicionais

I JFA + 2 sementes (ou +n sementes)I Armazena os 2 (ou n) mais proximos

I Aumenta uso de memoriaI Aumenta processamento para escolha do mınimo

W. Celes Diagrama de Voronoi 25

Algoritmo jump flooding

Variacoes visando reduzir errosI JFA + 1

I Uma passada extra com passo igual a 1 no final

I JFA + 2I Duas passadas extras no final com passos 2 e 1

I JFA + log n ou JFA2

I log n passadas adicionais

I JFA + 2 sementes (ou +n sementes)I Armazena os 2 (ou n) mais proximos

I Aumenta uso de memoriaI Aumenta processamento para escolha do mınimo

W. Celes Diagrama de Voronoi 25

Algoritmo jump flooding

Variacoes visando reduzir errosI JFA + 1

I Uma passada extra com passo igual a 1 no final

I JFA + 2I Duas passadas extras no final com passos 2 e 1

I JFA + log n ou JFA2

I log n passadas adicionais

I JFA + 2 sementes (ou +n sementes)I Armazena os 2 (ou n) mais proximos

I Aumenta uso de memoriaI Aumenta processamento para escolha do mınimo

W. Celes Diagrama de Voronoi 25

Trabalho

Implemente um algoritmo para construir uma triangulacao deDelaunay ou um diagrama de Voronoi considerando um conjuntode pontos em posicoes arbitrarias (sem degeneracao).

I Entrada: conjunto de pontosx0 y0

x1 y1

...

I SaıdaI Triangulacao de Delaunay: incidencia dos triangulos

vi vj vk

...

I Diagrama de Voronoi: coordenadas das arestasI Coordenadas homogeneas

x0 y0 w0 x1 y1 w1

...

W. Celes Diagrama de Voronoi 26