Upload
internet
View
112
Download
6
Embed Size (px)
Citation preview
Representação Geométrica
Rodrigo de Toledo(CG1, UFRJ)
Níveis de escala
Cena
Macro Microscale
Meso
• Objetos do mundo virtual
• Representação dos objetos
• Textura
• Nível fotométrico
Aqui
Representação da geometria
• Implícita– Equação determina a descrição geométrica– Ex: quádricas, cúbicas e torus
• Paramétrica– Função determina regra de construção– Ex: Bézier, Nurbs
• Explícita– A geometria é descrita “ponto-a-ponto”– Ex: malha de triângulo e mapa de alturas
Representação Geométrica Implícita
• Quádricas, cúbicas, etc...
• CSG
Exemplo: círculo
Representação Implícita:
Representação Paramétrica:
Representação Explícita:
Superfícies implícitas
• superfícies implícitas são definidas por uma função
f : R3R
• A função divide o espaço em três:
surperfíce: f(x,y,z) 0
interior: f(x,y,z) < 0
exterior: f(x,y,z) > 0
f 0
f 0
f 0
Classificação das superfícies implícitas
• O grau da polinomial da função é que define o grau da superfície.– Grau 2: quádricas– Grau 3: cúbicas– Grau 4: quárticas
• A quantidade de parâmetros S para cada
grau p pode ser calculada usando:
Quádricas
– Quádricas:
Esfera: x2 + y2 + z2 = 1
Representação matricial das quádricas
• Matriz simétrica Q4x4 contendo os 10 coeficientes:
Classificação das quádricas
• Para entender a nomenclatura 3D, primeiro vamos ver a nomenclatura 2D...
cylindersellipsoids cones hyperboloidsspheres
Curvas em 2D
Classificação das Quádricas
• vide wikepedia
SaddleCela do cavalo
Cúbicas
Quárticas
• Torus é a quártica mais conhecida:
Qual a complexidade da equação do coração?
f(x,y,z) = (2x2 + y2 + z2 – 1)3 – 0.1 x2 z3 – y2 z3
Cálculo da normal à superfície
• Gradiente da superfície no ponto x,y,z
• Qual é a normal de uma quádrica?• Qual é a normal normalizada do ponto
[x,y,z] numa esfera de raio unitário?
CSG (Constructive Solid Geometry)
CSG
• Operações booleanas
União
Diferença
Interseção
A diferençanão é comutativa
CSG
• Objeto é representado por uma árvore– Operadores em nós internos– Primitivas simples nas folhas– Combinação bottom-up
• Obs:– Como há operações não
comutativas, as arestas são ordenadas
– Pode haver nós de transformação: rotação, translação e escala...
Half-spaces
• Alguns sistemas CSG, além de primitivas sólidas, também fazem uso de half-spaces, ou seja, planos que dividem o espaço em dois
• Como definir um cubo a partir de half-spaces?– 6 half-spaces
• Vantagem:– Para se fazer um corte, não precisa usar um objeto
com vários lados.• Desvantagem:
– Problema de validação:• nem toda combinação pode resultar em um objeto válido• (talvez só faça sentido usar para subtração)
CSG & raytracing
Um objeto em CSG é comumente descrito por combinações de objetos implícitos, cujos cálculos de interseção com a reta são conhecidos, tornando o raytracing de objetos CSG uma extensão natural.
CSG & raytracing• Realizar operações booleanas com sólidos nem
sempre é uma operação fácil• É mais fácil interpretar o que acontece com um
raio atravessando esse sólido.– redução do problema a cálculos em intervalos 1D
Goldstein and Nagel, “3-D Visual Simulation”, Simulation, January 1971.
CSG 1D
A B A B
A:
B:
A B:
CSG 1DA:
B:
A B:
A B:
A – B:
B – A:
A B B – A
A – B
CSG 1D
• Classificação in/out por região:
Exercício: Preencher a tabela acima!
A B A B A B A – B B – A
in in in in out out
in out in out in out
out in in out out in
out out out out out out
A B A B A B A – B B – A
in in
in out
out in
out out
CSG & Rasterização
• Também é possível visualizar sólidos CSG com rasterização
• Ordenação a posteriori dos fragmentos (pixels de cada primitiva)
• Vide:– Rossignac and Requicha, “Depth-buffering
Display Techniques for Constructive Solid Geometry”, CG & A, September 1986.
Algumas questões
• A ordem na árvore tem importância?– Sim, verticalmente e horizontalmente (dif.).
• Existe uma representação única, dado um objeto final e suas primitivas?– Não
• A árvore tem que ser binária?– Os nós de união e interseção poderiam ter
mais de um filho, mas diferença é sempre entre dois filhos.
Possíveis questões de provaMonte a árvore CSG deste sólido, sabendo que as folhas são 2 cilindros e 1 esfera
Monte a árvore CSG deste sólido e desenhe o que acontece com o raio r ao longo do seu caminho para cada nó da árvore à raíz.
rin
out
Representação Geométrica Paramétrica
• Curvas paramétricas cúbicas– Introdução– Continuidade– Algoritmo de De Casteljau– Hermite, Bézier e Splines (B-Splines e Nurbs)
• Superfícies paramétricas bicúbicas– Bézier...
http://www.cin.ufpe.br/~marcelow/Marcelow/Ensino.html
Curvas Paramétricas Cúbicas
• Por que paramétricas?– são descritas em t
• f(t), 0 ≤ t ≤ 1
0.00.10.20.30.40.50.60.70.80.91.0t =
Por que cúbicas?
• Grau 3:• Por que não <3?
– Pouca flexibilidade
• Por que não >3?– Computacionalmente caro– “Franjas” indesejáveis (unwanted wiggles)
• Por que 3?– Controle suave (derivadas) da curva passando em dois pontos– Menor grau de curva em 3D
Paramétricas
• Por que não f(x), ao invés de f(t)?
• Mas como representar esses casos?x
f(x)
Uma função para cada dimensão
)()()()( tztytxtQ
Matricialmente
• Derivada em t ?
)(tQdt
d
123 tttT
dzdydx
czcycx
bzbybx
azayax
C
CTtztytxtQ )()()()(
zzzyyyxxx ctbtactbtactbta 232323 222
Algoritmo de De Casteljau
Interpolação x Aproximação
John Edson R. de Carvalho
12
12
P0 P2
P1
P01 (u)
P12 (u)
P02 (u)
Algoritmo de De Casteljau
u = 0.25
P0 P2
P1
P01 (u)P12 (u)P02 (u)
u = 0.5
Algoritmo de De Casteljau
P2P0
P12 (u)
P01 (u)
P02 (u)
P1
Algoritmo de De Casteljau
u = 0.75
P2P0
P1
P02(u)
Algoritmo de De Casteljau
0 ≥ u ≥ 1
13
13
http://en.wikipedia.org/wiki/Bézier_curve
∑bi(u) = 1,0 ≥ u ≥ 1
Peso (influência) de cada ponto:
Juntando curvas
• Como representar uma curva grande?
• Poderia se usar uma curva de grau n (n grande para caramba )
• Ou, pode-se fazer emendas de cúbicas– Mas nesse caso, queremos garantir uma boa
continuidade no ponto de junção
Continuidade• Geometric Continuity G0
– Duas curvas tem um ponto de junção
• G1
– Se no ponto de junção, a direção (não necessariamente a magnitude) do vetor tangente é igual para as duas curvas
• C1
– Se, além da direção, a magnitude for igual.
• C2
– Se a direção e magnitude da derivada segunda for igual.
• Cn
– Se a direção e magnitude de for igual.
• Para funções de grau alto, pode-se ter continuidade de grau ainda maior: n-polinomial Cn-1
• Existe G2? Existe C0?
)(tQdt
dn
n
C0, C1, C2, C3, C4
Classificação das curvas
• Definidas por 4 constrains geométricas– Bézier (4 pontos)– Hermite (2 pontos e 2 tangentes)
• Splines– São C1 e C2 nos pontos de junção– Porém, não interpolam os pontos (aproximam)– 3 tipos:
• B-splines• Nonuniform B-splines (Nurbs)• β-splines
Blending Function• Matricialmente, podemos definir a curva como:
• Vamos reescrever C como o resultado da multiplicação entre M e G, onde G são as constrains geométricas
• Blending Function: B = T • M
CTtztytxtQ )()()()(
123 ttt
44434241
34333231
24232221
14131211
mmmm
mmmm
mmmm
mmmm
zyx
zyx
zyx
zyx
GGG
GGG
GGG
GGG
444
333
222
111
)()()()( tztytxtQ
Bézier• 70’s• Como vimos no algoritmo de De Casteljau para
construção de curvas de Bézier– 4 pontos definem a curva de Bézier
– No caso acima, quem são G1, G2, G3 e G4?
123 ttt
44434241
34333231
24232221
14131211
mmmm
mmmm
mmmm
mmmm
zyx
zyx
zyx
zyx
GGG
GGG
GGG
GGG
444
333
222
111
P0
P1
P2
P3
Bézier• No caso de Bézier, quais são os valores de M11 a M44?
123 ttt
44434241
34333231
24232221
14131211
mmmm
mmmm
mmmm
mmmm
3
2
1
0
P
P
P
P
)(tQ
33
22
12
03 )1(3)1(3)1()( PtPttPttPttQ
Lembrando que: (a-b)3 = a3 – 3a2b + 3ab2 – b3 e (a-b)2 = a2 – 2ab + b2
0001
0033
0363
1331
Últimas observações Bézier
• Fecho convexo
Últimas observações Bézier
• Como garantir que duas curvas de Bézier P0P1P2P3 e P4P5P6P7 tenham
– Continuidade G0?
– Continuidade G1?
– Continuidade C1?
• Qual a grau de continuidade da seguinte curva?
Hermite
• 4 constrains geométricos:– 2 pontos e suas 2 tangentes:
4
1
4
1
R
R
P
P
GH
P1
R1
R4
P4
0001
0100
1233
1122
HM
Hermite• Hermite Blending Function
• Familia de curvas alterando magnitude e direção de R1
Splines• Origem: “ducks” usados para retorcer uma chapa de metal
flexível (spline) na determinação de superfícies curvas para navios, aviões e carros.
• Observe que a spline interpola todos os pontos de controle• A spline é contínua em C0, C1 e C2.
B-splines
• Splines tem duas desvantagens:– Os coeficientes dependem de todos os pontos de controle
• ou seja, mover um ponto de controle pode afetar toda a curva
– A computação depende de inversão de matrizes
• B-splines são uma solução:– Os segmentos dependem de alguns poucos pontos de controle– Tem a mesma continuidade das splines– Menor computação– Porém: não interpolam todos os pontos
• Uniforme x não-uniforme– Se os pontos de controles estiverem equidistantemente
distribuídos, então ela é uniforme– Caso contrário: não uniforme: NURBS
Superfícies paramétricas
Superfícies paramétricas bicúbicas
• Multiplicação de duas curvas• A informação geométrica que define uma
curva é também em função de uma variável paramétrica
• Forma geral de uma superfície 3D:
Superfícies paramétricas bicúbicas
• Vimos que um curva cúbica pode ser definida por (onde G é o vetor
geométrico):
• Substituindo t por s (temos que ter outra variável para o caso das
superfícies), então:
• Imaginemos os pontos em G variando em 3D, parametrizado por t:
• Se Gi(t) forem cúbicos, então Q(s,t) é uma superfície paramétrica
bicúbica
)(
)(
)(
)(
)(),(
4
3
2
1
tG
tG
tG
tG
MStGMStsQ
GMTtQ )(
GMSsQ )(
• Cada Gi(t) = T•M•G, é definido por Gi = [gi1, gi2, gi3, gi4]T
• Usando (ABC)T= CT • BT • AT,
• Gi(t) = GT•MT•TT = [gi1, gi2, gi3, gi4]T •MT •TT,
• Então:
• Escrito separadamente:
Superfícies de Bèzier
Retalhos de Bézier• Curvas na fronteira são curvas de Bézier• Qualquer curva para s ou t constante é uma curva Bézier• Podemos pensar assim:
– Cada linha da grade com 4 pontos de controle define uma curva de Bézier para o parâmetro s
– Ao avaliar cada curva para um mesmo s obtemos 4 pontos de controle “virtuais”
– Pontos de controle “virtuais” definem uma curva Bézier em t– Avaliando esta curva em um dado t resulta no ponto x(s,t)
x(s,t)
Propriedades dos Retalhos de Bézier
• O retalho interpola os pontos dos cantos da grade de controle– Decorre das propriedades análogas das curvas de Bézier
• O plano tangente em um ponto do canto é dado pelas duas arestas da grade incidentes no ponto– Decorre do fato que as curvas Bézier das fronteiras incidentes
têm tangentes definidas pelas arestas correspondentes
• O retalho é restrito ao fecho convexo da grade de controle– As funções de base somam 1 e são positivas em toda parte
Retalhos Bézier em Forma Matricial
• Se os pontos de controle não se modificam, pode-se pré-computar o produto das 3 matrizes do meio:
10001
0033
0363
1331
0001
0033
0363
1331
1),(
),(
2
3
3,32,31,30,3
3,22,21,20,2
3,12,11,10,1
3,02,01,00,0
23
t
t
t
PPPP
PPPP
PPPP
PPPP
ssstsx
PBTBStsx TT
1
1),(2
3
3,32,31,30,3
3,22,21,20,2
3,12,11,10,1
3,02,01,00,0
23
t
t
t
MMMM
MMMM
MMMM
MMMM
ssstsx
Malhas de Retalhos Bézier
• São malhas compostas de diversos retalhos unidos ao longo de suas fronteiras– As arestas das grades de controle precisam se justapor
perfeitamente– As grades precisam ser quadriláteros
OK
OKNão Não
Continuidade em Malhas de Retalhos Bézier
• Como no caso das curvas Bézier, os pontos de controle precisam satisfazer restrições para assegurar continuidade paramétrica
• Continuidade ao longo das arestas dos retalhos:– C0 → Pontos de controle da aresta são os mesmos em ambos retalhos– C1 → Pontos de controle vizinhos aos da aresta têm que ser colineares
e eqüidistantes– C2 → Restrições sobre pontos de controle mais distantes da aresta
• Para obter continuidade geométrica, as restrições são menos rígidas– G1 → Pontos de controle vizinhos aos da aresta têm que ser colineares
mas não precisam ser eqüidistantes
• Para obter continuidade C1 nos vértices das grades– Todas as arestas incidentes no ponto têm que ser colineares
Desenhando Retalhos Bézier• Opção 1: Avaliar o retalho para um conjunto de
pontos do domínio paramétrico e triangular– Normalmente, s e t são tomados em intervalos (regulares ou
não) de forma que os pontos avaliados formam uma grade– Cada célula da grade é constituída de quatro pontos que
vão gerar 2 triângulos– Não se usa quadriláteros visto que os pontos não são
necessariamente co-planares– Renderização fácil com triangle strips– Vantagem: Simples e suportado pelo OpenGL– Desvantagem: Não há uma maneira fácil de controlar o
aspecto da superfície de forma adaptativa
Desenhando Retalhos Bézier
• Opção 2: Usar subdivisão– Permite controle de erro durante a aproximação– Definida de forma semelhante à subdivisão de curvas
Bézier, mas refinamento é feito de forma alternada nos dois eixos de parâmetros
– Sucessivamente computar pontos médios dos vértices e uní-los
• Aplicar procedimento inicialmente em cada linha da grade de controle: 4x4 → 4x7
• Repetir procedimento para cada coluna da grade de controle: 4x7 → 7x7
Procedimento Adaptativo
• Através da subdivisão obtemos 4 grades de controle e testamos:– Se a grade é aproximadamente plana, ela é desenhada– Senão, subdividir em 4 sub-grades e aplicar o procedimento
recursivamente
• Problema: Retalhos vizinhos podem não ser subdivididos uniformemente– Rachaduras: polígonos de controle não se justapõem – Pode ser consertado forçando grades mais subdivididas a se
justaporem às grades menos subdivididas ao longo da aresta comum
Rachadura
Normal
• Como calcular a normal de uma superfície paramétrica Q(s,t) no ponto s=α e t=β ?
s = α
t = β
Computando o Vetor Normal
• Derivadas parciais em relação a t e a s pertencem ao plano tangente
• Vetor normal é calculado normalizando o produto cruzado de ambas
n
i
m
j
mj
s
ni
jits
tBds
dB
s 0 0,
,
Px
n
i
m
j t
mjn
ijits dt
dBsB
t 0 0,
,
Px
n
nn
xxn
ˆ ,, tsts ts
Exemplos de outras superfícies paramétricas
• Superfícies criadas por rotação de um curva em torno de um eixo
• Knots: movimentação de um círculo no espaço– Exemplo: Trefoil Knot
Representação Geométrica Explícita
Referências das transparências:– Prof. Paulo Roma– Prof. Thomas Ottmann e Khaireel A. Mohamed–
Paradigma dos quatro universos.
• Objetos do universo físico: “sólidos” (formas)• Universo matemático, descrição:
– Implícita x Paramétrica x Explícita
• Explicitamente, exemplos de representação:
mapa de
altura
por bordo (superfícies poliédricas)
por volume(voxles)
Representação explícita por bordo (superfícies poliédricas)
• Qualquer poliedro convexo pode ser representado por uma subdivisão planar (representação linear por partes)– Malha de polígonos (ou malha de triângulos)
Representação Linear por Partes
• Superfície com geometria complexa pode ser aproximada por uma superfície linear por partes.
• Particiona-se o domínio da parametrização por um conjunto de polígonos.– Cada vértice no domínio poligonal é levado para a
superfície pela parametrização.– A conectividade entre vértices adjacentes se mantem.
Propriedades
• Gera uma malha poligonal, definida por um conjunto de vértices, arestas e faces.– Cada aresta é compartilhada por no máximo duas
faces.– A interseção de duas faces é uma aresta, um vértice
ou vazia.
• Relação de EulerF + V = A + 2
• Adjacência de vértices, arestas e faces é chamada de topologia da superfície.
Relação de Euler• F + V = A + 2
(Foi Você que Assassinou o 2)– Existe uma face externa
• F + V = A + 2s• s é a quantidade de bordas da
malha (depende do genus do objeto)– O genus do objeto depende da
quantidade de “alças” (handles)
g = 0
g = 1
g = 2
Geometria x Topologia
• Dois objetos com a mesma geometria podem ter topologias diferentes
• Dois objetos com a mesma topologia podem ter geometrias diferentes
• Vamos nos concentrar na topologia! – Problema em 2D
Manifold• Uma superfície é 2-manifold se em todo o seu
domínio ela for localmente homeomorfa a um disco
manifold non-manifold edge
Non-manifold vertex
Subdivisão Planar• Como representar (codificar)?
– lista de vértices e arestas, ou – lista de vértices e faces,– Winged edge ou Half edge ou ...
• Operações sobre Malhas Poligonais– Achar todas as arestas que incidem em um vértice.– Achar as faces que incidem numa aresta ou vértice.– Achar as arestas na fronteira de uma face– As 9 perguntas devem ser respondidas em tempo ótimo!
9 tipos de Relacionamentos de Adjacência
Codificação
• Explícita.
• Ponteiros para lista de vértices.
• Ponteiros para lista de arestas.
• Winged-Edge (Half-Edge, Face-Edge).
• Quad-Edge (Guibas-Stolfi).
• Radial-Edge.
• Half-Edge.
Sugestões?
Codificação Explícita
• A mais simples.• Cada face armazena explicitamente a lista
ordenada das coordenadas dos seus vértices:
• Muita redundância de informação.• Consultas são complicadas.
– Obriga a execução de algoritmos geométricos para determinar adjacências.
),,(),...,,,(),,,( 222111 nnn zyxzyxzyxP
Desenho da Malha
• Cada aresta é desenhada duas vezes, pelos duas faces que a compartilham.
• Não é bom para plotadoras ou filmes.
Ponteiros para Lista de Vértices
• Vértices são armazenados separadamente.
• Há uma lista de vértices.
• Faces referenciam seus vértices através de ponteiros.
• Proporciona maior economia de memória.
• Achar adjacências ainda é complicado.
• Arestas ainda são desenhadas duas vezes.
Exemplo
Ponteiros para Lista de Arestas
• Há também uma lista de arestas.• Faces referenciam as suas arestas
através de ponteiros.• Arestas são desenhadas percorrendo-se a
lista de arestas.• Introduzem-se referências para as duas
faces que compartilham uma aresta.– Facilita a determinação das duas faces
incidentes na aresta.
Exemplo
Outra linha de solução...
• DCEL: Doubly-Connected Edge List – winged-edge– radial-edge– half-edge
Winged-Edge
Winged-Edge
• Criada em 1974 por Baumgart.• Foi um marco na representação por fronteira.• Armazena informação na estrutura associada às
arestas (número de campos é fixo).• Todos os 9 tipos de adjacência entre vértices,
arestas e faces são determinados em tempo constante.
• Atualizada com o uso de operadores de Euler, que garantem: V – A + F = 2.
• Porém, o tamanho da estrutura é: 3V + 8A + F
DCEL (Doubly-Connected Edge List )• Winged-Edge• Facial-Edge
– Resolve faces dentro de faces
• Radial-Edge (Weiler, 1986)– Representa objetos non-manifold.– Armazena a lista ordenada de faces incidentes em uma aresta.– Muito mais complicada que a Winged-Edge.
• Half-edge– Enxuta
– A mais popular!!!
Estrutura de dados Half-edge
• A estrutura de dados de uma Half-edge deve armazenar:– Ponteiro para a half-edge seguinte– Ponteiro para a half-edge oposta– Ponteiro para sua face– Ponteiro para o vértice de origem
• Face data structure stores:– Ponteiro para uma das half-edges da face
• Vertex data structure stores: – Ponteiro para uma das half-edges de origem no
vértice
Código da estrutura Half-edge
H_Edge
f eNext
ePrev
vOrig eTwin
class H_Edge { Vertex vOrig; H_Edge eTwin; H_Edge eNext; Face f;}
class Vertex { Point2D p; H_Edge hEdge;}
class Face { H_Edge hEdge;}
Observações:
• Para um mesmo Vertex podem existir diversos H_Edge, porém, basta guardar um deles com origem no Vertex.
• Na face, basta guardar uma de suas H_Edge
DCEL Example: Planar SubdivisionVertex
v1
v2
v3
v4
v5
v6
v7
v8
v9
v10
v11
p(1,1)
(10,0)
(9,5)
(2,7)
(5,8)
(8,9)
(5,11)
(7,13)
(1,13)
(11,12)
(6,15)
hEdgee1_3
e2_3
e3_4
e4_9
e5_9
e6_7
e7_8
e8_6
e9_11
0 1 2 3 4 5 6 7 8 9 10 110
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
v1
v2
v3
v4
v5v6
v7
v8v9v10
v11
f1
f3
f2
f4
((Fazer exemplo no quadro))
DCEL Example: Planar SubdivisionHalf-Edge
e1_3
e3_1
e2_3
e3_2
e10_3
e11_10
e9_11
e4_9
e3_4
e4_3
e9_4
e5_9
e3_5
e5_3
e9_5
e11_9
vOrigv1
eTwine3_1
ff1
eNexte3_4
ePreve3_1
0 1 2 3 4 5 6 7 8 9 10 110
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
v1
v2
v3
v4
v5v6
v7
v8v9v10
v11
f1
f3
f2
f4
DCEL Example: Planar SubdivisionHalf-Edge
e10_11
e3_10
e6_7
e8_6
e7_8
e8_7
e7_6
e6_8
vOrigv10
eTwine11_10
ff3
eNexte11_9
ePreve3_10
Facef1
f2
f3
f4
eOuterCompNULL
eInnerCompse1_3
0 1 2 3 4 5 6 7 8 9 10 110
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
v1
v2
v3
v4
v5v6
v7
v8v9v10
v11
f1
f3
f2
f4
Half-edge data structure
• Example:Vertex listV coord he0 0 0 0 01 1 0 0 12 1 1 0 23 …..
01
23
45
76
Face listf e0 e01 e82 …
Half-edge listhe to_vertex next_he opposite_he face0 1 1 6 01 2 2 11 02 3 3 15 03 0 0 18 0
9
10
0
1
23
8
11
Exemplos de questões de prova
this
P1, 2011.1
P3, 2011.1
P1, 2010.2
Triângulos
• Muitos sistemas trabalham exclusivamente com malhas de triângulos
• Por que triângulos?• Algumas propriedades especiais:
– Vértices são sempre coplanares– Sempre convexo– Interpolação linear
(coordenadas baricêntricas)– Qualquer malha de polígonos pode ser transformada
em malha de triângulos– Especialidade das GPU’s– Triângulo é sempre rígido (ex: Torre Eifel)
Outros Temas em Geometria Computacional
• Interseção de segmento de linhas• Localização de Ponto
– Em um polígono– Em uma subdivisão planar
• Triangulação de Delaunay– Delaunay (maximiza o menor ângulo de todos os triângulos)
• “gordura dos triângulos”• Diagramas de Voronoi
– Mapa de localização de ponto mais próximo– Grafo complementar ao Delaunay
• Fecho Convexo 3D• Planejamento de Movimentação de Robôs• Grafos de Visibilidade• Árvores Espaciais
– Kd-Trees– Quadtrees– BSP (Binary Space Partition)