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