Diagrama de Voronoi João Comba

Documentos relacionados
Geometria Computacional VII: Diagramas de Voronoi

Interval Trees, Priority Search Trees, Segment Trees. João Comba. Pesquisas intervalares sobre segmentos de reta

Geometria Computacional: Fecho convexo

Introdução ao Processamento e Síntese de imagens - Preenchimento de Polígonos

Árvores & Árvores Binárias

Árvore Vermelho-Preta. Estrutura de Dados II Jairo Francisco de Souza

Geometria Computacional

Geometria Computacional - Notas de aulas. André Guedes

Árvores AVL e Árvores B. Jeane Melo

Interseção de Semiplanos

GGM Geometria Analítica e Cálculo Vetorial Geometria Analítica Básica 20/12/2012- GGM - UFF Dirce Uesu

7. Problemas de Proximidade: Diagramas de Voronoi

DEPARTAMENTO DE MATEMÁTICA INFORMÁTICA DISCIPLINA:

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved.

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

Portal OBMEP. Material Teórico - Módulo Cônicas. Terceiro Ano do Ensino Médio

1 Espaço Euclideano e sua Topologia

GGM Geometria Analítica I 19/04/2012- Turma M1 Dirce Uesu

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

Teoria dos Grafos Aula 8

9.º Ano. Planificação Matemática 16/17. Escola Básica Integrada de Fragoso 9.º Ano

Prova Didática Grafos: Árvores Geradoras e Caminhos Mínimos, Análise de Complexidade

Professor: Anselmo Montenegro Conteúdo (aula 6): - Fecho Convexo 2D. Instituto de Computação - UFF

AULA 4. Atividade Complementar 10: Sistemas lineares 2x2 e sua interpretação geométrica 31

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

DEPARTAMENTO DE MATEMÁTICA INFORMÁTICA DISCIPLINA: Matemática (9º Ano) METAS CURRICULARES/CONTEÚDOS ... 1º PERÍODO. Medidas de localização

Objetos Gráficos Planares

PLANO DE ESTUDOS DE MATEMÁTICA 9.º ANO

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

GEOMETRIA MÉTRICA ESPACIAL

Projeções de entidades geométricas elementares condicionadas por relações de pertença (incidência) 8

Lista de exercícios de GA na reta e no plano Período de Prof. Fernando Carneiro Rio de Janeiro, Janeiro de 2017

Teoria dos Grafos Aula 6

4.4 Secções planas de superfícies e sólidos

Geometria Computacional

INF1010 Lista de Exercícios 2

Algoritmo para Construção do Diagrama de Voronoi com abordagem de Divisão e Conquista

Objetos Gráficos Planares

Poliedros. INF2604 Geometria Computacional. Waldemar Celes. Departamento de Informática, PUC-Rio. W.

INF 1010 Estruturas de Dados Avançadas

Aula 20: Árvores Binárias de Busca. Algoritmos de busca e inserção

LISTA DE EXERCÍCIOS MAT GEOMETRIA E DESENHO GEOMÉTRICO I

Profª.. Deli Garcia Ollé Barreto

Algoritmo da IFT 2 / 16. Algoritmo da IFT Estrutura da fila de prioridade Resolvendo empates. Algoritmo 1 Algoritmo geral da IFT

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Algoritmo de Dijkstra Estudo e Implementação

CAPÍTULO 1 Sistemas de Coordenadas Lineares. Valor Absoluto. Desigualdades 1. CAPÍTULO 2 Sistemas de Coordenadas Retangulares 9. CAPÍTULO 3 Retas 18

APLICAÇÕES DE CÔNICAS NA ENGENHARIA

ESTRUTURA DE DADOS E ALGORITMOS HEAPS E LISTAS DE PRIORIDADES

Exercícios de Geometria Analítica - Prof. Ademir

Algoritmos e Estruturas de Dados I

INSTITUTO FEDERAL DE BRASILIA 4ª Lista. Nome: DATA: 09/11/2016

Aula 07: Algoritmos de busca e Listas encadeadas

FAU UFRJ GEOMETRIA DESCRITIVA II. Apostila de Apoio

PLANIFICAÇÃO ANUAL Programa e Metas de Aprendizagem, apoiado pelas novas Orientações de Gestão para o Ensino Básico S- DGE/2016/3351 DSDC

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

AGRUPAMENTO de ESCOLAS de SANTIAGO do CACÉM Ensino Secundário Ano Letivo 2016/2017

AGRUPAMENTO de ESCOLAS de SANTIAGO do CACÉM Ensino Secundário Ano Letivo 2018/2019. Documento(s) Orientador(es): Aprendizagens Essenciais

Árvores Binárias. 16/11 Representação e Implementação: Encadeada Dinâmica O TAD

AGRUPAMENTO de ESCOLAS de SANTIAGO do CACÉM Ano Letivo 2015/2016 PLANIFICAÇÃO ANUAL. Documento(s) Orientador(es): Programa e Metas Curriculares

