Baixe o app para aproveitar ainda mais
Prévia do material em texto
por Robson Pequeno de Sousa. Adaptação: Robson Lins Prof. Robson Lins UNICAP – CCT – Ciência da Computação http://www.dei.unicap.br/rcl/cg TRANSFORMAÇÕES 3D COMPUTAÇÃO GRÁFICA por Robson Pequeno de Sousa. Adaptação: Robson Lins TRANSFORMAÇÕES 3D Transformações básicas 3D Translação Mudança de Escala Rotação Cisalhamento Reflexão Como no caso 2D, utilizam-se coordenadas homogêneas (x,y,z,w) As transformações são compostas via multiplicações de matrizes por Robson Pequeno de Sousa. Adaptação: Robson Lins TRANSLAÇÃO 3D TP = (x + tx, y + ty, z + tz) 1000 100 010 001 z y x t t t 1 z y x por Robson Pequeno de Sousa. Adaptação: Robson Lins EXEMPLO DE TRANSLAÇÃO 3D Translação do ponto (x,y,z) para (x’,y’,z’) 1000 100 0010 0001 z por Robson Pequeno de Sousa. Adaptação: Robson Lins ESCALA 3D 1000 000 000 000 z y x s s s 1 z y x SP = (sxx, syy, szz) por Robson Pequeno de Sousa. Adaptação: Robson Lins EXEMPLO DE ESCALA 3D Considere o paralelepípedo mostrado na figura abaixo, com vetores de posição homogêneos. Escale por fatores de 1/2, 1/3 e 1. Aplique 0 2 2 0 0 2 2 0 0 0 3 3 0 0 3 3 [ ] 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 X por Robson Pequeno de Sousa. Adaptação: Robson Lins ESCALA 3D GERAL Mudança de escala em relação a um ponto fixo fora da origem Transladar o ponto fixo para a origem Aplicar a mudança de escala Aplicar a translação inversa para levar o ponto fixo à sua posição original por Robson Pequeno de Sousa. Adaptação: Robson Lins ROTAÇÃO 3D Rotações positivas são definidas como: Eixo de rotação Direção das rotações positivas x y para z y z para x z x para y y x z por Robson Pequeno de Sousa. Adaptação: Robson Lins ROTAÇÃO 3D 1000 0100 00cossin 00sincos 1 z y x Note que a rotação em 2D é justamente uma rotação em torno do eixo z em 3D Matriz de rotação em torno do eixo-z: Rz(ß)P por Robson Pequeno de Sousa. Adaptação: Robson Lins ROTAÇÃO 3D 1000 0cos0sin 0010 0sin0cos 1 z y x Matrizes de rotação em torno dos eixos x e y 1000 0cossin0 0sincos0 0001 1 z y x por Robson Pequeno de Sousa. Adaptação: Robson Lins ROTAÇÃO 3D GERAL Quando o eixo de rotação for paralelo a um dos eixos coordenados Transladar o objeto para que o eixo de rotação coincida com o eixo coordenado Realizar a rotação em torno desse eixo Aplicar a translação inversa para levar o eixo de rotação à sua posição original por Robson Pequeno de Sousa. Adaptação: Robson Lins ROTAÇÃO 3D GERAL Quando o eixo de rotação não for paralelo a um dos eixos coordenados Transladar o objeto para que o eixo de rotação passe na origem do sistema de coordenadas Rodar o objeto para que o eixo de rotação coincida com um dos eixos coordenados Realizar a rotação em torno desse eixo Aplicar a rotação inversa para levar o eixo de rotação a sua orientação original Aplicar a translação inversa para levar o eixo de rotação à sua posição original por Robson Pequeno de Sousa. Adaptação: Robson Lins CISALHAMENTO 3D cisalhamento em xy produz um cisalhamento no eixo z 1 0 0 0 1 0 0 0 1 0 0 0 0 1 x y sh sh 1 z y x SHxyP = por Robson Pequeno de Sousa. Adaptação: Robson Lins REFLEXÃO 3D Reflexão em torno dos planos xy, yz e xz 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 Plano xy Plano yz Plano xz por Robson Pequeno de Sousa. Adaptação: Robson Lins COMPOSIÇÃO DE TRANSFORMAÇÃO Composição em 3D Transformando P1, P2 e P3 da posição inicial em (a) para a posição final em (b). por Robson Pequeno de Sousa. Adaptação: Robson Lins SOLUÇÃO Para resolver utilize a composição das primitivas de transformação T, Rx, Ry e Rz. i)Transladar P1 para a origem. ii) Rotacionar o segmento P1P2 em relação ao eixo y, de forma que ele (P1P2) fique no plano y-z. iii) Rotacionar o segmento P1P2 em relação ao eixo x, de forma que ele (P1P2) fique sobre o eixo z. iv) Rotacionar o segmento P1P3 em relação ao eixo z, de forma que ele (P1P3) fique no plano y-z. por Robson Pequeno de Sousa. Adaptação: Robson Lins Primeiro passo: Transladar P1 para a origem Aplicando T a P1, P2 e P3, temos: por Robson Pequeno de Sousa. Adaptação: Robson Lins Segundo passo: Rotacionar em relação ao eixo Y O ângulo de rotação é -(90o - ) = - 90o Substituindo os valores na matriz de rotação Ry por Robson Pequeno de Sousa. Adaptação: Robson Lins Terceiro passo: Rotacionar em relação ao eixo X O ângulo de rotação é : por Robson Pequeno de Sousa. Adaptação: Robson Lins Quarto passo: Rotacionar em relação ao eixo Z A rotação é dada pelo ângulo positivo : z
Compartilhar