Aula 3 – – Transformações Geométricas Sistemas de Coordenadas Prof. Leandro Taddeo Transformações Geométricas Introdução 2 Transformações geométricas são operações que podem ser utilizadas visando a alteração de algumas características como posição, orientação, forma ou tamanho do objeto a ser desenhado Ex: dado um ponto no plano podemos mudar sua posição através de transformações geométricas T 10 unidades Transformações Geométricas Matrizes 3 Todas as transformações geométricas podem ser representadas na forma de equações Problema: manipulações de objetos gráficos normalmente envolvem muitas operações de aritmética simples Solução: matrizes são mais fáceis de usar e entender do que as equações algébricas Padrão de coordenadas: Pontos no plano (x,y) Matrizes 2x2 Pontos no espaço tridimensional (x,y,z) Matrizes 3x3 Matriz de transformação: várias transformações combinadas Transformações Geométricas Representações 4 Dado um sistema de coordenadas, pode-se definir elementos neste sistema através de suas coordenadas Caso o sistema seja 2D Pontos são definidos por 2 coordenadas y Define-se um ponto pela sua distância em relação ao centro dos eixos (2,1) 2 unidades distante de x=0 1 unidade distante de y=0 (2,1) 1 x 2 Transformações Geométricas Representações 5 Convencionalmente, representa-se um ponto na forma de um vetor linha ou vetor coluna Também corresponde à forma mais simples de representação de uma matriz (linha ou coluna) y 2 A 2,1 1 A (2,1) 1 x 2 Vetor linha Vetor coluna Transformações Geométricas Representações 6 O par pode servir para representar tanto o ponto quanto o vetor em si y 2 A 2,1 1 A (2,1) 1 x 2 Vetor linha Vetor coluna Transformações Geométricas Operações 7 Diversas operações podem ser efetuadas entre pontos e vetores: 1. Soma e subtração de vetores t=v+u t = v + (- u) y y u v v x -u x Transformações Geométricas Operações 8 Diversas operações podem ser efetuadas entre pontos e vetores: 1. Soma e subtração de vetores t=v+u Seja u=[1,3] e v=[2,1], y o vetor resultante t=v+u será igual a: u t=[1+2,3+1] =[3,4] v x Obs: os vetores precisam ter as mesmas dimensões Transformações Geométricas Operações 9 Diversas operações podem ser efetuadas entre pontos e vetores: 2. Multiplicação de um vetor por um escalar (constante) u = 2v Seja v=[2,1], y o vetor resultante u=2v será igual a: v u=[2*2,2*1] =[4,2] v x Transformações Geométricas Operações 10 Diversas operações podem ser efetuadas entre pontos e vetores: 3. Soma de um ponto com um vetor Q = P+v Seja P=[2,3] e v=[2,-1], y P v o ponto resultante Q=P+v será igual a: Q Q=[2+2,3-1] =[4,2] x Obs: os vetores e os pontos precisam ter as mesmas dimensões Transformações Geométricas Operações 11 Diversas operações podem ser efetuadas entre pontos e vetores: 4. Transposto de um vetor v t Seja v=[3,1], y o vetor transposto resultante vt será igual a: vt vt=[1,3] v x Transformações Geométricas Operações em Matrizes 12 Algumas operações são também aplicadas a matrizes Multiplicação de matriz por escalar Soma de matrizes 1 2 9 8 1 9 2 8 10 10 3 4 7 6 3 7 4 6 10 10 Transposta de uma matriz t 1 2 1 3 3 4 2 4 1 2 2 1 2 2 2 4 2 2 3 2 4 6 8 3 4 Multiplicação de matrizes 1 2 9 8 1 9 2 7 1 8 2 6 23 20 3 4 7 6 3 9 4 7 3 7 4 6 55 45 Obs: Algumas operações são limitadas pelo tamanho das matrizes Sistemas de Coordenadas Introdução 13 Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D Serve para nos dar uma referência de tamanho e posição dos objetos Sistemas de Coordenadas Introdução 14 Sistema de Referência: sistema de coordenadas cartesianas para alguma finalidade específica Deve-se especificar: Unidade de referência básica Limites extremos dos valores aceitos para descrever os objetos Sistemas com denominação especial Sistema de Referência do Universo (SRU) Sistema de Referência do Objeto (SRO) Sistema de Referência Normalizado (SRN) Sistema de Referência do Dispositivo (SRD) Sistemas de Coordenadas Sistemas com denominação especial 15 Sistemas de Coordenadas Sistema de Referência do Universo (SRU) 16 Sistema de referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário em determinada aplicação Também chamado de coordenadas do universo, ou do mundo Ex: CAD de arquitetura o universo em metros ou centímetros Sistemas CAD de mecânica de precisão o universo em milímetros ou nanômetros Sistemas Sistemas de Coordenadas Sistema de Referência do Objeto (SRO) 17 Cada objeto seja (ou possua) um miniuniverso individual Particularidades dos objetos descritas em função de seu sistema O centro deste sistema costuma coincidir com o centro de gravidade do objeto Na modelagem de sólidos, este centro é conhecido como pivô Sistemas de Coordenadas Sistema de Referência do Normalizado (SRN) 18 Trabalha com coordenadas normalizadas Em 2D: 0 ≤x≤1 0≤y≤1 Funciona como um sistema de referência intermediário entre o SRU e o SRD Função principal: tornar a geração das imagens independente do dispositivo Coordenadas do universo são convertidas para um sistema de coordenadas padrão normalizado Sistemas de Coordenadas Sistema de Referência do Dispositivo (SRD) 19 Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída Ex: número de pixels de monitores 640×480, 800×600 Sistemas de Coordenadas Exemplos 20 Sistemas de Coordenadas Exemplos 21 Sistemas de Coordenadas Exemplos 22 Transformações Geométricas Aplicação 23 A habilidade de representar um objeto em várias posições no espaço é fundamental para compreender sua forma A possibilidade de submetê-lo a diversas transformações é muito importante para aplicações em C.G. As transformações geométricas podem ser aplicadas em 2D ou 3D e os tipos principais são: Translação, rotação e escala Transformações Geométricas Translação 24 Transladar significa movimentar o objeto, mas como é possível movimentar um objeto completo? Um objeto é formado pelo que? Pontos Então, para movimentar um objeto, basta movimentar os pontos que compõem o mesmo Como os pontos de um objeto podem ser representados em um sistema de coordenadas, basta adicionar quantidades às suas coordenadas Transformações Geométricas Translação – Exemplo 25 Transformações Geométricas Translação – Formalização 26 Imagine um ponto (x,y) que representa um objeto Pode-se mover este objeto Tx unidades em relação ao eixo x Pode-se mover este objeto Ty unidades em relação ao eixo y A nova posição é representada por (x’,y’) e pode ser escrita como x’ = x + Tx y’ = y + Ty ou P’ = P + T [x’ y’] = [x y] + [Tx Ty] Representação na forma de vetores (soma de dois vetores) Transformações Geométricas Translação – Formalização 27 Também é possível representar a translação em um espaço 3D: x’ = x + Tx y’ = y + Ty z’ = z + Tz ou P’ = P + T [x’ y’ z’] = [x y z] + [Tx Ty Tz] Lembre-se que esta transformação deve ser aplicada a cada um dos pontos (P) que formam um objeto Transformações Geométricas Escala 28 Escalonar significa mudar as dimensões de escala, mas como é possível escalonar um objeto completo? Basta multiplicar os valores de suas coordenadas por um fator de escala Cada um dos vetores que compõem o objeto são multiplicados por um mesmo fator de escala Transformações Geométricas Escala – Exemplo 29 Transformações Geométricas Escala – Formalização 30 Imagine um ponto (x,y) que representa um objeto Pode-se escalonar um objeto no eixo x aplicando um fator de escala Sx a este ponto Pode-se escalonar um objeto no eixo y aplicando um fator de escala Sy a este ponto A novo valor de suas coordenadas é representado por (x’,y’) e pode ser escrito como x’ = x * Sx y’ = y * Sy ou x ' y ' x S x y 0 0 S y Representação matricial (multiplicação de vetor e matriz) Transformações Geométricas Escala – Formalização 31 Também é possível representar a escala em um espaço 3D: x’ = x * Sx y’ = y * Sy z’ = z * Sz ou x ' y ' z ' x y S x z 0 0 0 Sy 0 0 0 S z Transformações Geométricas Escala – Observações 32 Para aplicar uma escala em um objeto, é necessário que o objeto esteja na origem dos eixos Caso contrário, essa operação de multiplicação também fará com que o objeto translade Transformações Geométricas Rotação 33 Rotacionar significa girar Ao lado é mostrado o exemplo de rotação de um único ponto O ponto P é rotacionado rumo ao ponto P’ Transformações Geométricas Rotação – Exemplo 34 90º Transformações Geométricas Rotação 35 Se um ponto P, distante r=(x2+y2)1/2 for rotacionado de um ângulo θ em torno da origem, suas coordenadas que antes eram definidas por: x=r*cos(φ), y=r*sen(φ), passam a ser dadas por: x’ = r . cos(θ + φ) = r * cos φ * cos θ – r * sen φ * sen θ y’ = r . sen(θ + φ) = r * sen φ * cos θ + r * cos φ * sen θ Que equivale a: x’ = x * cos θ – y * sen θ y’ = y * cos θ + x * sen θ Transformações Geométricas Rotação – Formalização 36 Imagine um ponto (x,y) que representa um objeto Pode-se rotacionar um objeto no plano xy de um dado ângulo θ utilizando-se as expressões obtidas no slide anterior A novo valor de suas coordenadas é representado por (x’,y’) e pode ser escrito como x’ = x * cos θ – y * sen θ y’ = y * cos θ + x * sen θ ou x ' y ' x cos y sen sen cos Transformações Geométricas Rotação – Observações 37 Para aplicar uma rotação em um objeto, é necessário que o objeto esteja na origem dos eixos Caso contrário, essa operação também fará com que o objeto translade Transformações Geométricas Rotação em Torno de um Ponto 38 Como rotacionar um objeto em torno de um dado ponto? 1. 2. 3. Transladar este ponto para a origem dos eixos Efetuar a rotação Transladar o ponto para sua posição original Obs: a mesma idéia é aplicada à escala Transformações Geométricas Rotação 3D 39 É possível aplicar a rotação em qualquer plano (xy, yz, xz) y y p' y p p x z x p' z x p' z p Transformações Geométricas Composição de Transformações Geométricas 40 Pode-se criar uma transformação geométrica através da composição de várias outras Exercício 41 Aplique transformações geométricas para que o objeto fique como especificado y y x x