1 Geometria Computacional Triangulação e conceitos afins.

59
1 Geometria Computacional Geometria Computacional Triangulação e conceitos afins

Transcript of 1 Geometria Computacional Triangulação e conceitos afins.

Page 1: 1 Geometria Computacional Triangulação e conceitos afins.

1

Geometria ComputacionalGeometria Computacional

Triangulação e conceitos afins

Page 2: 1 Geometria Computacional Triangulação e conceitos afins.

2

Page 3: 1 Geometria Computacional Triangulação e conceitos afins.

3

Page 4: 1 Geometria Computacional Triangulação e conceitos afins.

4

Exemplo: Caminho mais curtoExemplo: Caminho mais curto• Pode ser reduzido ao problema de encontrar o

caminho mais curto em um grafo (grafo de visibilidade) Resolve-se com algoritmos não geométricos

• Ex.: Algoritmo de Dijkstra

• Algoritmos geométricos podem dar uma solução mais eficiente

Page 5: 1 Geometria Computacional Triangulação e conceitos afins.

5

Eficiência dos AlgoritmosEficiência dos Algoritmos• Complexidade assintótica de pior caso Problema do Caminho mais curto

• Algoritmo simples O (n2 log n)• Algoritmo complexo O (n log n)

• Casos médios Difíceis de se caracterizar Requerem que se estipule uma distribuição

“típica”• Muitas estruturas de dados e algoritmos

que se conjectura serem eficientes para casos típicos Quadtrees em geral BSP trees

Page 6: 1 Geometria Computacional Triangulação e conceitos afins.

6

Limitações da Geometria ComputacionalLimitações da Geometria Computacional

• Dados discretos Aproximações de fenômenos contínuos

• Funções quantizadas ao invés de funções contínuas (e.g. imagens)

• Objetos geométricos “planos” Aproximações de geometrias “curvas”

• Dimensionalidade Normalmente, 2D e um pouco de 3D Problemas n-dimensionais são pouco

abordados

Page 7: 1 Geometria Computacional Triangulação e conceitos afins.

7

Técnicas usadas em GCTécnicas usadas em GC• Técnicas convencionais de desenho

de algoritmos Dividir para conquistar Programação dinâmica

• Técnicas próprias para algoritmos geométricos Varredura (plane sweep) Construções randomizadas incrementais Transformações duais Fractional Cascading

Page 8: 1 Geometria Computacional Triangulação e conceitos afins.

8

TendênciasTendências• Muitas soluções “ótimas” foram obtidas

mas as implementações ... Muito complicadas Muito sensíveis a casos degenerados Problemas de precisão Complexidade inaceitável para problemas

pequenos

• Foco em obter soluções práticas Algoritmos simples

• Freqüentemente randomizados Tratamento de casos degenerados Engenharia de software

Page 9: 1 Geometria Computacional Triangulação e conceitos afins.

9

Problemas – Fecho ConvexoProblemas – Fecho Convexo

• Menor polígono (poliedro) convexo que contém uma coleção de objetos (pontos)

Page 10: 1 Geometria Computacional Triangulação e conceitos afins.

10

Problemas - InterseçõesProblemas - Interseções

• Determinar interseções entre coleções de objetos

Page 11: 1 Geometria Computacional Triangulação e conceitos afins.

11

Problemas – TriangulaçõesProblemas – Triangulações

• Dividir domínios complexos em coleções de objetos simples (simplexes)

Page 12: 1 Geometria Computacional Triangulação e conceitos afins.

12

Problemas – Prog. Linear em 2d e 3dProblemas – Prog. Linear em 2d e 3d

• Problemas de otimização Ex.: menor disco que contém um

conjunto de pontos

Page 13: 1 Geometria Computacional Triangulação e conceitos afins.

13

Problemas – Arranjos de RetasProblemas – Arranjos de Retas• Dada uma coleção de retas, é o grafo formado pelos

pontos de interseção e segmentos de reta entre eles Problemas sobre pontos podem ser transformados em

problemas sobre retas (dualidade)

Page 14: 1 Geometria Computacional Triangulação e conceitos afins.

14

Problemas – Diagramas de Voronoi e Problemas – Diagramas de Voronoi e Triangulações de DelaunayTriangulações de Delaunay

