Computação Gráfica Transformações Geométrica no Plano e no Espaço

Documentos relacionados
Transformações geométricas no plano e no espaço

Sistemas de Referência

Sistemas de coordenadas Transformação entre sistemas

Computação Gráfica. Prof. MSc André Yoshimi Kusumoto

Transformações Geométricas. Transformações Geométricas. Sistemas de Coordenadas. Translação: M.C.F. de Oliveira Rosane Minghim 2006

Aula /2 Sistemas de coordenadas Transformação entre sistemas

Introdução à Computação Gráfica

Visualização por Computador: Teoria, Prática e Aplicações

Computação Gráfica. Prof. André Yoshimi Kusumoto

aula9 Coordenadas homogêneas e projeções 2016/2 IC / UFF

aula8 Transformações Geométricas no Plano e no Espaço 2016/2 IC / UFF

aula6 Curvas de Hermite 2016/2 IC / UFF Criadas por Charles Hermite ( )

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 6. Projeções

Conceitos de vetores. Decomposição de vetores

4. Curvas Paramétricas e Transformações 2D

Fundamentos Matemáticos de Computação Gráfica

Aula /2 Sistemas de coordenadas Window x Viewport

Vetores no plano Cartesiano

Ô, 04 ! ^ D. Exercícios

Aula /2 Sistemas de coordenadas Window x Viewport

Computação Gráfica OpenGl 03

ALGEBRA LINEAR 1 RESUMO E EXERCÍCIOS* P1

. (1) Se S é o espaço vetorial gerado pelos vetores 1 e,0,1

MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE MATEMÁTICA

1: Grandezas vetoriais e grandezas escalares

Transformações Geométricas em C.G.

Transformações Geométricas 2D e 3D

Curso Física 1. Aula - 4. Vetores

Notas para o Curso de Algebra Linear Il Dayse Haime Pastore 20 de fevereiro de 2009

Econometria. Operações básicas de vetores. Operações básicas de vetores. Operações básicas de vetores. Independência de vetores

Transformações Geométricas 3D

Programa Princípios Gerais Forças, vetores e operações vetoriais

Coordenadas Homogêneas no Plano e no Espaço

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 3. Transformações Geométricas

Transformações de Pontos. Computação Gráfica Prof. Dr. Paulo Roberto Gomes Luzzardi Aluna: Karina da Silva Salles

Lista de Álgebra Linear Aplicada

Transformações Geométricas

Rotações em 3D. Descrição dos problemas. Como mover entre 2 frames. Ângulos de Euler. Foley Notas do Dave (lecture 29)

MAT3457 ÁLGEBRA LINEAR PARA ENGENHARIA I 1 a Lista de Exercícios - 1 o semestre de 2018

Universidade Federal do Ceará Departamento de Física Física Fundamental Prof. Normando Lista de Exercícios 1

Álgebra Linear I - Aula Bases Ortonormais e Matrizes Ortogonais

Aula 5 - Produto Vetorial

O Eletromagnetismo é um ramo da física ou da engenharia elétrica onde os fenômenos elétricos e magnéticos são estudados.

Lista de Exercícios de Cálculo 3 Primeira Semana

Equação Geral do Segundo Grau em R 2

Transformações Geométricas Grafos de Cena

Produto Misto, Determinante e Volume

Transformações Geométricas

Instituto de Física Universidade Federal do Rio de Janeiro. Cap. 1 - Vetores. Prof. Elvis Soares - Física I

GEOMETRIA Exercícios

Transformações (Cap 4.3, 4.4 e 4.6 a 4.10)

1 a Lista de Exercícios MAT 3211 Álgebra Linear Prof. Vyacheslav Futorny

Aula 3 Escalares e Vetores

Pontifícia Universidade Católica do Rio de Janeiro / PUC-Rio Departamento de Engenharia Mecânica. ENG1705 Dinâmica de Corpos Rígidos.

ficha 5 transformações lineares

CAPíTULO 1. Vetores e tensores Notação indicial

Mudança de Coordenadas

MAT2457 ÁLGEBRA LINEAR PARA ENGENHARIA I 1 a Lista de Exercícios - 1 o semestre de Resolva o sistema abaixo para as incógnitas x e y:

