Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina: Computação Grá�ca Aula 4: Transformações Geométricas Apresentação Iniciaremos nossos estudos sobre as operações que podemos aplicar em objetos 2D ou 3D que in�uenciam na posição, orientação, forma e tamanho desses objetos. Para isso, inicialmente faremos uma breve revisão sobre operações envolvendo Vetores e Matrizes. Posteriormente estudaremos os sistemas de coordenadas e, por �m, estudaremos as transformações geométricas de translação, rotação e escala. Objetivos Compreender as transformações geométricas; Representar através de matrizes os objetos e suas respectivas transformações; Conhecer as limitações dessas transformações; Distinguir os sistemas de coordenadas. Transformações geométricas As 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 Matrizes Todas as transformações geométricas podem ser representadas na forma de equações, o que gera di�culdades à manipulação de objetos grá�cos, pois envolvem muitas operações de aritmética simples. Para resolver este problema, a adoção de matrizes é uma excelente opção, pois 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 Representações Dado um sistema de coordenadas, pode-se de�nir elementos neste sistema através de suas coordenadas. Caso o sistema seja 2D, pontos são de�nidos por duas coordenadas. De�ne-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 Representação de um ponto em um sistema 2D 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). O par pode servir para representar tanto o ponto quanto o vetor em si. A = [2 , 1] = [ ]2 1 Vetor linha Vetor coluna Representação de um ponto através de vetor linha ou vetor coluna Operações vetores (1) Diversas operações podem ser efetuadas entre pontos e vetores: Soma de vetores t = v + u Subtração de vetores t = v + (- u) Exemplo Para realizar a soma entre vetores devemos observar que os vetores precisam ter a mesma direção. Seja u = [1,3] e v = [2,1] O vetor resultante t = v + u será igual a: t [1 + 2,3 + 1] = [3,4] Operações vetores (2) Diversas operações podem ser efetuadas entre pontos e vetores: Multiplicação de um vetor por um escalar (constante) u = 2v Transposta de um vetor vt Exemplo Multiplicação de um vetor por escalar: Seja 𝑣=[2,1], O vetor resultante u = 2v será igual a: U = [2*2,2*1] = [4,2] Vetor transposto: Seja 𝑣=[3,1], O vetor transposto resultante v será igual a: v = [1,3] t t Operações entre pontos e vetores Diversas operações podem ser efetuadas entre pontos e vetores: 1. Soma de um ponto com um vetor Q = P+v Exemplo Vejamos um exemplo da soma entre um ponto P e um vetor v. Seja P = [2,3] e v = [2,-1] O ponto resultante Q = P + V será igual a: Q = [2+2,3-1] = [4,2] Operações matrizes Algumas operações realizadas com vetores também são aplicadas a matrizes. A seguir vemos alguns exemplos de operações com matrizes. Soma de matrizes [ ] + [ ] = [ ] = [ ]1 3 2 4 9 7 8 6 1 + 9 3 + 7 2 + 8 4 + 6 10 10 10 10 Multiplicação de matriz por escalar 2x[ ] = [ ] = [ ]1 3 2 4 2x1 2x3 2x2 2x4 2 6 4 8 Transposta de uma matriz [ ] = [ ]1 3 2 4 1 2 3 4 Multiplicação de matrizes x = = ∣ ∣ ∣ 1 3 2 4 ∣ ∣ ∣ ∣ ∣ ∣ 9 7 8 6 ∣ ∣ ∣ ∣ ∣ ∣ 1x9 + 2x7 3x9 + 4x7 1x8 + 2x6 3x7 + 4x6 ∣ ∣ ∣ ∣ ∣ ∣ 23 55 20 45 ∣ ∣ ∣ Atenção Algumas operações são limitadas pelo tamanho das matrizes. Sistema de coordenadas Podemos utilizar diferentes sistemas de coordenadas para descrever os objetos modelados em um sistema 2D. Esses sistemas servem para nos dar uma referência de tamanho e posição dos objetos. Coordenadas Esféricas Coordenadas Polares Coordenadas Cilíndricas Sistema de referência Sistema de coordenadas cartesianas para alguma �nalidade especí�ca formado por: 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 Referência do Universo (SRU) Sistema de referência utilizado para descrever os objetos em termos das coordenadas utilizadas pelo usuário em determinada aplicação, é também chamado coordenadas do universo, ou do mundo. Exemplo Sistemas 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 de Referência do Objeto (SRO) Cada objeto possui um miniuniverso individual que serve de base para descrever as suas particularidades 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 Referência do Normalizado (SRN) Funciona como um sistema de referência intermediário entre o SRU e o SRD, tendo como 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. Esse sistema trabalha com coordenadas normalizadas, em 2D: 0 ≤ x ≤ 1 0 ≤ y ≤ 1 Transição entre Sistemas de Referência Sistemas de Referência do Dispositivo (SRD) Utiliza coordenadas que podem ser fornecidas diretamente para um dado dispositivo de saída. Exemplo Número de pixels de monitores: 640×480; 800×600. Transformações geométricas 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 CG, podendo ser aplicadas em 2D ou 3D. Os tipos principais são: Clique nos botões para ver as informações. Transladar signi�ca movimentar o objeto, mas como é possível movimentar um objeto completo? Um objeto é formado por 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 a esses pontos o valor do deslocamento. Translação 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: Formalização 2D = x + Txx, = y + Tyy , ou Representação na forma de vetores (soma de dois vetores) P ' = P + T [x' y'] = [x y] + [Tx Ty] Também é possível representar a translação em um espaço 3D. Formalização 3D = x + Txx, = y + Tyy , ou Representação na forma de vetores (soma de dois vetores) P ' = P + T [x' y'] = [x y] + [Tx Ty] Escala Escalonar signi�ca 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, ou seja, cada um dos vetores que compõem o objeto é multiplicado por um mesmo fator de escala. Formalização 2D Imagine um ponto (x,y) que representa um objeto. Pode-se escalonar um objeto no eixo x aplicando um fator de escala S a este ponto Pode-se escalonar um objeto no eixo y aplicando um fator de escala S a este ponto. O novo valor de suas coordenadas é representado por (x’, y’) e pode ser escrito como: x y x' = x * Sx y' = y * Sy ou [ ] = [ ] [ ]x' y' x y Sx 0 0 Sy Formalização 3D Também é possível representar a translação em um espaço 3D. [ ] = [ ]x' y' z' x y z ⎡ ⎣ ⎢ Sx 0 0 0Sy 0 0 0 Sz ⎤ ⎦ ⎥ ou x' = x * Sx y' = y * Sy z' = z * Sz Atenção 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, conforme podemos observar na �gura. Escalonamento de objetos fora da origem. Rotação Rotacionar signi�ca girar. A seguir são apresentados exemplos de rotação, a �gura apresenta a rotação de um único ponto P, enquanto a �gura apresenta a rotação de um objeto. Exemplo de rotação de um ponto Exemplo de rotação Formalização 2D 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. O 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 y cos θ −senθ senθ cos θ Atenção 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. Rotação em torno de um ponto Para rotacionar um objeto em torno de um dado ponto, precisamos seguir os seguintes passos: Transladar este ponto para a origem dos eixos. Efetuar a rotação. Transladar o ponto para sua posição original. Conforme podemos ver na �gura. Rotação 3D É possível aplicar a rotação em qualquer plano (xy, yz, xz) conforme podemos observar na �gura. Composição de transformações geométricas Pode-se criar uma transformação geométrica através da composição de várias outras. No exemplo a seguir queremos aplicar as transformações geométricas descritas na �gura. Cientes das transformações a serem aplicadas no objeto. Apresentamos na �gura a formalização dessas transformações e sua matriz de transformação resultante. T . S . T − − = . . = ⎛ ⎝ ⎜x1,y1, ⎞ ⎠ ⎟ ⎛ ⎝ ⎜Sx,Sy, ⎞ ⎠ ⎟ ⎛ ⎝ ⎜ x1, y1, ⎞ ⎠ ⎟ ⎡ ⎣ ⎢ 1 0 0 0 1 0 x1 y1 1 ⎤ ⎦ ⎥ ⎡ ⎣ ⎢ Sx 0 0 0 Sy 0 0 0 1 ⎤ ⎦ ⎥ ⎡ ⎣ ⎢ 1 0 0 0 1 0 −x1 −y1 1 ⎤ ⎦ ⎥ ⎡ ⎣ ⎢ Sx 0 0 0 Sy 0 (1 −x1 (1 −y1 1 Referências ANGEL, Edward. Interactive computer graphics: a top-down approch using OpenGL tm. 5. ed. Boston: Addison-Wesley, 2009. AZEVEDO, Eduardo; CONCI, Aura. Computação grá�ca: teoria e prática. São Paulo: Campus, 2003. AZEVEDO, Eduardo; CONCI, Aura. Computação grá�ca: teoria e prática. Volume 2. São Paulo: Campus, 2003 FOLEY, James D. Computer graphics: principles and practice. 2.ed. Massachusetts: Addison-Wesley, 1996. WATT, A, POLICARPO, F. 3D Games. [S.l]: Addison Wesley, 2003. v.2. Próxima aula Próxima aula O processo de modelagem de sólidos conhecido como Contructive Solid Geometry (CSG). Explore mais Pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto. Em caso de dúvidas, converse com seu professor online por meio dos recursos disponíveis no ambiente de aprendizagem.
Compartilhar