Transcrição:

Diagrama de Voronoi João Comba Diagrama de Voronoi Voronoi (1907) Tesselagens de Dirichlet (1850) Descarte (1644) Brown (1954): Area Potentially available to a tree Mead (1966): plant polygons Sítios: P = {p 1, p 2,, p n } Métrica: dist(p,q) = sqrt((p x -q x ) 2 + (p y -q y ) 2 ) Voronoi(P) : subdivisao do plano em n celulas V(pi), uma para cada sitio em P, tal que a ponto q pertence a celula de um sitio p i se e somente se dist(q, pi) < dist(q, pj) (all pj, j!=i)

Teorema Um ponto q e um vertice de Vor(P) se e somente se o seu maior circulo vazio Cp(q) contem 3 ou mais sitios na sua fronteira p i p k q p j Teorema O bissetor entre os sitios pi e pj define uma aresta de Vor (P) se e somente se existe um ponto q tal que Cp(q) contem ambos pi e pj na sua fronteira, e mais nenhum sitio p i q p j

Diagrama de Voronoi - Construcao Construir o bissetor entre um sítio e todos os outros Uma célula de Voronoi é a interseção de todos semiespaços definidos pelos bissetores. Complexidade: O(nlogn) para cada célula. Corolário: Cada célula em um diagrama de Voronoi é um polígono convexo, possivelmente não fechado Computar diagrama de Voronoi Usar observacao que as celulas sao intersecoes de semi-espacos Calculo de Intersecoes de semi-espaco: O(nlogn) para cada célula Calculo de Voronoi (n 2 logn) Pode-se fazer melhor? Sim, Algoritmo de Fortune (nlogn)

Sweep de Plano Reduz um problema n dimensional para um (n-1) dinamico Varrer um espaco nd por um hiperplano (n-1)d Manter as intersecoes do hiperplano com um subconjunto de elementos (conjunto ativo) Intersecoes atualizam-se continuamente com tempo, com execao de quando um evento discreto acontece, novos elementos tornam-se ativos ou deixam de ser Estrutura de dados: Priority queue: fila de eventos futuros Representacao do conjunto ativo Algoritmo de Fortune OBS: A intersecao de dois cones (referentes ao sitios p e q) e uma curva (uma hipérbola) contida num plano vertical Se projetada no plano que contem p e q, e igual ao bissetor de p e q

Sweep dos Cones Varrer os cones com um plano de mesma orientacao que os cones Sweep dos Cones A intersecao do plano de sweep com o cone e vazia ate o plano passar pelo ponto

Sweep dos Cones Ao passar do sitio, a intersecao do plano e do cone e uma parabola Sweep dos Cones A projecao da parabola no plano possui o sitio como foco e a linha de sweep como diretriz da parabola

Fronte parabolica Linha de sweep Linha da praia é Y- monotônica Animação Frente parabolica Lema Cada ponto de cada aresta do diagrama de Voronoi e um ponto de quebra da frente parabolica em algum momento do sweep

Lema A unica forma de um arco entrar na frente parabolica e atraves de um evento de sitio Lema A unica forma de um arco sair da frente parabolica e atraves de um evento de circulo

Frente parabolica Frente parabolica Linha de sweep Lema 1 Cada ponto de cada aresta do diagrama de Voronoi e um ponto de parada da frente parabolica em algum momento do sweep

