2 - Rodrigo Toledo

Download Report

Transcript 2 - Rodrigo Toledo

Geometria Computacional

Vetores e operações Polígonos

Vetores

• Os vetores podem estar definidos no 

n

, com

n

componentes (usualmente trabalharemos com vetores no  2 e  3 ).

– v 1   3 , cujas coordenadas são x 1 , y 1 e z 1 • Se originam no zero • Podem ser definidos pelo seu tamanho e sua direção • Podem ser criados a partir da subtração das coordenadas de dois pontos

Operações com Vetores

• SomaVetorial ( v 1, v 2 ) = v 1+ v 2 • MultiplicaçãoPorEscalar (  , v ) =  v • Norma, módulo ou tamanho!

– Em  2 , Norma ( v ) = || v || = (pitágoras) – Em  3 , Norma ( v ) = || v || = • ProdutoEscalar ( v 1• v 2 ) = x 1 x 2

x

2 

y

2  + y 1 y 2

z

2 • ProdutoVetorial ( v 1 x v 2 ) – – 

2

3

  , ( v 1 x v 2 ) = x 1 y 2 – y 1 x 2  

3

, ( v 1 x v 2 ) = { y 1 z 2 – z 1 y 2 , z 1 x 1 – x 1 z 2 , x 1 y 2 – y 1 x 2 }

Produto Escalar de Vetores

• Dados dois vetores, v 1 [x1,y1] o produto escalar v 1• v 2 é: e v 2 [x2,y2] definidos no  2 , v 1• v 2 = x 1 x 2 + y 1 y 2 • Podemos afirmar também a seguinte identidade: v 1• v 2 = | v 1| | v 2| cos  , onde  é o ângulo formado pelos vetores.

• Se o resultado for positivo, o ângulo é agúdo, senão é obtuso.

• Portanto o ângulo entre dois vetores pode ser calculado por:

ângulo (

v

1,

v

2) = arc cos (

v

1•

v

2 / |

v

1| |

v

2|)

• O ângulo retornado é um valor entre [0,  ].

• Se forem vetores unitários não é necessária a divisão pelo módulo • Em inglês se chama

Dot Product

Produto Vetorial

• 

2

 • O produto vetorial de dois vetores em  2 resulta em um escalar “a esquerda” de v1 • Há controvérsias quanto a chamar esta operação em  2 de produto vetorial, pois o resultado não é um vetor.

• 

3



3

• O produto vetorial de dois vetores em  3 vetor em  3 resulta em um outro

Produto Vetorial

2

 

• (

v 1 x 90º do v

v

2

) = {

x 1 y 2 – y 1 x 2

}

• observe que pode ser interpretado como rotação anti-horária de 1 e então a aplicação do produto escalar

v 1 x v 2 > 0, se e só se v 2 está “a esquerda” de v 1 • pode ser usado para determinar se dois segmentos de retas se cruzam a c b d • (ab x ac) e (ab x ad) devem ter sinais opostos, nesse caso garante que a reta ab cruza o segmento cd • (cd x ca) e (cd x cb) devem ter sinais opostos, nesse caso garante que a reta cd cruza o segmento ab • ||

v

1x

v

2|| / 2 é a área do triângulo formado por v1 e v2 (esta fórmula pode ser estendido para polígonos planos quaisquer)

Produto Vetorial

• 

3

 

3

(

v 1 x v 2

) = {

y 1 z 2 – z 1 y 2 , z 1 x 1 – x 1 z 2 , x 1 y 2 – y 1 x 2

}

• resultado: vetor simultaneamente ortogonal a v 1 obedecendo a regra da mão direita.

• pode ser usado para saber a normal de um plano e v 2 ,

Regras da Geometria

• Somatório dos ângulos de um polígono de

n

lados é sempre igual a (

n

– 2) * 180º • Vértices – Arestas + Faces = 2 x x = número de bordas (ou seja, 1 + buracos) • Três pontos definem um plano no espaço

Fecho Convexo

• “Encontrar menor figura geométrica que contenha um determinado conjunto de pontos.” (idéia do elástico) • Sugestão de algoritmo?

• Algoritmo de Graham  • Utilidades?

O(

n

log

n

)

Subdivisão Planar

• Como representar?

– lista de vértices e arestas, ou – lista de vértices e faces, – Winged edge ou Half edge ou ...

• As 9 perguntas devem ser respondidas em tempo ótimo!

• Triangulação – Por que triangular?

• 3 pontos definem um plano • Coordenadas baricêntricas para interpolação • Sempre é possível criar uma triangulação a partir de qualquer polígono ou a partir de um conjunto de pontos • Triângulo é sempre convexo • Triângulo é sempre rígido (Torre Eifel) – Delaunay (maximiza o menor ângulo de todos os triângulos) • “gordura dos triângulos”

Outros Temas em Geometria Computacional

• Interseção de segmento de linhas • Localização de Ponto – Em um polígono – Em uma subdivisão planar • Diagramas de Voronoi – Mapa de localização de ponto mais próximo – Totalmente amarrado ao Delaunay • Fecho Convexo 3D • BSP (Binary Space Partition) – Algoritmo do Pintor • Planejamento de Movimentação de Robôs • Grafos de Visibilidade • Árvores Espaciais – Kd-Trees – Quadtrees