Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Computação Gráfica Teórica Prof. Paulo Sérgio Rodrigues www.fei.edu.br/~psergio
Computação Gráfica Teórica Introdução à Computação Gráfica: Transformações Geométricas
Computação Gráfica Teórica
Computação Gráfica Teórica
Computação Gráfica Teórica
Computação Gráfica Teórica
Computação Gráfica Teórica
Transformações em Pontos e Objetos Computação Gráfica Teórica Transformações em Pontos e Objetos A habilidade de representar um objeto em várias posições no espaço é fundamental para a compreensão da sua forma. A possibilidade de submeter o objeto a diversas transformações é importante em diversas aplicações de CG.
Transformações em Pontos e Objetos Computação Gráfica Teórica Transformações em Pontos e Objetos Transformações ou operações de corpos físicos a serem estudadas: Translação Rotação Escala são o “coração” de muitas Aplicações em Computação Gráfica.
Princípios das transformações 2D Computação Gráfica Teórica Princípios das transformações 2D Dois aspectos importantes: Uma transformação é uma Entidade Matemática Única e portanto pode ser Denotada, ou identificada, por um nome, ou símbolo, também único. Duas transformações podem ser Combinadas, ou Concatenadas, produzindo uma única transformação que tem o mesmo efeito que a aplicação seqüencial das duas transformações originais.
Conceitos Básicos de Matrizes Computação Gráfica Teórica Conceitos Básicos de Matrizes As imagens na Computação Gráfica são geradas a partir de uma série de Segmentos de Linha que, por sua vez, são representados pelas Coordenadas de seus Pontos extremos. Multiplicação Matricial (o que nos interessa).
Conceitos Básicos de Matrizes Computação Gráfica Teórica Conceitos Básicos de Matrizes Envolve produtos simples e a soma de elementos das matrizes. A (1,3) . B (3,2) = C (1,2)
Conceitos Básicos de Matrizes Computação Gráfica Teórica Conceitos Básicos de Matrizes Diferentemente da Multiplicação de Números a Multiplicação de Matrizes não é Comutativa A (1,3) . B (3,2) # B (3,2) . A (1,3) A Multiplicação de Matrizes é Associativa. A. (B.C) = (A.B). C
Conceitos Básicos de Matrizes Computação Gráfica Teórica Conceitos Básicos de Matrizes Existe um grupo de Matrizes que quando Multiplicada por outra Matriz tem a Propriedade de Reproduzir essa mesma Matriz. Este tipo de Matriz recebe o nome de Identidade. I . A = A
Transformação de Translação Computação Gráfica Teórica Transformação de Translação Significa movimentar o objeto de lugar Aplicada sobre cada vértice Altera o objeto como um todo A topologia não é modificada Translação desloca cada ponto para a nova posição usando a Adição de Valores.
Transformação de Translação Computação Gráfica Teórica Transformação de Translação Ou seja: Dx unidades, deslocadas paralelamente ao Eixo X Dy unidades, deslocadas paralelamente ao Eixo Y Podendo ser descrito como (2D): xp’= xp + dx yp’= yp + dy
Transformação de Translação Computação Gráfica Teórica Transformação de Translação Ou ainda de forma matricial (2D):
Transformação de Translação Computação Gráfica Teórica Transformação de Translação Exemplo (2D):
Transformação de Escala Computação Gráfica Teórica Transformação de Escala Significa mudar as dimensões de escala Aplicada sobre cada vértice Altera o objeto como um todo A topologia não é modificada Para fazer com que uma imagem mude de tamanho teremos que multiplicar os valores de suas coordenadas por um fator de escala
Transformação de Escala Computação Gráfica Teórica Transformação de Escala Ou seja: S representa o fator de escala no eixo X Sy representa o fator de escala no eixo Y Podendo ser descrito como: xp’= xp * sx yp’= yp * sy
Transformação de Escala Computação Gráfica Teórica Transformação de Escala De forma matricial:
Transformação de Escala Computação Gráfica Teórica Transformação de Escala Exemplo:
Rotação (2D) x = r.cos() y = r.sin() P’(x’,y’) y x = r.cos() y = r.sin() r P(x,y) r x x’ = r.cos(+) = r.cos().cos() - r.sin() .sin() y’ = r.sin(+) = r.cos().sin() + r.sin() .cos() x’ = x.cos() - y .sin() y’ = x.sin() + y .cos()
Rotação (2D) P´= R()*P y y x x
Rotação ao redor do Centro de massa (cmx,cmy) y y P´= T(-cmx, -cmy)*P 2 x 1 2 x P´´= R()*P´ y y P´´´= T(cmx, cmy)*P´´ x x
Composições de Transformações Rígidas 2D Dois exemplos: Escala ao redor do centro de massa do objeto P´= T(cmx, cmy)* E(Ex, Ey)* T(-cmx, -cmy)*P Uma única matriz 3x3 que resulta em duas translações e uma escala Rotação ao redor do centro de massa do objeto P´= T(cmx, cmy)* R()* T(-cmx, -cmy)*P
Transformadas Geométricas 3D (Translação) P´= T(x, y, y)*P
Escala ao redor do centro de massa do objeto Escala 3D Escala: P´= E(Ex, Ey, Ez) * P Escala ao redor do centro de massa do objeto P´= T(cmx, cmy, cmz)*E(Ex, Ey,Ez)*T(-cmx, -cmy, -cmz)*P
Rotação ao redor do centro de massa do objeto Rotação (eixo z fixo) P´= Rz()*P (sentido de x para y) Rotação ao redor do centro de massa do objeto P´= T(cmx, cmy, cmz)* Rz()*T(-cmx, -cmy, -cmz)*P
Rotação ao redor do centro de massa do objeto Rotação (eixo x fixo) P´= Rx()*P (sentido de y para z) Rotação ao redor do centro de massa do objeto P´= T(cmx, cmy, cmz)* Rx()*T(-cmx, -cmy, -cmz)*P
Rotação ao redor do centro de massa do objeto Rotação (eixo y fixo) P´= Ry()*P (sentido de z para x) Rotação ao redor do centro de massa do objeto P´= T(cmx, cmy, cmz)* Ry()*T(-cmx, -cmy, -cmz)*P Transformação genérica ao redor do centro de massa: P´= T(cmx, cmy, cmz)* Rz()* Ry()* Rx()* T(-cmx, -cmy, -cmz)*P
Computação Gráfica Teórica Diretivas OpenGL Primitivas: glTranslatef ( tx, ty, tz ) glRotatef ( ângulo, vx, vy, vz ) (vx, vy, vz) = vetor que define eixo de rotação glScalef ( sx, sy, sz ) Alteram a matriz de transformação corrente denominada de matriz MODELVIEW.