Modelos Geométricos Transformações Edward Angel, Cap. 4 Instituto Superior Técnico Computação Gráfica 2009/2010 1
Aulas teóricas 11/03 Quinta-feira, dia 11 de Março Não vão ser leccionadas aula teóricas. Não há necessidade de aula de compensação.
Contacto com corpo docente Nos contactos com o corpo docente de CG Indiquem o campus a que pertencem! Alameda ou Tagus
Objectivos Aprender diferenças entre CG vectorial e raster (quadrículas) Conhecer evolução nos últimos 40 anos de conceitos, sistemas, equipamentos, normas, aplicações Saber quais as entidades necessárias para criar a imagem de uma cena e saber justificar Conhecer o pipeline de visualização Saber quais os andares de um pipeline 4
Sumário Modelos Geométricos Transformações Geométricas
Computação Gráfica Modelos Geométricos
Modelos Geométricos (1/8) Permitem modelar objectos complexos Modularmente Usando conjunto limitado de primitivas Recorrendo a composição hierárquica
Modelos Geométricos (2/8)
Modelos Geométricos (3/8) Descrevem objectos geométricos Para produção de representação gráfica... Mas não só! Podem servir uma grande variedade de áreas
Modelos Geométricos (4/8) Simulação
Modelos Geométricos (5/8) CAM
Modelos Geométricos (6/8) Descrevem Forma dos compontentes (geometria) Outros atributos gráficos dos componentes Cor Textura... Ocupação espacial dos elementos Conectividade dos componentes (topologia) Informação específica da aplicação Características dos elementos Tipo de material Propriedades magnéticas...
Modelos Geométricos (7/8) Principais Vantagens Hierarquia modular Organização em árvore ou DAG Construção ascendente (bottom-up) Permitem construir modelos geométricos A partir de primitivas básicas Propagação de actualizações Alteração num componente reflecte-se no modelo Ex.: aumentar comprimento de braço do robot
Modelos Geométricos (8/8) Geometria e ocupação espacial Definidas com Transformações Geométricas 14
Computação Gráfica Transformações Geométricas
Mover Objectos (1/3) Objectivo: Mover a seta de aqui para ali (aqui) (ali)
Mover Objectos (2/2) Problema Quantificar aqui e ali Objectivo: Mover a seta de aqui para ali (aqui) (ali)
Mover Objectos (2/2) Solução Utilizar Sistema de Coordenadas Descreve espaço numericamente Fornece métrica para descrever distância entre pontos -6-5 -4-3 -2-1 0 1 2 3 4 5 6 Exemplo: linha de -2 a 3 tem comprimento 5
Espaços Cartesianos Exemplos: 1D, 2D e 3D ponto em 2 R 1-5 -4-3 -2-1 0 1 2 3 4 5 R 3 R 2 Y ponto em (2, 2) Y X X Z Espaço ortonormado ponto em (2, -3, 3)
Mover Objectos num Sistema de Coordenadas Permite especificar a deslocação Y Quantitativamente De forma clara ali = (8, 5) Solução: somar 6 a x somar 2 a y? aqui = (2, 3) X
Espaços Vectoriais (1/3) Sistemas de coordenadas quantificam distâncias Mas não descrevem relações entre objectos Vectores indicam direcção além de distância Todas as coordenadas referenciadas à origem 21
Espaços Vectoriais (2/3) Y (8, 5) (2, 3) (0, 0) X
Espaços Vectoriais (3/3) Vectores usados extensivamente em CG Para representar Posições Orientação de superfícies no espaço Normal à superfície Interacções entre fontes de luz e objectos Cor Transformações Geométricas Sugestão: Revejam Álgebra Linear Operações com Matrizes
Espaços Vectoriais (3/3) Vectores usados extensivamente em CG Para representar Posições Orientação de superfícies no espaço Normal à superfície Interacções entre fontes de luz e objectos Cor Transformações Geométricas Sugestão: Revejam Álgebra Linear Operações com Matrizes
Transformações Geométricas em Computação Gráfica Um dos mais importantes conceitos de CG Compreensão é fundamental Transformações essenciais em CG Utilizadas nas aplicações e nas bibliotecas
Transformações Geométricas Planas Elementares Operações sobre vectores (matrizes) Soma Multiplicação Suficientes para a maioria das aplicações Translação Rotação Escala
Mover Objectos num Espaço Vectorial Y ali = [8, 5] T Solução: Somar 6 a 2 2 3 [0, 0] T aqui = [2, 3] T X
Transformações Geométricas Translação (1/3) Soma de vectores x x P = P = y y P = T + P com T = dx dy onde x = x + dx, y = y + dy
Transformações Geométricas Translação (2/3) Para deslocar polígonos aplicar a transformação a cada um dos vértices Y x P (x,y ) x P(x,y) y y X
Transformações Geométricas Translação (3/3) Propriedades Preserva comprimentos ISOMÉTRICA Preserva ângulos CONFORME
Transformações Geométricas Escala (1/3) Multiplicação matricial x P = P = y x y x = S x. x, y = S y. y P = S P com S = Sx 0 0 Sy x y Sx 0 =. 0 Sy x y
Transformações Geométricas Escala (2/3) Uniforme Y Não - Uniforme Y Sx = Sy = 2 (Ampliação) Sx = 1; Sy = 2 X P(x,y) P (x,y ) X Y Sx = 2; Sy = 1 X Y X Sx = 1; Sy = -1
Transformações Geométricas Escala (3/3) Propriedades Não preserva comprimentos Não preserva ângulos Excepto escala uniforme Escala uniforme é CONFORME
Transformações Geométricas Rotação (1/4) Y y P (x,y ) y β α x x P (x,y) X
Transformações Geométricas Rotação (2/4) Rotação de vectores por um ângulo β x P = P = y x y P = R β. P onde x = x. cos β - y. sin β y = x. sin β + y. cos β
Transformações Geométricas Rotação (3/4) Y y P (x,y ) y β α x x P (x,y) X P = R β. P com R β = cos β sin β -sin β cos β
Rotação Demonstração(3/4) sin (α + β) = cos α. sin β + sin α. cos β cos (α + β) = cos α. cos β - sin α. sin β Y y P (x,y ) x = r. cos α y = r. sin α x = r. cos (α + β) y = r. sin (α + β) x = r. cos α. cos β - r. sin α. sin β y = r. cos α. sin β + r. sin α. cos β y β α x x P (x,y) X x = x. cos β - y. sin β y = x. sin β + y. cos β Matricialmente, x y = cos β -sin β. sin β cos β x y
Rotação (4/4) Propriedades Preserva comprimentos ISOMÉTRICA Preserva ângulos CONFORME
Computação Gráfica Coordenadas Homogéneas
Transformações Geométricas Classificação Projectivas Afins Lineares Projectivas Podem não preservar o paralelismo das linhas A imagem de uma linha é um ponto ou uma linha Afins Nunca uma curva Mantêm paralelismo de linhas A imagem do vector (0,0) pode não ser (0,0) Lineares Transformam linhas em linhas ou em pontos A imagem do vector (0,0) é sempre (0,0)
Transformações Geométricas Transformações Lineares Escala e Rotação Transformações Lineares Expressas pelas matrizes: Sx 0 0 Sy cos β sin β -sin β cos β 41
Transformações Geométricas Transformações Lineares Translação Não é transformação Linear Não se pode representar na forma: x = ax + by y = cx + dy É uma transformação afim. Porquê? 42
Sistema de equações lineares e matrizes Problema Modelo apresentado não é uniforme Translação - Soma de vectores Escala e Rotação - Produto de matrizes Gostaríamos de ter Transformações como sistemas de equações x = a x + b y y = c x + d y 43
Coordenadas Homogéneas (1/5) Transformações são multiplicações Espaço 2D representado num espaço 3D Ponto (x,y) transformado num ponto (x,y,w) P 2d (x, y) P h (Wx, Wy, W), W 0 w P h (x W, y W, W) P 2d (x, y) x y
Coordenadas Homogéneas (2/5) Em coordenadas homogéneas Cada ponto 2D tem inúmeras representações (x, y, W) = 2d (x, y, W ) se múltiplos w P h (x W, y W, W) P 2d (x, y) x y
Coordenadas Homogéneas (3/5) Dois pontos no espaço homogéneo Podem representar o mesmo ponto em 2D (x, y, W) = 2d (x, y, W ) se (x/w, y/w) = (x /W, y / W ) w P h (x, y, W) P h (x, y, W ) P 2d (u, v) x y
Coordenadas Homogéneas (4/5) Infinitos pontos no espaço homogéneo Correspondem a um ponto 2D Ponto 2D Representa uma recta no espaço homogéneo (tx, ty, tw), com t 0 w P h (x, y, w) P h (x, y, w ) P h (x, y, w ) P 2d (u, v) x y
Coordenadas Homogéneas (5/5) (x, y, W) = 2d (x/w, y/w, 1) x/w e y/w: coordenadas Cartesianas do ponto homogéneo w P h (x, y, w) P 2d (x/w, y/w, 1) x y W=1
Transformações no Espaço Homogéneo (1/4) Pontos 2D Escrevem-se como vectores de 1x3 P = [x y 1] T Transformações geométricas 2D Escrevem-se como matrizes de 3x3 No espaço homogéneo considera-se W=1 para transformações afins em 2D
Transformações no Espaço Homogéneo (2/4) Translação P = M T P com M T = 1 0 dx 0 1 dy 0 0 1 x 1 0 dx x y 0 1 dy. = y 1 0 0 1 1
Transformações no Espaço Homogéneo (3/4) Escala P = M T P com M T = S X 0 0 0 S Y 0 0 0 1 x Sx 0 0 x y 0 Sy 0. = y 1 0 0 1 1
Transformações no Espaço Homogéneo (4/4) Rotação P = M T P com M T = cos(β) -sin(β) 0 sin(β) cos(β) 0 0 0 1 x cos(β) -sin(β) 0 x y sin(β) cos(β) 0. = y 1 0 0 1 1
Matrizes de Transformação Translação Escala M T = T(dx,dy) = 1 0 dx 0 1 dy 0 0 1 M E = S(S X,S Y ) = S X 0 0 0 S Y 0 0 0 1 Rotação M R = R(β) = cos(β) -sin(β) 0 sin(β) cos(β) 0 0 0 1