M0 = F.d

1 Matrizes Ortogonais

. Repare que ao multiplicar os vetores (-1,1) e

Escalar: Grandeza à qual se associa um valor real independentemente da direção, ex: massa, comprimento, tempo, energia.

Aula9 e 10. Projeções Planas. Como representar objetos 3D em dispositivos 2D? 2019/1 IC / UFF. Paginas 91 a 101 livro texto de computacao grafica

TRANSFORMAÇÕES EM SISTEMAS CARTESIANOS

Introdução ao Cálculo Vetorial

Transformações Geométricas

Exercícios Operações com frações 1. Determine o valor das seguintes expressões, simplificando sempre que possível:

x 1 3x 2 2x 3 = 0 2 x 1 + x 2 x 3 6x 4 = 2 6 x x 2 3x 4 + x 5 = 1 ( f ) x 1 + 2x 2 3x 3 = 6 2x 1 x 2 + 4x 3 = 2 4x 1 + 3x 2 2x 3 = 4

Orientação de Objetos e Imagens por Métodos Tensoriais.

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano de escolaridade Versão 4

Eletromagnetismo I. Prof. Daniel Orquiza. Eletromagnetismo I. Prof. Daniel Orquiza de Carvalho

Exercícios. Observação: Tome a unidade sobre os eixos igual a distância comum entre as paralelas da figura. Fig. 2.4

MINISTÉRIO DA EDUCAÇÃO E DO DESPORTO UNIVERSIDADE FEDERAL DE VIÇOSA DEPARTAMENTO DE MATEMÁTICA

Fundamentos Matemá3cos para Computação Gráfica

Chamamos de grandezas coisas que podem ser medidas. Por exemplo, tempo, área, volume, temperatura, velocidade, aceleração, força, etc..

MAT Álgebra Linear para Engenharia II - Poli 2 ō semestre de ā Lista de Exercícios

FICHA de AVALIAÇÃO de MATEMÁTICA A 11.º Ano de escolaridade Versão 3

Modelagem Cinemática de Robôs Industriais. Prof. Assoc. Mário Luiz Tronco

Transcrição:

Computação Gráfica Transformações Geométrica no Plano e no Espaço Tomás Antônio C. Badan 1

