A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Visão Computacional Geometria de Transformações

Apresentações semelhantes


Apresentação em tema: "Visão Computacional Geometria de Transformações"— Transcrição da apresentação:

1 Visão Computacional Geometria de Transformações
Luiz M. G. Gonçalves

2 Transformações Vetores, bases e matrizes Translação, rotação e escala
Coordenadas homogêneas Rotações e translações 3D

3 Vetor Entidade Física Exemplos: Entidade Geométrica

4 Vetores Noção da Física: Exemplos: Representação matemática:
comprimento, direção, sentido Exemplos: velocidade, força, deslocamento Representação matemática: Enuplas ordenadas v = (v1,v2,…,vn) u v

5 Vetores Soma, subtração e multiplicação p/ escalar
Produto escalar: u.v = u1v1+u2v2+…+unvn Produto vetorial: Norma: ||v ||= (v12+v22+…+vn2)1/2 Unitário: ||v ||= 1 Ângulo: (u,v) = acos-1[(u.v) / (||u|| ||v)] Ortogonalidade: u.v = 0 ((u,v)=90o) u v

6 Uso de transformações Construir modelos complexos a partir de componentes simples Transformar coordenadas de câmera em mundo, objeto e imagem e vice-versa Analisar efeitos de transformações rígidas e não rígidas em objetos xc yim xim yc yw yo zc zo xw xo zw

7 Uso de transformações Animação
Variar transformações no tempo para criar movimento xc yim xim yc yw yo zc zo xw xo zw

8 Cinemática

9 Combinação linear Dados dois vetores v1 e v2,ande uma distância qualquer na direção de v1 e então ande outra distância na direção de v2 O conjunto de todos os lugares (vetores, pontos) que podem ser atingidos é dado pelas combinações lineares possíveis entre v1 e v2 Um conjunto de vetores é dito linearmente independentes se nenhum deles pode ser escrito como uma combinação linear dos outros

10 Combinação linear V = k1V1+k2V2 V = k1V1+k2V2 k2V2 v2 v1 k1V1

11 Independência Linear Um conjunto de vetores é dito linearmente independente se nenhum dos vetores pode ser escrito como uma combinação linear dos outros Exemplo de 3 vetores LI: e1 = (1,0,0) e2 = (0,1,0) e3 = (0,0,1)

12 Bases vetoriais Uma base vetorial é um conjunto de vetores linearmente independentes entre si, cuja combinação linear leva a qualquer lugar dentro do espaço, isto é, varre o espaço. Para varrer um espaço n-dimensional, são necessários n vetores Se a base é normalizada e os vetores mutu-amente ortogonais, ela é dita ser ortonormal Obviamente, há muito mais que uma base possível para um dado espaço vetorial.

13 Representação de vetores
Todo vetor tem uma representação única numa dada base Os multiplicadores pelos vetores da base são chamados de componentes ou coordenadas Mudando a base, muda os componentes, mas não o vetor V= v1E1+v2E2+...+vnEn Os vetores E1, E2, ..., En são a base Os escalares v1, v2 , ..., vn são os componentes de v com respeito à base.

14 Transformação Linear e Afim
Uma função (ou mapeamento ou ainda transformação) F é linear se, para todos os vetores v1 e v2 e todos escalares k: F(V1+V2) = F(V1) + F(V2) F(kV1) = kF(V1) Qualquer mapeamento linear é completamente especificado pelo seu efeito numa base vetorial

15 Efeito na base v = v1E1+ v2E2+ v3E3 F(v) = F(v1E1+v2E2+v3E3)=
= F(v1E1)+F(v2E2)+F(v3E3)= = v1F(E1) + v2F(E2)+v3F(E3) Uma função F é afim se ela é linear mais uma translação Então a função y = mX+b não é linear, mas é afim

16 Transformando um vetor
(f11v1+f12v2 +f13v3)E1+(f21v1+f22v2+f23v3)E2+(f31v1+f32v2+f33v3)E3 As coordenadas do vetor da base transformado (em termos dos vetores da base original): F(E1) = f11E1 +f21E2+f31E3 F(E2) = f12E1 +f22E2+f32E3 F(E3) = f13E1 +f23E2+f33E3 O vetor geral V transformado torna-se: F(V) = v1F(E1) + v2F(E2)+v3F(E3) = v1(f11E1+f21E2+f31E3)+v2(f12E1+f22E2+f32E3)+v3(f13E1+f23E2+f33E3)=

17 Transformando um vetor
Suas coordenadas ainda em referência a E tornam-se: v1´= f11v1 +f12v2+f13v3 v2´= f21v1+f22v2+f23v3 v3´= f31v1+f32v2+f33v3 Ou simplesmente vi = fijvj que é a fórmula de multiplicação matricial