Lema 2 A unica forma de um arco entrar na frente parabolica e atraves de um evento de sitio (prova por contradicao) Primeiro Caso: Entrar pelo meio de um arco de parabola B j p j B j p i pi p j B i ly B i Curvatura de B j maior que a curvatura de B i Bj := y = 1 / [2(p j,y-l y )] * (x 2 2p j,x x + p 2 j,x + p2 j,y l2 y duas raízes se p j,p i > l y

Segundo Caso: Entrar pelo meio de dois arcos de parabola B j p j B j p j B i ly B i Segundo Caso: Entrar pelo meio de dois arcos de parabola p j p j p i B j p i B j p k p k B i B i B k B k p l p l Frente Parabolica: 2n 1 arcos parabolicos

Lema 3 A unica forma de um arco sair da frente parabolica e atraves de um evento de circulo Prova Lema 3 O arco a esquerda e a direita daquele que desaparece nao pode ser o mesmo arco

Prova Lema 3 p j p i B j p k B i B k p l O arco a esquerda e a direita daquele que desaparece nao pode ser o mesmo arco Estrutura de Dados Algoritmo de Fortune Armazenar diagrama de Voronoi: Lista de aresta duplamente encadeada Usar uma bounding box para limitar regioes Armazenar frente parabolica: Arvore binaria balanceada T (arcos sao folhas, pontos de parada sao nodos) Armazenar eventos: Priority queue (eventos de sitio, circulo)

Armazenar frente parabolica Arvore binaria balanceada T (arcos sao folhas, pontos de parada sao nodos) <pj,pk> <pi,pj > <pk,pl> pi pj pk pl pi pj pk pl Armazenar Eventos Priority queue: eventos de sitio (classificar pontos em y) eventos de circulo Como definir Eventos de Circulo? Sejam tres arcos a,b,c consecutivos na frente parabolica Definir um evento de circulo(a,b,c) se o circulo intersecta a sweep line e nao possui nenhum outro ponto dentro dele

Eventos de Sitio HandelSiteEvent(pi) 1. Buscar em T o arco a verticalmente acima de pi, e deletar todos eventos de circulo associados a ele (ponteiros para a priority queue) pj <pj,pk> pk <pj,pk> pi pj pk Eventos de Sitio HandleSiteEvent(pi) 1. Buscar em T o arco p verticalmente acima de pi, e deletar todos eventos de circulo associados a ele (ponteiros para a priority queue) 2. Trocar a folha pj que representa p em T representando a por tres folhas. A folha do meio contem o sitio pi, e as outras duas contem pj. Atualizar os nodos com <pj,pi> e <pi,pj>.rebalancear! pj <pj,pi > pi pj <pi,pj > <pj,pk> pk <pj,pi > <pi,pj > <pj,pk> pj pk pj pi

Eventos de Sitio HandelSiteEvent(pi) 1. Buscar em T o arco p verticalmente acima de pi, e deletar todos eventos de circulo associados a ele (ponteiros para a priority queue) 2. Trocar a folha pj que representa p em T representando a por tres folhas. A folha do meio contem o sitio pi, e as outras duas contem pj. Atualizar os nodos com <pj,pi> e <pi,pj>.rebalancear! 3. Criar registros na estrutura que contem o diagrama de voronoi para as duas semi-arestas que serao tracadas pelos 2 novos pontos de parada 4. Checar as triplas de arcos consecutivos involvendo um dos tres novos arcos. Inserir o evento de circulo correspondente se o circulo intersecta a linha de sweep e nao contem nenhum ponto Eventos de Circulo HandelCircleEvent(pl) 1. Buscar em T o arco p verticalmente acima de pl que esta prestes a disaparecer, e deletar todos eventos de circulo associados a ele (ponteiros para a priority queue) 2. Deletar a folha que representa p em T. Atualizar as tuplas representando os nodos internos. Rebalancear! 3. Adicionar o centro do circulo causando o evento como um vertice de Voronoi, e criar duas semi-arestas correspondentes a este ponto de parada. Atualizar os ponteiros. 4. Checar as triplas de arcos consecutivos involvendo o desaparecimento de do arco. Inserir o evento de circulo correspondente se o circulo intersecta a linha de sweep e nao contem nenhum ponto

Algoritmo Algoritmo VORONOIDIAGRAM(P) ENTRADA: Um conjunto de pontos P {p1, p2,, pn} no plano SAIDA: O diagrama de Voronoi VOR(P) dentro de uma bounding box numa lista de arestas duplamente encadeadas 1. Inicializar a lista de eventos Q com todos eventos de sitio 2. WHILE Q nao e vazia 3. DO Considere o evento com maior coordenada y 4. IF evento e um evento de sitio, ocorrendo em pi 5. HandleSiteEvent(pi) 6. ELSE HandleCircleEvent(pl), one pl e o ponto mais baixo do circulo causando o evento 7. Calcular uma bounding box que contem todos os vertices do diagrama de voronoi, e fechar as semi-arestas que estao abertas 8. Percorrer a lista de semi-arestas para adicionar os registros de adjacencia de/para por celula Complexidade LEMA: O algoritmo roda em O(nlogn) e usa O(n) de memoria Classificacao em Y: O(nlogn) Estrutura de dados Operacoes em T: O(logn) Operacoes na lista de aresta: constante Operacoes na fila de eventos: O(logn) Operacoes em eventos: constante Custo de um evento: O(logn) n eventos de sitio numero de eventos de circulo: 2n-5 no maximo

Eixo Medial Diagrama de Voronoi: Conjunto de pontos que o sitio mais proximo nao e unico (2 ou mais) Eixo Medial de um poligono P: Conjunto de pontos que e equidistante a mais de um ponto na fronteira de P (centros dos circulos maximais) Aplicações

Eixo Medial Sitios sao pontos Ordinario Distancia Euclideana Generalizado Sitios com geometria de alta-ordem Métricas de distância variadas Sitios de alta-ordem 2.0 0.5 Distancias Ponderadas

Aplicacoes: Informacoes de Proximidade Sitio mais proximo Caminhos limpos maximos Estimativa de Densidade Vizinhos mais proximos Planejamento de Movimento Planejamento de movimento Buffer de distancia usado como campo de atracao

Mosaicos Dinamicos 1000 pontos Fonte Mosaico Dinamicos