Pontos e Vetores Ponto: Posição especificada por uma coordenada em um sistema de referência Depende do sistema de coordenadas Vetor (http://pessoal.sercomtel.com.br/matematica/geometria /vetor2d/vetor2d.htm): Classe de objetos matemáticos (segmentos) com a mesma direção, mesmo sentido e mesmo módulo (intensidade). Propriedades são independentes de quaisquer sistema de coordenadas 2

Pontos e Vetores (2) 3

Propriedades dos Vetores Vetor unitário v = V/ V Módulo do vetor V =Vx 2 Vy 2 Vz 2 V(Vx, Vy) = [Vx Vy] = Vx.i + Vy.j Produto Escalar ou Interno V.W = Vx.Wx + Vy.Wy = V W cosө Se (Vx, Vy), ortogonais: (Vy, Vx) ou ( Vy, Vx) Representação: Vetor Linha :V =[Vx Vy Vz] ou Vetor Coluna :V =[Vx Vy Vz ] 4

Vetores e Matrizes Vetores matriz de 1 coluna ou de 1 linha Matriz tabela de m x n símbolos, representada sob a forma de um quadro com m linhas e n colunas 5

Definições Multiplicação de Matrizes A.B possível se n A = m B Matriz Resultante m A x n B Matriz Quadrada m = n Matriz Identidade (I) matriz quadrada, onde a ij = 1 se i = j e a ij = 0 se i j Matriz Transposta (A T ) a ij = a ji Matriz Inversa (A 1 ) A.A 1 = A 1.A = I 6

Exemplos A matriz adjunta de uma matriz quadrada A é a transposta da matriz que se obtem substituindo cada termo Ai,j pelo determinante da matriz resultante de retirar a A a linha i e a coluna j (isso é, o determinante menor) multiplicado por ( 1)i + j (isso é, alternando os sinais). 7

Observação sobre Vetores e Matrizes O produto vetorial entre dois vetores V e W produz um terceiro vetor que é ortogonal aos anteriores Magnitude = área do paralelogramo formado por V e W obedece a regra da mão direita entre V e W = i j k U =V x W Vx Vy Vz Wx Wy Wz =u V W senø onde i,j ek, vetores unitários nos eixos x, y e z,respectivamente 8

Observação sobre Vetores e Matrizes (2) Considere o seguinte sistema de equações : x '=a.xb.y y '=c.xd.y Pode ser descrito pela notação de vetor coluna : [ x ' ] y ' = [ a b ][ x y] P '=C.P c d ou pela notação de vetor linha: [ x ' y ' ]=[ x y][ a c ] P '=P.C T b d Note que trocar de uma notação pela outra, envolve alterar a ORDEM DA MULTIPLICAÇÃO e aplicar a TRANSPOSTA sobre a matriz de coeficientes. 9

Observações sobre a Notação O sistema vetor linha era usado pelos primeiros sistemas gráficos e por alguns autores Livro adotado usa essa representação Representação vetor coluna é a representação matemática padrão Utilizado pelo OpenGL, Java, PHIGS... Será a utilizada durante o curso. 10

Sistemas de Coordenadas Coordenadas Cartesianas 2D, 3D Coordenadas Polares 2D Coordenadas Cilíndricas 3D Coordenadas Esféricas 3D 11

Coordenadas Cartesianas 12

Coordenadas Polares 13

Coordenadas Cilíndricas 14

Coordenada Esférica 15

Sistema de Referências Sistemas utilizados para finalidades específicas: Sistema de Referência do Universo (SRU) Sistema de Referência do Objeto (SRO) Sistema de Referência da Câmera (SRC) Sistema de Referência Normalizado (SRN) Sistema de Referência do Dispositivo (SRD) 16

Sistema de Referência do Universo (SRU) Coordenadas do universo ou do mundo Descreve os objetos em termos de coordenadas utilizadas pelo usuário Cada tipo de aplicação especifica o seu universo de trabalho Pode estar em metros, kilômetros, milímetros, etc depende da aplicação Pode estar em qualquer sistema de coordenada Possui limites máximo e mínimo 17

Sistema de Referência do Objeto (SRO) Cada objeto é um miniuniverso individual Suas particularidades são descritas em função de seu sistema de referência Normalmente, o centro do sistema de coordenadas é o seu centro de gravidade, ou eixo de rotação Em sólidos, o centro é conhecido como pivô 18

Sistema de Referência da Câmera (SRC) Caso particular do SRO Coordenadas são normalmente especificadas em uvn 19

Sistema de Referência Normalizado (SRN) Trabalha com as coordenadas normalizadas: Alguns utilizam o intervalo entre 0 e 1 0 x 1; 0 y 1; 0 z 1 Alguns sistemas utilizam o intervalo 1 a 1 É um sistema de referência intermediária entre o SRU e o SRD Principal aplicação é tornar a geração de imagens independente do dispositivo de saída 20

Sistema de Referência do Dispositivo (SRD) Utiliza coordenadas que podem ser fonecidas diretamente para um dado dispositivo de saída Ex. se for vídeo, pode ser valor de pixels (640x480, 800x600,...) Se for uma impressora, o tamanho do papel Geralmente, depende da resolução possível e da configuração do usuário, dentro de um conjunto possíveis de configurações 21

Transformações entre Sistemas de Coordenadas Conversões entre sistemas de coordenadas Ex. cartesiano para polar r = sqrt(x*x + y*y) Ө = arctan(y/x) Transformações entre sistemas de referências SRU e SRO SRC e SRU SRN e SRD etc 22

Exemplo 23

Transformações sobre Pontos e sobre Objetos Translação Escala Rotação Reflexão Cisalhamento Transformações entre sistemas de referências 24

Translação Movimentar o objeto Transladar todos os pontos que compõem um objeto Somente os pontos que o define completamente É uma alteração de corpo rígido Não deforma o objeto transladado {x '=T xx y'=t y y z '=T z z }temos que :[x ' y' z ' ]=[T x T y T z][ x ] y, ou seja, P '=T P z 25

Translação (2) 26

Escala Altera as dimensões do objeto Multiplica cada ponto do objeto por um fator de escala Podem ser escalas diferentes em cada eixo cartesiano, por exemplo. Se não estiver na origem, causa translação { x '=Sx x y '=Sy y z '=Sz z } [ x ' ]=[Sx 0 0 x em notação matricial : y ' 0 Sy 0 y z ' 0 0 Sz][ ] z portanto, P '=S P 27

Escala (2) Não é uma alteração de corpo rígido Deforma o objeto transformado 28

Em opengl Translação: gltranslate[fd](x, Y, Z); Escala: glscale[fd](x, Y, Z); Matriz Identidade glloadidentity(); Permite inicializar o sistema de matrizes 29

Rotação 30

Rotação (2) x=r.cosø y=r.senø x '=r.cosø ß=r.cosøcos ß r.senø sen ß y '=r.senø ß=r.senøcos ßr.cosø sen ß [ x ' y ' ] = [ cos ß sen ß x '=x.cos ß y.sen ß y '=y.cos ßx.sen ß sen ß cos ß ][ x y ] onde ß ângulo de rotação,ou seja, P '=R.P 31

Rotação (3) 32

Rotação (4) Se objeto não está na origem, rotação implica também em translação Para rotacionar um objeto em torno de um determinado ponto transladar ponto P (objeto) para a origem, rotacionar, transladar de volta para o ponto P Princípio aplicado a todas as transformações que envolvem translação implícita Pode ser realizadas várias operações em cascata aplicando o mesmo princípio 33

Translação + Rotação + Translação Alteração de corpo rígido pode ser feita pela alteração inversa no sistema de coordenada Girar um objeto ø equivale a rotacionar o sistema de coordenada ø 34

Rotação em 3D Realizada individualmente sobre cada eixo, usando os ângulos de Euler Rotaciona se o plano (2D) em torno do eixo que é normal a este plano Eixos ortogonais eixos perpendiculares entre si Regra da mão direita define um sistema de eixos positivos. Padrão Regra da mão esquerda define um sistema de eixos negativos. Ex. monitores 35

Rotação em 3D (2) 36

Ângulos de Euler Rotações: no eixo X ângulo no eixo Y ângulo no eixo Z ângulo 37

Rotação em 3D (3) Eixo Z Rotação plano XY [ Eixo X Rotação plano YZ x [ x ' y ' z ' ' y ' z ' ]=[cosa sena 0 sena cosa 0 0 0 1][ ]=[1 0 0 ][ 0 cos ß sen ß 0 sen ß cos ß x ] y z x y z ] Eixo Y Rotação plano ZX ]=[ [x ' y ' z ' cosd 0 send 0 1 0 y send 0 cosd ][x ] z 38

Rotação em 3D Observações Todas as matrizes anteriores são ortonormais Ortogonais e normalizadas Se uma das linhas, ou colunas, forem considerados vetores unitarios teriam comprimento = 1 Produto escalar ou interno entre vetores seria igual a zero (ortogonais) Inversa = transposta (somente matrizes ortonormais) I = M.M 1 = M.M T 39

Rotação em 3D Observações (2) Rotação em 3D combinação de rotações definidas pelo ângulo de Euler Dependente da ordem como é feita as rotações Operação conhecida como concatenação Executada pela multiplicação de matrizes Exemplo: Rotação no eixo X, depois no eixo Y e depois no eixo Z: P' = Rz(Ry(Rx.P)) Note a ordem das matrizes. A notação está em vetor coluna, se for em vetor linha P' = ((P.Rx)Ry)Rz) P' = Rz.Ry.Rx.P Rx.Ry.Rz.P 40

Multiplicação de Matrizes no OpenGL Dada a matriz M = A.B.C.D, podemos obtêla de duas formas: Pré multiplicação M' = D M'' = C.M' M''' = B.M'' M = A.M''' Pós multiplicação M' = A M'' = M'.B M''' = M''.C M = M'''.D Política adotada no OpenGL 41

Multiplicação de Matrizes no OpenGL Exemplo Deseja se fazer umarotação,um escalonamento e, por fim, uma translação sobre um ponto P, ou seja : P '=T.S.R.P em OpenGl : glloadidentity ;inicializa o sistema de matrizes gltranslatef Tx,Ty,Tz; glscalef Sx, Sy, Sz ; glrotatef ø, Rx, Ry, Rz; Note que a primeira operação sobre o ponto é a última a ser especificada 42

Rotação em 3D Método 2 Considere que: É dado um vetor A = (Ax, Ay, Az) Unitário a = A/ A É dado um vetor B = (Bx, By, Bz) Aproximadamente ortogonal a A 43

Método 2 (2) temos que: vetor ortonormal aa e B : C=a x B c= C C =c x, c y,c z vetor ortonormal na direção aproximada de Bb ' : b'=c x a=b ' x, b ' y, b' z Portanto,matriz derotação : R=[a x b' x c x a y b' y c y a z b' z c z] 44

Método (2) Exemplo Rotação no eixo X de um ângulo ø a=1, 0,0 B=b=0,cosø, senø logo, j k c=a x b= i ø 1 0 0 0 cosø sen c=0, senø, cosø Portanto, matriz derotação no eixo X : 0 0 R=[1 ] 0 cosø senø 0 senø cosø 45

Em opengl Rotação é definida em torno de um vetor V: glrotate[fd](ø, x, y, z); Onde ø é dado em graus (sentido contrário ao ponteiro do relógio) 46

Reflexão Espelhar o objeto em um dos eixos, ou em ambos Em 2D reflexão horizontal (eixo X) ou vertical (eixo Y) Em 3D reflexão sobre os planos (XY, YZ ou ZX) Reflex ão no plano ZX [ x ' ]=[1 0 0 1][ x ] y' 0 1 0 y z ' 0 0 z Reflexão no plano ZX e YZ [ x ' ]=[ 1 0 0 1][ x ] y ' 0 1 0 y z ' 0 0 z 47

Reflexão (2) 48

Em OpenGL Basta utilizar o comando para escalonar um objeto, com parâmetros negativos Exemplo: glscalef( 1, 1, 1) Reflexão no plano YZ Tomar cuidado com a orientação das faces, para que uma face externa não se torne uma face interna Ordem dos pontos na definição de triângulos ou quadriláteros 49

[ Cisalhamento Distorce o formato do objeto Desloca se uma coordenada, proporcional ao(s) valor(es) da(s) outra(s) coordenada(s) x '=xsh.y y '=y z '=z x ' y ' z ' ]=[1 Sh 0 0 1 0 0 0 1][ x ] y z x '=x y '=a.xyb.z z '=z [x ' y ' z ' ]=[1 0 0 a 1 b 0 0 1][ x ] y z 50

