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

32
Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues www.fei.edu.br/~psergio

Upload: internet

Post on 17-Apr-2015

115 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 2: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Computação Gráfica Teórica

Introdução à Computação Gráfica:Transformações Geométricas

Page 3: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Computação Gráfica Teórica

Page 4: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Computação Gráfica Teórica

Page 5: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Computação Gráfica Teórica

Page 6: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Computação Gráfica Teórica

Page 7: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Computação Gráfica Teórica

Page 8: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 9: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 10: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 11: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 12: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 13: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 14: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 15: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 16: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 17: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Transformação de Translação

• Ou ainda de forma matricial (2D):

Computação Gráfica Teórica

Page 18: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Transformação de Translação

• Exemplo (2D):

Computação Gráfica Teórica

Page 19: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 20: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 21: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Transformação de Escala

• De forma matricial:

Computação Gráfica Teórica

Page 22: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

Transformação de Escala

• Exemplo:

Computação Gráfica Teórica

Page 23: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 24: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 25: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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)

Page 26: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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:

Page 27: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 28: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 29: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 30: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 31: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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

Page 32: Computação Gráfica Teórica Centro Universitário da FEI Curso de Ciência da Computação Prof. Paulo Sérgio Rodrigues psergio

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