• Dada uma coleção de pontos S Diagrama de Voronoi delimita as regiões de

pontos mais próximos Triangulação de Delaunay é o dual do D. V.

Page 15: 1 Geometria Computacional Triangulação e conceitos afins.

15

Problemas – Busca GeométricaProblemas – Busca Geométrica

• Algoritmos e estruturas de dados para responder consultas geométricas. Ex.: Todos os objetos que interceptam uma

região • Polígono• Disco

Par de pontos mais próximos Vizinho mais próximo Caminho mais curto

Page 16: 1 Geometria Computacional Triangulação e conceitos afins.

16

Geometria AfimGeometria Afim• Composta dos elementos básicos escalares pontos - denotam posição vetores - denotam deslocamento

(direção e magnitude)• Operações escalar · vetor = vetor vetor + vetor ou vetor – vetor = vetor ponto – ponto = vetor ponto + vetor ou ponto – vetor = ponto

Page 17: 1 Geometria Computacional Triangulação e conceitos afins.

17

Combinações AfimCombinações Afim

• Maneira especial de combinar pontos

• Para 2 pontos P e Q poderíamos ter uma combinação afim R = (1– )P +Q = P +(P – Q)

1 onde

...

1

2211

n

ii

nnPPP

P

Q

R= P+(P – Q)

P

Q0 < < 1

< 0

> 1

Page 18: 1 Geometria Computacional Triangulação e conceitos afins.

18

Combinações ConvexasCombinações Convexas• Combinações afim onde se garante que

todos os coeficientes i são positivos (ou zero)

• Usa-se esse nome porque qualquer ponto que é uma combinação convexa de n outros pontos pertence à envoltória convexa desses pontos

P1

P2

P3

P4 P5

Q

Page 19: 1 Geometria Computacional Triangulação e conceitos afins.

19

Geometria Euclidiana Geometria Euclidiana • Extensão da geometria afim pela

adição de um operador chamado produto interno

• Produto interno é um operador que mapeia um par de vetores em um escalar. Tem as seguintes propriedades: Positividade : (u,u) 0 e (u,u) = 0 sse

u=0 Simetria: (u,v) = (v,u) Bilinearidade: (u,v+w)= (u,v)+ (u,w) e (u,v)= (u,v)

Page 20: 1 Geometria Computacional Triangulação e conceitos afins.

20

Geometria EuclidianaGeometria Euclidiana

• Normalmente usamos o produto escalar como operador de produto interno:

• Comprimento de um vetor é definido como:

• Vetor unitário (normalizado):

d

iiivuvu

1

vvv

v

vv

ˆ

Page 21: 1 Geometria Computacional Triangulação e conceitos afins.

21

Geometria EuclidianaGeometria Euclidiana

• Distância entre dois pontos P e Q =|P – Q |• O ângulo entre dois vetores pode ser

determinado por

