Visualização por Computador: Teoria, Prática e Aplicações Noções de Geometria e Álgebra Linear Claudio Esperança Programa de Engenharia de Sistemas e Computação COPPE / UFRJ Master of Information Management, 2008
Sumário 1 Geometria Afim 2 Geometria Euclidiana 3 Transformações 4 3D
Geometria Afim Estudo de propriedades geométricas preservadas por transformações afim Transformação afim = transformações lineares + translações Transformação linear = função entre dois espaços de vetores que preservam soma de vetores e multiplicação por escalares
Pontos e Vetores
Pontos e vetores Ponto: Denota posição no plano Vetor: Denota deslocamento, isto é, inclui a noção de direção e magnitude Em 2D ambos são representados em coordenadas cartesianas usando dois escalares: P = [x P, y P ] v = [x v, y v ] Pontos e vetores não são a mesma coisa.
Operações: Soma/Subtração de vetores
Operações: Subtração de pontos
Operações: Multiplicação por escalar
Operações com pontos e vetores Soma/subtração de vetores: t = v + u t u = v Subtração de pontos / Soma de ponto e vetor: v = P Q Q + v = P Multiplicação de vetor e escalar: t = u + u = 2 u Não faz sentido: Soma de pontos Multiplicação de ponto e escalar Exceção: combinações afim
Combinações afim Maneira especial de combinar pontos: α 1 P 1 + α 2 P 2 + + α n P n, α i = 1 i Na verdade, temos apenas multiplicação de escalares por vetores Para 2 pontos P e Q poderíamos ter uma combinação afim R = (1 α)p+αq = P+α(Q P)
Combinação convexa É uma combinação afim onde todos os coeficientes são não negativos Usa-se esse nome porque qualquer ponto que é uma combinação convexa de n outros pontos pertence ao fecho convexo desses pontos
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)
Produto Escalar Normalmente usamos o produto escalar como operador de produto interno: d v u = v i u i, onde d é a dimensão do espaço i=1 Comprimento de um vetor é definido como: Vetor unitário (normalizado): v = v v ˆv = v v
Distância, ângulo, projeção ortogonal Distância entre dois pontos P e Q: P Q Ângulo entre dois vetores u e v: ângulo( u, v) = cos 1 1 u v û ˆv = cos u v Projeção ortogonal: dados dois vetores u e v, deseja-se decompor u na soma de dois vetores u 1 e u 2 tais que u 1 é paralelo a v e u 2 é perpendicular a v u 1 = ( u v)ˆv u 2 = u = u 1
Produto Vetorial (3D) Permite achar um vetor perpendicular a outros dois vetores dados Útil na construção de sistemas de coordenadas u y v z u z v y i j k u v = u z v x u x v z = u x u y u z u x v y u y v x v x v y v z.
Propriedades do produto vetorial Assumindo u, v linearmente independentes: Antisimetria: u v = v u Bilinearidade: u (αv) = α( u v), 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 θ, onde θ é o ângulo entre u e v
Orientação Operação relacionando d + 1 pontos em um espaço d-dimensional Resultado é sempre 1, 0 ou +1 Em R 1, corresponde à ordem entre 2 pontos, isto é, P 1 < P 2, P 1 = P 2 ou P 1 > P 2 Em R 2, corresponde à circulação entre 3 pontos: o percurso P 1, P 2, P 3 é horário, anti-horário, ou se são pontos colineares Em R 3, diz se o percurso entre 4 pontos P 1, P 2, P 3, P 4 descreve um parafuso horário, anti-horário ou se são coplanares.
Computado orientação O operador orientação é muito útil no cômputo de diversos predicados geométricos: ponto sobre reta, ponto sobre plano, etc. 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. Ex.: Or(P, Q, R) = sign( 1 1 1 x P x Q x R y P y Q y R )
Sistemas de coordenadas Um sistema de coordenadas para R n é definido por um ponto (origem) e n vetores Exemplo Seja um sistema de coordenadas para R 2 definido pelo ponto O e os vetores X e Y Então, um ponto P é dado por coordenadas x P e y P tais que P = x P X + yp Y + O Um vetor v é dado por coordenadas x v e y v tais que v = x v X + yv Y
Transformações Função que mapeia pontos de um espaço euclidiano em outros pontos do mesmo espaço Transformação linear Mapeia retas em retas Preserva relações de distância Preserva o ponto origem Transformação linear afim Não necessariamente preserva a origem Permite operações de translação
Transformação de pontos em 2D Seja P um ponto e P = T(P) o ponto transformado Se T é linear { xp = a x P + b y P y P = c x P + d y P Se T é linear afim { xp = a x P + b y P + e y P = c x P + d y P + f
Forma matricial Matrizes podem ser processadas mais eficientemente em computadores do que variáveis simples Sejam P = [ xp y P ] [ ] [ ], P xp a b =, A =, D = y P c d [ e f ]. Então transformações lineares de pontos em 2D podem ser expressas por P = AP, e transformações lineares afim por P = AP + D.
Transformações de vetores Transformações lineares afim e lineares puras afetam vetores da mesma maneira Vetores não têm ponto de aplicação Translação não faz sentido para vetores Prova: V = T(V ) = T(Q P) = (AQ + D) (AP + D) = A(Q P) + (D D) = AV.
Coordenadas homogêneas Transformação de vetores é diferente da de pontos Coordenadas homogêneas permitem unificar o tratamento Problema é levado para uma dimensão superior: Coordenada extra w = 0 para vetores e = 1 para pontos Termos independentes formam uma coluna extra na matriz de transformação P = V = x P y P 1 x V y V 0 = = a b e c d f 0 0 1 a b e c d f 0 0 1 x P y P 1 x V y V 0 = TP = TV
Interpretação da matriz de transformação As colunas da matriz de transformação podem ser vistas como as componentes do sistema de coordenadas a b e c d f 0 0 1 = Portanto, transformar um ponto ou vetor pode ser visto como uma mudança do sistema de coordenadas X Y O
Mudança de sistema de coordenadas Se estabelecemos um outro sistema de coordenadas (ex.: Q, U, V ), como obter as coordenadas de pontos nesse sistema?
Mudança de sistema de coordenadas - Problema 1 Sabe-se: Coordenadas de P no sistema de coordenadas O, X, Y : [x P, y P ] Coordenadas de O, X, Y no sistema de coordenadas Q, U, V : [u O, v O ], [u X, v X ], [u Y, v Y ]. Deseja-se: Coordenadas de P no sistema de coordenadas Q, U, V : [u P, v P ] Substituindo: P = x P X + yp Y + O Então: = x P (u X U + vx V ) + yp (u Y U + vy V ) + (uo U + vo V + Q) = (x P u X + y P u Y + u O ) U + (x P v X + y P v Y + v O ) V + Q u P = x P u X + y P u Y + u O e v P = x P v X + y P v Y + v O
Mudança de sistema de coordenadas - Problema 2 Matricialmente o problema 1 é resolvido: u P u X u Y u O v P = v X v Y v O 1 0 0 1 x P y P 1 Para resolver o problema inverso, basta inverter a matriz: x P y P 1 = u X u Y u O v X v Y v O 0 0 1 1 u P v P 1
Pontos e vetores em 3D Pontos e vetores em 3D meramente requerem uma coordenada extra z: x P x V y P = P y V = V z P z V 1 0 Transformações afim requerem uma linha e uma coluna extra: T = a b c k e f g l h i j m 0 0 0 1
Transformações Rígidas Não modificam a forma ou dimensões do objeto São compostas de uma rotação e uma translação Numa transformação rígida, a submatriz 3 3 superior esquerda tem que ser ortonormal Vetores unitários e ortogonais entre si
Translações Translação por um vetor V = [x V, y V, z V ] T é dada pela matriz homogênea T = 1 0 0 x V 0 1 0 y V 0 0 1 z V 0 0 0 1 Observe que translações são comutativas P+ V 1 + V 2 = P+ V 2 + V 1
Rotação em torno do eixo z R z roda objetos de um ângulo θ em torno do eixo z Então, Rz 1 mapeia [1, 0, 0] T [cos θ, sin θ, 0] T [0, 1, 0] T [ sin θ, cos θ, 0] T Logo, R z = cos θ sin θ 0 0 sin θ cos θ 0 0 0 0 1 0 0 0 0 1
Rotação em torno dos eixos x e y R x = Raciocínio análogo permite concluir que 1 0 0 0 0 cos θ sin θ 0 R 0 sin θ cos θ 0 y = 0 0 0 1 cos θ 0 sin θ 0 0 1 0 0 sin θ 0 cos θ 0 0 0 0 1
Rotação ao redor de um eixo arbitrário A rotação ao redor do vetor unitário u = [x, y, z] T por um ângulo θ é dada pela submatriz 3 3 R = uu T + (cos θ)(i uu T ) + (sin θ)s Onde I é a matriz identidade e S = 0 z y z 0 x y x 0
Escala Especificada por três fatores S x, S y e S z que multiplicam os eixos x, y e z S x 0 0 0 0 S E = y 0 0 0 0 S z 0 0 0 0 1 Escala não é uma transformação rígida em geral Escala uniforme (S x = S y = S z ) é uma transformação ortogonal ou homotética, isto é, preserva os ângulos Para obter reflexão em torno do plano z = 0, usar fatores de escala (1, 1, 1)