inf2604 { geometria computacional waldemar celes

46
Diagrama de Voronoi INF2604 – Geometria Computacional Waldemar Celes [email protected] Departamento de Inform´ atica, PUC-Rio W. Celes Diagrama de Voronoi 1

Upload: others

Post on 12-Jul-2022

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: INF2604 { Geometria Computacional Waldemar Celes

Diagrama de VoronoiINF2604 – Geometria Computacional

Waldemar [email protected]

Departamento de Informatica, PUC-Rio

W. Celes Diagrama de Voronoi 1

Page 2: INF2604 { Geometria Computacional Waldemar Celes

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

Page 3: INF2604 { Geometria Computacional Waldemar Celes

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

Page 4: INF2604 { Geometria Computacional Waldemar Celes

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

Page 5: INF2604 { Geometria Computacional Waldemar Celes

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

Page 6: INF2604 { Geometria Computacional Waldemar Celes

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

Page 7: INF2604 { Geometria Computacional Waldemar Celes

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

Page 8: INF2604 { Geometria Computacional Waldemar Celes

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

Page 9: INF2604 { Geometria Computacional Waldemar Celes

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

Page 10: INF2604 { Geometria Computacional Waldemar Celes

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

Page 11: INF2604 { Geometria Computacional Waldemar Celes

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

Page 12: INF2604 { Geometria Computacional Waldemar Celes

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

Page 13: INF2604 { Geometria Computacional Waldemar Celes

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

Page 14: INF2604 { Geometria Computacional Waldemar Celes

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

Page 15: INF2604 { Geometria Computacional Waldemar Celes

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

Page 16: INF2604 { Geometria Computacional Waldemar Celes

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

Page 17: INF2604 { Geometria Computacional Waldemar Celes

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

Page 18: INF2604 { Geometria Computacional Waldemar Celes

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

Page 19: INF2604 { Geometria Computacional Waldemar Celes

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

Page 20: INF2604 { Geometria Computacional Waldemar Celes

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

Page 21: INF2604 { Geometria Computacional Waldemar Celes

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

Page 22: INF2604 { Geometria Computacional Waldemar Celes

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

Page 23: INF2604 { Geometria Computacional Waldemar Celes

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

Page 24: INF2604 { Geometria Computacional Waldemar Celes

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

Page 25: INF2604 { Geometria Computacional Waldemar Celes

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

Page 26: INF2604 { Geometria Computacional Waldemar Celes

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

Page 27: INF2604 { Geometria Computacional Waldemar Celes

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

Page 28: INF2604 { Geometria Computacional Waldemar Celes

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

Page 29: INF2604 { Geometria Computacional Waldemar Celes

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

Page 30: INF2604 { Geometria Computacional Waldemar Celes

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

Page 31: INF2604 { Geometria Computacional Waldemar Celes

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

Page 32: INF2604 { Geometria Computacional Waldemar Celes

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

Page 33: INF2604 { Geometria Computacional Waldemar Celes

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

Page 34: INF2604 { Geometria Computacional Waldemar Celes

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

Page 35: INF2604 { Geometria Computacional Waldemar Celes

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

Page 36: INF2604 { Geometria Computacional Waldemar Celes

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

Page 37: INF2604 { Geometria Computacional Waldemar Celes

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

Page 38: INF2604 { Geometria Computacional Waldemar Celes

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

Page 39: INF2604 { Geometria Computacional Waldemar Celes

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

Page 40: INF2604 { Geometria Computacional Waldemar Celes

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

Page 41: INF2604 { Geometria Computacional Waldemar Celes

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

Page 42: INF2604 { Geometria Computacional Waldemar Celes

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

Page 43: INF2604 { Geometria Computacional Waldemar Celes

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

Page 44: INF2604 { Geometria Computacional Waldemar Celes

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

Page 45: INF2604 { Geometria Computacional Waldemar Celes

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

Page 46: INF2604 { Geometria Computacional Waldemar Celes

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