computação gráfica teórica centro universitário da fei curso de ciência da computação prof....

Post on 17-Apr-2015

116 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Computação Gráfica Teórica

Centro Universitário da FEICurso de Ciência da Computação

Prof. Paulo Sérgio Rodrigueswww.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

• 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.  

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.

Computação Gráfica Teórica

Princípios das transformações 2D

• Dois aspectos importantes:   1. Uma transformação é uma Entidade

Matemática Única e portanto pode ser Denotada, ou identificada, por um nome, ou símbolo, também único.

2. 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.

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).

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)

295

63

54

71

)532(

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

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

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.

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 + dxyp’= yp + dy

Computação Gráfica Teórica

Transformação de Translação

• Ou ainda de forma matricial (2D):

Computação Gráfica Teórica

Transformação de Translação

• Exemplo (2D):

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

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 * sxyp’= yp * sy

Computação Gráfica Teórica

Transformação de Escala

• De forma matricial:

Computação Gráfica Teórica

Transformação de Escala

• Exemplo:

Computação Gráfica Teórica

Rotação (2D)

x

y

rP(x,y)

P’(x’,y’)

x = r.cos()y = r.sin()

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()

r

Rotação (2D)

P´= R()*P

)cos(*)sin(*

)sin(*)cos(*

1

*

100

0)cos()sin(

0)sin()cos(

1

yxy

yxx

y

x

y

x

x

y

x

y

Rotação ao redor do Centro de massa

1

2

x

y

2

P´= T(-cmx, -cmy)*P

P´´= R()*P´

P´´´= T(cmx, cmy)*P´´

x

y

x

y

x

y

(cmx,cmy)

Composições de Transformações Rígidas 2D

Escala ao redor do centro de massa do objetoP´= T(cmx, cmy)* E(Ex, Ey)* T(-cmx, -cmy)*P

Rotação ao redor do centro de massa do objetoP´= T(cmx, cmy)* R()* T(-cmx, -cmy)*P

Uma única matriz 3x3 que resulta em duas translações e uma escala

Dois exemplos:

Transformadas Geométricas 3D (Translação)

Translação: P´= T(x, y, y)*P

zzz

yyy

xxx

z

y

x

z

y

x

z

y

x

1

*

1000

100

010

001

1

Escala 3D

Escala: P´= E(Ex, Ey, Ez) * P

Ezzz

Eyyy

Exxx

z

y

x

Ez

Ey

Ex

z

y

x

*

*

*

1

*

1000

000

000

000

1

Escala ao redor do centro de massa do objetoP´= T(cmx, cmy, cmz)*E(Ex, Ey,Ez)*T(-cmx, -cmy, -cmz)*P

Rotação (eixo z fixo)P´= Rz()*P (sentido de x para y)

zz

yxsiny

ysinxx

z

y

x

sin

sin

z

y

x

)cos()(

)()cos(

1

*

1000

0100

00)cos()(

00)()cos(

1

Rotação ao redor do centro de massa do objetoP´= T(cmx, cmy, cmz)* Rz()*T(-cmx, -cmy, -cmz)*P

y

x

z

Observador

Rotação (eixo x fixo)P´= Rx()*P (sentido de y para z)

)cos()(

)()cos(

1

*

1000

0)cos()(0

0)()cos(0

0001

1

zysinz

zsinyy

xx

z

y

x

sin

sin

z

y

x

Rotação ao redor do centro de massa do objetoP´= T(cmx, cmy, cmz)* Rx()*T(-cmx, -cmy, -cmz)*P

y

x

z

Observador

Rotação (eixo y fixo)P´= Ry()*P (sentido de z para x)

)()cos(

)cos()(

1

*

1000

0)cos(0)(

0010

0)(0)cos(

1

xsinzz

yy

xzsinx

z

y

x

sin

sin

z

y

x

Rotação ao redor do centro de massa do objetoP´= T(cmx, cmy, cmz)* Ry()*T(-cmx, -cmy, -cmz)*P

y

x

z

Observador

Transformação genérica ao redor do centro de massa:P´= T(cmx, cmy, cmz)* Rz()* Ry()* Rx()* T(-cmx, -cmy, -cmz)*P

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.

Computação Gráfica Teórica

top related