Cisalhamento (2) 51

Coordenadas Homogêneas Unifica as operações de cisalhamento, reflexão, rotação, escala e translação Um ponto é expresso por 4 valores Ph T ' = [ x' y' z' M] P T = [x y z] = [x'/m y'/m z'/m] Dois conjuntos representam o mesmo ponto se forem múltiplos [2 3 4 6] = [4 6 8 12] Se M = 1 No sistema homogêneo [x y 1] equivale à [x y] no sistema cartesiano O mesmo ocorre para matrizes 52

Coordenadas Homogêneas (2) [ Rotação no eixo Z [ Escala [ Translação x x ' y ' z ' 1 ' y ' z ' 1 ]=[cosa sena 0 0 1][ 1] x sena cosa 0 0 y 0 0 1 0 z 0 0 0 ]=[Sx 0 0 0 1][ 0 Sy 0 0 0 0 Sz 0 0 0 0 x ' y ' z ' 1 1] x y z ]=[1 0 0 Tx ][ 0 1 0 Ty 0 0 1 Tz 0 0 0 1 1] x y z 53

Em OpenGL Para cisalhamento não existe um comando específico Deve especificar um buffer de 16 posições (matriz 4x4) ordenado pelas colunas da matriz m12 m13 m14 m21 m22 m23 m24 m=[m11, m31 m32 m33 m34 m41 m42 m43 m44] em C : GLdouble m[16]={m11, m21, m31,m41, m12, m22,..., m24, m34, m44}; Não é a forma usual de se especificar uma matriz emc 54

Em OpenGL (2) Substitui a matrix atual pela matrix fornecida: glloadmatrix[fd](m) Multiplica a matrix atual com a matrix especificada: glmultmatrix[fd](m) 55

Transformação entre Sistemas de Coordenadas 2D De SRO SRU 56

Transformação entre Coordenadas 2D Método 1 Rotacionar por ø R X ' Y ', XY =[cosø senø 0 senø cosø 0 0 0 1] Transladar por x 0, y 0 T X ' Y ', XY =[1 0 x 0 0 1 y 0 0 0 1 ] M X ' Y ', XY =T X ' Y ', XY. R X ' Y ', XY 57

Transformação entre Coordenadas 2D Método 2 1 Aplicando a Rotação: Conhecendo as coordenadas de V em XY : v= V V = P 1 P 0 P 1 P 0 =v x, v y vetor ortogonal a v u=v y, v x =u x,u y [ x b 0 ' y c d 0 y ' 1]=[a 0 0 1][x ] 1 aplicando o vetor unitário0,1de X ' Y ' direção dev [vx v y 1 ]=[a b 0 c d 0 1 0 0 1][0 1] b=v x d=v y 58

Transformação entre Coordenadas 2D Método 2 (2) Aplicando o vetor unitário1,0de X ' Y ' direção deu [u x u y 1 ]=[a b 0 c d 0 0 0 0 1][1 1] a=u x c=u y logo R X ' Y ', XY =[u x v x 0 u y v y 0 0 0 1] 0 x 0 M X ' Y ', XY =T X ' Y ', XY. R X ' Y ', XY =[1 ].[u x v x 0 v ] x x0 0 1 y 0 u y v y 0 u y v y y 0 0 0 1 0 0 1]=[ux 0 0 1 59

Transformação entre coordenadas 2D SRU SRO Processo inverso ao descrito anteriormente 60

SRO SRU Sabemos que: 1 1 P=M X ' Y ', XY. P ' M X ' Y ', XY. P=M X ' Y ', XY. M X ' Y ', XY. P ' 1 logo: P '=M X ' Y ', XY. P=M XY, X ' Y '. P M XY, X ' Y ' =R XY, X ' Y '.T XY, X ' Y ' T R XY, X ' Y ' =R X ' Y ', XY onde: x u y 0 =[u 1] v x v y 0 e 0 0 0 x 0 T XY, X ' Y ' =[1 ] 0 1 y 0 0 0 1 61

Transformações entre Sistemas de Coordenadas 3D Generalizado e assumindo que os vetores u,v e w são conhecidos no sistema XYZ emx 0, y 0, z 0,são ortonormais e dados por : u=u x,u y,u z v=v x,v y,v z w=w x,w y, w z M XYZ, X ' Y ' Z ' =R.T onde : u x u y u z 0 v R=[ x v y v z 1] 0 0 x0 0 0 1 0 y e T =[1 0 ] w x w y w z 0 0 0 1 z 0 0 0 0 0 0 0 1 62

Sistema de Matrizes no OpenGL Matrizes usadas: GL_MODELVIEW, GL_PROJECTION e GL_TEXTURE. Se extensão ARB_imaging é suportada, também é usada a GL_COLOR Para fazer a modelagem (rotação, escalonamento e translação) GL_MODELVIEW Especificada através do comando: glmatrixmode(modo); 63

Empilhamento de Matrizes Permite salvar a matriz atual para uso posterior: Operações realizada na contexto da placa de video Mais eficiente do que transferir da memória para a placa glpushmatrix(); copia a matriz em uso na pilha glpopmatrix(); restaura o conteúdo da pilha na matriz atual Descarta o valor que estava na pilha 64

Exemplo glmatrixmode(gl_modelview); glloadidentity(); glclear(gl_color_buffer_bit); glpushmatrix(); gltranslatef(post[0][0], post[0][1], post[0][2]); glrotatef(post[2][0], 1, 0, 0); glrotatef(post[2][1], 0, 1, 0); glrotatef(post[2][2], 0, 0, 1); glpushmatrix(); gltranslatef(0, -60*escala, 0); glscalef(escala, escala, escala); glcalllist(prism); glpopmatrix(); // descarta o objeto atual gltranslatef(0, 60*escala, 0); glscalef(-escala, -escala, escala); glcalllist(prism); glpopmatrix(); 65