18 Multiplicação de matrizes!
Uma matriz F de dimensões nxn representa uma função linear em n dimensões A i-ésima coluna mostra o que a função faz ao vetor de base correspondente Transformação é uma combinação linear das colunas de F Primeiro componente do vetor de entrada escala a primeira coluna da matriz acumula no vetor de saída repete para cada coluna e componente

19 Exemplo: ACHANDO A MATRIZ
F:R2->R2: (x, y) -> (2x, 3y) E1 = (1,0), E2 = (0,1) F(E1) = (2, 0) F(E2) =(0,3) Em forma matricial: X 0 3 Y F:R2->R2: (x, y) -> (2x+y, 3y+x)

20 Multiplicação matricial
Usualmente calcula-se de modo diferente faça o produto interno da coluna i da matriz com o vetor de entrada para conseguir componente i do vetor de saída: v1´ f11 f12 f v1 v2´ = f21 f22 f v2 v3´ f31 f32 f v3

21

22 Translação

23 Rotação

24 Matriz de rotação possui vetores unitários

25 Representação da rotação

26 Rotação em torno de Z

27 Exemplo de rotação

28

29

30

31 Relações espaciais Representação em relação a um frame (sistema de coordenadas) P (X,Y,Z)

32 Orientação

33 Orientação

34 Matriz de orientação

35 Propriedade elementar (unitária)

36 Transformações Homogêneas
Juntando posição e orientação

37 Juntando orientação e posição

38 Coordenadas Homogêneas

39 Juntar rotação e translação

40 Coordenadas homogêneas
Translação não é linear. Como representar em forma de matriz? Adiciona uma coordenada extra a cada vetor x´ tx x y´ = ty y z´ tz z Coordenada extra é chamada de homogênea (ou w) Transformação denominada homogênea

41 Transformação Homogênea

42

43 Transformações Homogêneas 3D
São muito similar ao 2D Coordenadas homogêneas requerem matrizes 4x4 Matrizes de translação e escala são:

44 Representação da rotação
Representação da rotaçao é mais complexa

45 Rotação 3D Rotação é um pouco mais complicado
Sistema de coordenadas de mão direita ou esquerda afeta direção de rotação Sistema de mão direita Sistema de mão esquerda y x z y z x

46 Produto Cruzado (Vetorial)
Eixo Z é determinado a partir dos eixos X e Y pelo produto vetorial Produto vetorial segue regra da mão direita em um sistema de mão direita e regra da mão esquerda em um sistema de mão esquerda Estaremos trabalhando quase sempre com sistema de mão direita

47 Matriz dual Se v = (x,y,z) é um vetor, a matriz v*= é denominada matriz dual de v Produto vetorial: v x a = v* a Ajuda a definir rotações em torno de eixo arbitrário Velociade angular e matriz dual vezes derivadas Interpretação geométrica de v* a: Projeta a num plano normal a v Rotaciona de 90º em torno de v Vetor resultante é perpendicular a v e a a

48 Ângulos de Euler para rotações 3D
Ângulos de Euler: 3 rotações em torno de cada eixo, porém: Interpolação de ângulos para animação produz movimentos bizarros Rotações dependem da ordem, e não existem convenções para que ordem usar Usado amplamente, devido à simplicidade Conhecidos como row, pitch, yaw

49 Roll (x), Pitch (y), Yaw (z)

50 Rotação em torno de cada eixo

51 Generalização da Rotação

52 Rotação arbitrária Dado um eixo ou direção (x,y,z) e um ângulo , a matriz de rotação fica: Y - (Px’,Py’,Pz’) (Px,Py,Pz) (x,y,z) X Z

53 Exemplo de rotação + translação

54 Exemplo: continuação

55 Problema da comutatividade
Translação seguida de rotação é diferente de rotação seguida de translação

56 Transformações em cadeia

57 Seqüência de transformações
Mesmo conjunto aplicado a vários pontos Calcular e combinar matrizes é rápido Reduzir a seqüência numa única matriz

58 Colapsando transformações
Considere a seqüência p’=ABCDp Multiplicação não é comutativa (ordem) Multiplicação é associativa Da esquerda para a direita (pré-multiplicação) Direita para a esquerda (pós-multiplicação) ABCD = (((AB)C)D) = (A(B(CD))) Troque cada matriz pelo produto do par

59 Colapsando transformações
Mesmo resultado:

60 Convenção vetor-coluna
Transformação por matriz x vetor A(B(C(D(x)))) = produto matriz-vetor dado pela seqüência ABCDx

61 Convenção vetor-linha
Transformação por vetor x matriz Todas as matrizes devem ser transpostas Seqüência ABCDx transposta é xtDtCtBtAt OpenGL usa esta regra

62

63 Invertendo a transf. homogênea

64


Carregar ppt "Visão Computacional Geometria de Transformações"

Apresentações semelhantes


Anúncios Google