Diagrama de VoronoiINF2604 – Geometria Computacional
Waldemar [email protected]
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
Top Related