• Projeção ortogonal: dados dois vetores u e v, deseja-se decompor u na soma de dois vetores u1 e u2 tais que u1 é paralelo a v e u2 é perpendicular a v

)ˆˆ(coscos),( 11 vuvu

vuvuângulo

121 uuuvvv

vuu

v

u

u1

u2

Page 22: 1 Geometria Computacional Triangulação e conceitos afins.

22

Produto Vetorial (3D)Produto Vetorial (3D)• Permite achar um vetor perpendicular a outros dois dados• Útil na construção de sistemas de coordenadas

zyx

zyx

xyyx

zxxz

yzzy

vvv

uuu

kji

vuvu

vuvu

vuvu

vu

• Propriedades (assume-se u, v linearmente independentes): Antisimetria: u × v = – v × u Bilinearidade: u × (v) = (u × v) e u × (v + w) = (u × v) + (u × w) u × v é perpendicular tanto a u quanto a v O comprimento de u × v é igual a área do paralelogramo

definido por u e v, isto é, | u × v | = | u | | v | sin

u

vu×v

.

Page 23: 1 Geometria Computacional Triangulação e conceitos afins.

23

Sistemas de coordenadasSistemas de coordenadas• Um sistema de coordenadas para Rn é

definido por um ponto (origem) e n vetores

• Ex. Seja um sistema de coordenadas para R2 definido pelo ponto O e os vetores X e Y. Então, Um ponto P é dado por coordenadas xP e yP tais

que

Um vetor V é dado por coordenadas xV e yV tais que

OYyXxP PP ..

YyXxV VV ..

Page 24: 1 Geometria Computacional Triangulação e conceitos afins.

24

Coordenadas HomogêneasCoordenadas Homogêneas• Coordenadas homogêneas permitem

unificar o tratamento de pontos e vetores• Problema é levado para uma dimensão

superior: Coordenada extra w= 0 para vetores e =1 p/

pontos O significado da coordenada extra é levar ou

não em consideração a origem do sistema

• Coordenadas homogêneas têm diversas propriedades algébricas interessantes Ex. Subtração de dois pontos naturalmente

resulta em um vetor

Page 25: 1 Geometria Computacional Triangulação e conceitos afins.

25

OrientaçãoOrientação• Orientação de 2 pontos em 1D P1 < P2 , P1 = P2 ou P1 > P2

• Orientação de 3 pontos em 2D O percurso P1 , P2 , P3 é feito no sentido dos

ponteiros do relógio, no sentido contrário ou são colineares

P1

P3 P2

P3

P1 P2

P3

P2

P1

Or (P1, P2, P3) = +1 Or (P1, P2, P3) = -1 Or (P1, P2, P3) = 0

Page 26: 1 Geometria Computacional Triangulação e conceitos afins.

26

OrientaçãoOrientação

• Orientação de 4 pontos em 3D O percurso P1 , P2 , P3 , P4 define um

parafuso segundo a regra da mão direita, mão esquerda ou são coplanares

P1

P4 P2

Or (P1, P2, P3, P4) = +1

P3

• O conceito pode ser estendido a qualquer número de dimensões ...

Page 27: 1 Geometria Computacional Triangulação e conceitos afins.

27

Computando OrientaçãoComputando Orientação• A orientação de n+1 pontos em um espaço

n-dimensional é dado pelo sinal do determinante da matriz cujas colunas são as coordenadas homogêneas dos pontos com o 1 vindo primeiro

321

3213212

111

sign),,(Or

yyy

xxxPPP

4321

4321

432143213

1111

sign),,,(Or

zzzz

yyyy

xxxxPPPP

Page 28: 1 Geometria Computacional Triangulação e conceitos afins.

28

Geometria ComputacionalGeometria ComputacionalTriangulaçõesTriangulações

Page 29: 1 Geometria Computacional Triangulação e conceitos afins.

29

ProblemaProblema

• Dado um conjunto P de pontos do Rn, decompor o seu fecho convexo conv(P ) num complexo simplicial cuja união seja conv(P ) e cujo conjunto de vértices contenha P.

• Não existe uma solução única para esse problema.• No plano, toda triangulação de conv(P) possui

exatamente (2n – v – 2) triângulos e (3n – v – 3) arestas, onde v é o número de pontos de P na fronteira de conv(P), n a cardinalidade de P e a o número de arestas. Use a fórmula de Euler para esfera:

V – A + F = 2.

Page 30: 1 Geometria Computacional Triangulação e conceitos afins.

30

Problemas – TriangulaçõesProblemas – Triangulações

• Dividir domínios complexos em coleções de objetos simples (simplexes)

Page 31: 1 Geometria Computacional Triangulação e conceitos afins.

31

Exemplo: Lago SuperiorExemplo: Lago Superior

Page 32: 1 Geometria Computacional Triangulação e conceitos afins.

DeduçãoDedução• O número de faces F é igual ao número de

triângulos T + 1, pois tem-se de considerar a face externa ilimitada no plano.

n – a + (T + 1) = 2

• Cada triângulo possui 3 arestas. Como cada aresta aparece em 2 triângulos, arestas são contadas duas vezes.

3--3 e 22

43222

22

31

2

323

vnavnT

vTTn

vTTn

vTaavT

O Tamanho da solução para o problema de triangulação é linear

com o número de pontos

O Tamanho da solução para o problema de triangulação é linear

com o número de pontos

Page 33: 1 Geometria Computacional Triangulação e conceitos afins.

33

Algoritmo Força BrutaAlgoritmo Força Bruta

• Obtenha conv(P ) e triangule-o por diagonais. Cada ponto que não esteja na fronteira de conv(P ) é inserido em conv(P ) e o triângulo que o contém é subdividido. Algoritmo O(n log n) para achar

conv(P ). Inclusão de cada ponto é O(n). Algoritmo completo é O(n2).

Page 34: 1 Geometria Computacional Triangulação e conceitos afins.

34

Problema Resolvido?Problema Resolvido?• Embora todas as triangulações de

conv(P ) tenham o mesmo número de triângulos, a forma dos triângulos é muito importante em aplicações numéricas.

• Triangulação de Delaunay tem a importante propriedade de, entre todas as triangulações de conv(P ), maximizar o menor de todos os ângulos internos dos triângulos. Isso só é verdade no R2.

Page 35: 1 Geometria Computacional Triangulação e conceitos afins.

35

Como Triangular?Como Triangular?• Uma triangulação fornece uma

estrutura combinatória a um conjunto de pontos.

• Na realidade, um algoritmo de triangulação fornece regras para conectar pontos “próximos”.

• A triangulação de Delaunay conecta os pontos baseado em um único critério: círculos vazios. Conceitualmente simples e fácil de

implementar. O critério de proximidade vem do

Diagrama de Voronoi.

Page 36: 1 Geometria Computacional Triangulação e conceitos afins.

36

Triangulação de DelaunayTriangulação de Delaunay

Page 37: 1 Geometria Computacional Triangulação e conceitos afins.

37

Triangulação de DelaunayTriangulação de Delaunay

FLIP

Page 38: 1 Geometria Computacional Triangulação e conceitos afins.

38

Diagrama de VoronoiDiagrama de Voronoi• É uma partição do Rn em polígonos convexos

associados a um conjunto de sítios (tesselação de Dirichlet).

• O conceito foi discutido em 1850 por Dirichlet e em 1908 num artigo do matemático russo Georges Voronoi.

• É a segunda estrutura mais importante em Geometria Computacional perdendo apenas para o fecho convexo.

• Possui todas as informações necessárias sobre a proximidade de um conjunto de pontos.

• É a estrutura dual da triangulação de Delaunay.

Page 39: 1 Geometria Computacional Triangulação e conceitos afins.

39

Diagrama de VoronoiDiagrama de Voronoi

Page 40: 1 Geometria Computacional Triangulação e conceitos afins.

40

DefiniçõesDefinições• Seja P = {p1,p2,...,pn} um conjunto de pontos do

plano euclidiano, chamados de sítios. Particione o plano atribuindo a cada ponto do plano o sítio mais próximo. Todos os pontos associados a pi formam um

polígono de Voronoi V(pi):

O conjunto de todos os pontos associados a mais de um sítio forma o diagrama de Voronoi Vor(P ).

: )( ijxpxpxpV jii

Page 41: 1 Geometria Computacional Triangulação e conceitos afins.

41

Dois SítiosDois Sítios

• Sejam p1 e p2 dois sítios e B(p1, p2) = B12 a mediatriz do segmento p1p2.

Cada ponto x B12 é eqüidistante de p1 e p2 (congruência lado-ângulo-lado).

B12

p1p2

x

Page 42: 1 Geometria Computacional Triangulação e conceitos afins.

42

Três SítiosTrês Sítios• A menos do triângulo (p1, p1, p3), o diagrama

contém as mediatrizes B12, B23, B31.

• As mediatrizes dos lados de um triângulo se encontram no circuncentro do círculo único que passa pelos três vértices (Euclides).

p1

p2

p3B12

B31

B23

Page 43: 1 Geometria Computacional Triangulação e conceitos afins.

43

Semi-planosSemi-planos• A generalização para mais de três pontos

corresponde ao local geométrico da interseção dos semi-planos fechados H(pi, pj), dos pontos mais próximos de pi do que de pj.

ji

jii ppHpV

),()(

Page 44: 1 Geometria Computacional Triangulação e conceitos afins.

44

Voronoi de 7 pontosVoronoi de 7 pontos

• 7 pontos definem o mesmo número de polígonos de Voronoi.

• Um dos polígonos é limitado porque o sítio correspondente está completamente cercado por outros sítios.

• Cada ponto do R2 possui pelo menos um vizinho mais próximo. Logo, ele pertence a pelo menos um polígono de Voronoi. Assim, o diagrama de

Voronoi cobre completamente o plano.

Page 45: 1 Geometria Computacional Triangulação e conceitos afins.

45

TeoremasTeoremas• Os polígonos de Voronoi correspondentes a

um par de pontos xi e xj possuem uma aresta comum, se e somente se existem pontos (aqueles da aresta comum) que são eqüidistantes dos pontos xi e xj que estão mais próximos deles do que de qualquer outro ponto de P.

• Um polígono de Voronoi é ilimitado se somente se o ponto correspondente xi pertencer à fronteira de conv(P ).

Page 46: 1 Geometria Computacional Triangulação e conceitos afins.

46

Círculos VaziosCírculos Vazios• Todo vértice v de Vor(P ) é comum a pelo

menos três polígonos de Voronoi e é centro de um círculo C (v) definido pelos pontos de P correspondentes aos polígonos que se encontram em v. Além disso, C (v) não contém nenhum outro ponto de P.

• Os pontos de P estão em posição geral se nenhum sub-conjunto de P contém 4 pontos co-circulares.

p1

p2p3 B12

B31

B23

Page 47: 1 Geometria Computacional Triangulação e conceitos afins.

47

Algoritmo para VoronoiAlgoritmo para Voronoi• Pode-se determinar os conjuntos

T1,T2,...,Tt de P que determinam círculos vazios para construir Vor(P ). Cada Tk é formado por três ou mais pontos

co-circulares de P. Se os pontos de P estão em posição geral,

todo Tk contém exatamente 3 sítios de P. As arestas de Vor(P ) são os segmentos

mediatrizes correspondentes a pontos consecutivos dos Tk.

Uma vez conhecidos todos os Tk, Vor(P ) pode ser determinado em tempo linear.

Page 48: 1 Geometria Computacional Triangulação e conceitos afins.

48

Ligação entre Voronoi e DelaunayLigação entre Voronoi e Delaunay• No diagrama de Voronoi cada sítio está

associado a um polígono (face) de Vor(P ).• O grafo dual tem por vértices os sítios de

Vor(P ), e por arestas os pares de sítios cujos polígonos são vizinhos.

• O grafo dual é Chamado de triangulação de Delaunay Del(P ). Dois sítios xi e xj determinam uma aresta

de Del(P ) se e somente se existe um círculo C contendo xi e xj tal que todos os outros sítios sejam exteriores a C.

Page 49: 1 Geometria Computacional Triangulação e conceitos afins.

49

Triangulação de DelaunayTriangulação de Delaunay• Em 1934, o matemático russo Boris

Delaunay provou que quando o grafo dual é desenhado com linhas retas ele produz uma triangulação dos sítios do diagrama de Voronoi (supostos estarem em posição geral).

• Não é óbvio que as arestas de Del(P ) não se cruzam, já que uma aresta entre dois sítios não cruza, necessariamente, a aresta de Voronoi correspondente.

Page 50: 1 Geometria Computacional Triangulação e conceitos afins.

50

Propriedades de DelaunayPropriedades de DelaunayD1. Del(P ) é o dual com arestas retilíneas de Vor(P ).

D2. Del(P ) é uma triangulação se nenhum grupo de 4 pontos forem co-circulares. Cada face é um triângulo (teorema de Delaunay).

D3. Cada triângulo de Del(P ) corresponde a um vértice de Vor(P ).

D4. Cada aresta de Del(P ) corresponde a uma aresta de Vor(P ).

D5. Cada vértice de Del(P ) corresponde a um polígono (face) de Vor(P ).

D6. A fronteira de Del(P ) é o fecho convexo dos sítios.

D7. O interior de cada triângulo (face) de Del(P ) não contém sítios.

Page 51: 1 Geometria Computacional Triangulação e conceitos afins.

51

Propriedades de VoronoiPropriedades de VoronoiV1. Todo polígono V(pi) de Voronoi é convexo.

V2. V(pi) é ilimitado se e só se pi está no fecho convexo.

V3. Se v for um vértice de Voronoi na junção de V(p1), V(p2), V(p3) então v é o centro do círculo C(v) que passa por p1, p2, p3.

V4. C(v) é o círculo circunscrito ao triângulo correspondente a v.

V5. C(v) é vazio (não contém outros sítios).

V6. Se pi for o vizinho mais próximo de pj, então pipj é uma aresta de Del(P ).

V7. Se existir um círculo vazio passando por pi e pj, então pipj é uma aresta de Del(P ).

Page 52: 1 Geometria Computacional Triangulação e conceitos afins.

52

CotasCotas• O diagrama de Voronoi de um conjunto P com n

sítios tem no máximo 2n-5 vértices e 3n-6 arestas. O maior número de arestas ocorre quando todas

as faces de Del(P ) são triangulares e conv(P ) também é um triângulo (substitua v por 3).

Diagrama de Voronoi e triangulação de Delaunay são redutíveis um ao outro em tempo linear.

Embora o diagrama de Delaunay não produza sempre uma triangulação, caso os pontos não estejam em posição geral, cada região convexa Rk com m vértices pode ser triangulada por m-3 diagonais.

Page 53: 1 Geometria Computacional Triangulação e conceitos afins.

53

Cota InferiorCota Inferior

• O diagrama de Voronoi fornece uma triangulação de conv(P ) em tempo linear.

• O problema de ordenação pode ser reduzido ao problema de triangulação. Dados { x1,x2,...,xn } crie P = { (0,0), p1,

p2, ..., pn } onde pi = (xi,1). Logo, Voronoi e Delaunay (n log n).

Page 54: 1 Geometria Computacional Triangulação e conceitos afins.

54

Qualidade dos TriângulosQualidade dos Triângulos• Seja T uma triangulação de um conjunto de

pontos S, e seja a seqüência angular (1, 2, ..., 3t) a lista dos ângulos dos triângulos ordenada em ordem crescente (t é o número de triângulos). t é constante para cada S. T > T ’ se a seqüência angular de T for maior

lexicograficamente do que a de T ’. A triangulação de Delaunay T = Del(P ) é

maximal em relação à forma angular: T T ’ para qualquer outra triangulação T ’ de P (Edelsbrunner – 1987).

• Maximiza o menor ângulo.

Page 55: 1 Geometria Computacional Triangulação e conceitos afins.

55

Algoritmos para Triangulação de Algoritmos para Triangulação de DelaunayDelaunay

• Pode-se construir uma triangulação de Delaunay em O(n2).

• Um algoritmo complexo para encontrar o diagrama de Voronoi em O(n log n) foi detalhado por Shamos e Hoey (1975). Usa dividir para conquistar. Este artigo introduziu o diagrama de Voronoi

à comunidade de computação. O algoritmo é muito difícil de implementar,

mas pode ser feito utilizando-se uma estrutura de dados adequada, como a Quadedge de Guibas e Stolfi (1985).

• Algoritmo incremental costuma ser muito usado por ser mais fácil de implementar, mas também é O(n2). Se for randomizado o tempo médio é O(n log

n).

Page 56: 1 Geometria Computacional Triangulação e conceitos afins.

56

Triangulação de Delaunay RestritaTriangulação de Delaunay Restrita• Muitas vezes é necessário triangular um

grafo planar retilíneo (GPR). Basicamente, arestas só se intersectam

em vértices, que fazem parte do grafo.• A triangulação de Delaunay é cega para as

arestas de um GPR, que podem aparecer na triangulação final ou não.

• Triangulação de Delaunay restrita (TDR) é similar a triangulação de Delaunay, mas todos os segmentos do GPR devem aparecer na triangulação final.

Page 57: 1 Geometria Computacional Triangulação e conceitos afins.

57

ExemploExemplo

TDR

Triangulação de Delaunay

GPR

Page 58: 1 Geometria Computacional Triangulação e conceitos afins.

Ponto dentro de um círculoPonto dentro de um círculo

• Quando um ponto D está dentro de circuncírculo de um triângulo (ABC)? Avaliando-se o determinante:

Assumindo que A,B,C estão no sentido anti-horário. O determinante é positivo sse D está dentro do circuncírculo.

Se o triângulo é não-Delaunay, FLIP! [O(n2)]

58

Page 59: 1 Geometria Computacional Triangulação e conceitos afins.

AtividadeAtividade

• A Winged-Edge é adequada para se implementar Voronoi ou Delaunay?

• Pesquise e relate as vantagens de se utilizar Quad-Edge (em termos computacionais).

• Implementar Delaunay para a atividade do terreno.

60