Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo...

67
1 Instituto de Computação - UFF Computação Computação Gráfica I Gráfica I Professor : Anselmo Montenegro www.ic.uff.br/~anse lmo Conteúdo : - Transformações geométricas no espaço

Transcript of Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo...

Page 1: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

1

Instituto de Computação - UFF

Computação Gráfica IComputação Gráfica IProfessor:

Anselmo Montenegrowww.ic.uff.br/~anselmo

Conteúdo:

- Transformações geométricas no espaço

Page 2: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

2

Instituto de Computação - UFF

• As transformações geométricas são operações As transformações geométricas são operações fundamentais para a modelagem, visualização fundamentais para a modelagem, visualização e interação com objetos gráficos 3D.e interação com objetos gráficos 3D.

• Descreveremos os seguintes tópicos:Descreveremos os seguintes tópicos:– Escalas, rotações e translações no espaço.Escalas, rotações e translações no espaço.– Esquemas para Esquemas para representação de orientaçõesrepresentação de orientações..– Composição de transformaçõesComposição de transformações::

• Instanciação de objetos.Instanciação de objetos.• Hierarquia.Hierarquia.

Transformações geométricas no espaçoTransformações geométricas no espaço: : IntroduçãoIntrodução

Page 3: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

3

Instituto de Computação - UFF

• Transformações de escala, rotação e Transformações de escala, rotação e translação são fundamentais para a translação são fundamentais para a criação criação de cenas compostas por diversos objetosde cenas compostas por diversos objetos..

• As matrizes de As matrizes de translaçãotranslação e e escalaescala são de são de fato uma simples extensão das matrizes de fato uma simples extensão das matrizes de transformação definidas no plano.transformação definidas no plano.

Transformações geométricas espaçoTransformações geométricas espaço: : IntroduçãoIntrodução

Page 4: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

4

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Translações e escalasTranslações e escalas

x

y

z

11000

100

010

001

1

z

y

x

t

t

t

z

y

x

z

y

x

11000

000

000

000

1

z

y

x

s

s

s

z

y

x

z

y

x

TranslaçãoTranslação

EscalaEscala

Page 5: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

5

Instituto de Computação - UFF

• As operações de rotação no espaço são mais As operações de rotação no espaço são mais complexas do que no plano.complexas do que no plano.

• Uma extensão natural é definirmos a rotação de Uma extensão natural é definirmos a rotação de um objeto a partir da um objeto a partir da rotação em torno dos eixosrotação em torno dos eixos cartesianoscartesianos..

Transformações geométricas no espaçoTransformações geométricas no espaço: : RotaçõesRotações

xx

yy

zz

xx

yy

zz

Page 6: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

6

Instituto de Computação - UFF

• Podemos facilmente definir as matrizes Podemos facilmente definir as matrizes de rotação em cada eixo.de rotação em cada eixo.

• As As colunascolunas de uma matriz de rotação em de uma matriz de rotação em torno de um certo eixo cartesiano são torno de um certo eixo cartesiano são dados pela dados pela transformação dos vetores da transformação dos vetores da base canônicabase canônica..

Transformações geométricas no espaçoTransformações geométricas no espaço: : RotaçõesRotações

Page 7: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

7

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Rotações no eixo zRotações no eixo z

z

y

x

z

y

x

zz

zz

100

0cossin

0sincos

'

'

'

x

y

z

'i'j

'k

z

11000

0100

00cossin

00sincos

1

'

'

'

z

y

x

z

y

x

zz

zz

1

0

0

k

0

sin

cosˆ

z

z

i

0

cos

sinˆ

z

z

j

i ˆjˆ

i

j

x

y

kk ˆˆ

z

Page 8: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

8

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Rotações no eixo xRotações no eixo x

x

y

z

x

'i'j

'k

x

xj

sin

cos

0

0

1

i

x

xk

cos

sin

z

y

x

z

y

x

xx

xx

cossin0

sincos0

001

11000

0cossin0

0sincos0

0001

1

z

y

x

z

y

x

xx

xx

x

jˆkˆ

j

k

y

z

ii ˆˆ

x

Page 9: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

9

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Rotações no eixo yRotações no eixo y

y

z

'i'j

'k

y

x

'k'i

k

i

z

x

'ˆˆ jj

y

y

iy

sin

0

cos

0

1

0

j

y

ky

cos

1

sinˆ

z

y

x

z

y

x

yy

yy

cos0sin

010

sin0cos

11000

0cos0sin

0010

0sin0cos

1

z

y

x

z

y

x

yy

yy

x

Page 10: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

10

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Rotações nos eixos cartesianosRotações nos eixos cartesianos

x

y

z

x

y

z

11000

0cos0sin

0010

0sin0cos

1

z

y

x

z

y

x

yy

yy

11000

0cossin0

0sincos0

0001

1

z

y

x

z

y

x

xx

xx

11000

0100

00cossin

00sincos

1

'

'

'

z

y

x

z

y

x

zz

zz

Page 11: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

11

Instituto de Computação - UFF

• Em geral, uma Em geral, uma matriz de transformação em matriz de transformação em coordenadas homogêneascoordenadas homogêneas tem a seguinte estrutura: tem a seguinte estrutura:

• Se a matriz Se a matriz MM e o vetor e o vetor ss tem dimensões 2x2 e 1x2, tem dimensões 2x2 e 1x2, respectivamente, então a transformação ocorre no respectivamente, então a transformação ocorre no plano homogêneoplano homogêneo..

• Se as dimensões forem 3x3 e 3x1, respectivamente, Se as dimensões forem 3x3 e 3x1, respectivamente, então a transformação ocorre no então a transformação ocorre no espaço homogêneoespaço homogêneo..

Transformações geométricas no espaçoTransformações geométricas no espaço: : matrizes de transformaçãomatrizes de transformação

1s

TM

1s

TM

Page 12: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

12

Instituto de Computação - UFF

• A forma matricial homogênea pode A forma matricial homogênea pode representarrepresentar

a)a) Transformações lineares.Transformações lineares.

b)b) TranslaçõesTranslações

c)c) Transformações afins.Transformações afins.

Transformações geométricas no espaçoTransformações geométricas no espaço: : matrizes de transformaçãomatrizes de transformação

10

0M

10

0M

10

TI

10

TI

10

TM

10

TM

(a)(a) (b)(b) (c)(c)

Page 13: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

13

Instituto de Computação - UFF

• A matriz que representa uma A matriz que representa uma transformação transformação afimafim representa uma representa uma transformação linear transformação linear seguida de uma translaçãoseguida de uma translação::

• Caso invertêssemos a ordem teríamosCaso invertêssemos a ordem teríamos

Transformações geométricas no espaçoTransformações geométricas no espaço: : matrizes de transformaçãomatrizes de transformação

1010

0

10

TMMTI

1010

0

10

TMMTI

101010

0 MTMTIM

101010

0 MTMTIM

Page 14: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

14

Instituto de Computação - UFF

• Como podemos ver, a Como podemos ver, a ordem influi no resultadoordem influi no resultado..

• Na segunda ordem, a translação não pode ser lida Na segunda ordem, a translação não pode ser lida diretamente da última coluna última matriz,.diretamente da última coluna última matriz,.

• Como a última linha é o vetor Como a última linha é o vetor [0..0 1][0..0 1] então então estas estas matrizes mantêm os pontos no plano matrizes mantêm os pontos no plano w = 1w = 1..

• Nas Nas transformações projetivastransformações projetivas, que serão vistas mais , que serão vistas mais tarde, a última linha assume outros valores e os tarde, a última linha assume outros valores e os pontos podem ser deslocados do plano pontos podem ser deslocados do plano w=1w=1..

Transformações geométricas no espaçoTransformações geométricas no espaço: : matrizes de transformaçãomatrizes de transformação

Page 15: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

15

Instituto de Computação - UFF

• Podemos imaginar que a Podemos imaginar que a orientaçãoorientação de de um objeto no espaço pode ser um objeto no espaço pode ser especificada através da especificada através da composição de composição de três rotações em torno dos eixos três rotações em torno dos eixos cartesianoscartesianos..

• Esta forma de especificação requer Esta forma de especificação requer alguns cuidados já que alguns cuidados já que rotações não rotações não comutamcomutam..

Transformações geométricas no espaçoTransformações geométricas no espaço: : rotações e orientaçõesrotações e orientações

ox 90 ox 90o

z 90 oz 90

ox 90 ox 90 o

z 90 oz 90

oy 90

Page 16: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

16

Instituto de Computação - UFF

• Já que as Já que as rotações não comutamrotações não comutam devemos adotar devemos adotar uma ordem específicauma ordem específica..

• Esta forma de representar orientações é denominada Esta forma de representar orientações é denominada Ângulos de EulerÂngulos de Euler..

• Na literatura de aeronáutica estas rotações são Na literatura de aeronáutica estas rotações são chamadas dechamadas de

– RollRoll – giro em torno do eixo longitudinal – giro em torno do eixo longitudinal– PitchPitch – ângulo de ataque. – ângulo de ataque.– YawYaw – giro em torno do eixo vertical. – giro em torno do eixo vertical.

Transformações geométricas no espaçoTransformações geométricas no espaço: : Ângulos de EulerÂngulos de Euler

Page 17: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

17

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : ângulos de Eulerângulos de Euler

1000

0

0

0

),,(yxzxzyxzxzyx

yxzxzyxzxzyx

yzyzy

zyx cccssscsscsc

csccssssccss

ssccc

R

xx

y

z

y

x

y

z

z

x

y

z

ssxx = sin( = sin(xx), s), sy y = sin(= sin(yy), s), szz = sin( = sin(zz))

ccxx = cos( = cos(xx), c), cy y = cos(= cos(yy), c), czz = cos( = cos(zz))

Page 18: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

18

Instituto de Computação - UFF

• Problemas:Problemas:

– Gimbal lockGimbal lock: perda de graus de : perda de graus de liberdade em certas configurações.liberdade em certas configurações.

– Não são parâmetros adequados para Não são parâmetros adequados para interpolações.interpolações.

Transformações geométricas no espaçoTransformações geométricas no espaço: : Ângulos de Euler Ângulos de Euler

Page 19: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

19

Instituto de Computação - UFF

• Animador deseja rodar o boneco de lado (Animador deseja rodar o boneco de lado (xx= 30= 30) graus, incliná-) graus, incliná-

lo para frente (lo para frente (yy= 90= 90) e levantar seu braço esquerdo.) e levantar seu braço esquerdo.

• A última operação não será possível.A última operação não será possível.

Transformações geométricas no espaçoTransformações geométricas no espaço: : ângulos de Euler – Gimbal Lock ângulos de Euler – Gimbal Lock

xx=30=30°° xx=30=30°°

yy=90=90°°

xx=30=30°°

yy=90=90°°

zz=60=60°°

originaloriginal

zz

yyxx

Page 20: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

20

Instituto de Computação - UFF

Mesmo resultado obtido apenas com rotações Mesmo resultado obtido apenas com rotações no eixo x e y.no eixo x e y.

Transformações geométricas no espaçoTransformações geométricas no espaço: : ângulos de Euler – Gimbal Lockângulos de Euler – Gimbal Lock

xx=-60=-60°° xx=-60=-60°°

yy=90=90°°

originaloriginal

Page 21: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

21

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : ângulos de Euler ângulos de Euler

1000

00

00

0100

),90,(zxzxzxzx

zxzxzxzxz

ox csscsscc

ccsssccsR

1000

00)sin()cos(

00)cos()sin(

0100

zxzx

zxzx

1000

0

0

0

),,(yxzxzyxzxzyx

yxzxzyxzxzyx

yzyzy

zyx cccssscsscsc

csccssssccss

ssccc

R

Apesar de especificarmos 2 parâmetros só Apesar de especificarmos 2 parâmetros só temos 1 grau de liberdadetemos 1 grau de liberdade

Page 22: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

22

Instituto de Computação - UFF

• Interpolação entre Interpolação entre as orientações as orientações (0,90,0) e (0,90,0).(0,90,0) e (0,90,0).

• Note que em uma Note que em uma interpolação mais interpolação mais natural a cabeça natural a cabeça não sairia tanto do não sairia tanto do plano plano xzxz..

Transformações geométricas no espaçoTransformações geométricas no espaço: : ângulos de Euler – interpolaçãoângulos de Euler – interpolação

Page 23: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

23

Instituto de Computação - UFF

• Rotações em torno de um eixo:Rotações em torno de um eixo:

– Euler provou em 1775 que dadas duas posições Euler provou em 1775 que dadas duas posições rotacionadas de um objeto, é sempre possível levar uma rotacionadas de um objeto, é sempre possível levar uma posição a outra através de uma posição a outra através de uma rotação de um ângulo rotação de um ângulo em torno de um eixoem torno de um eixo. .

– Esta rotação tem a mesmo comportamento que a Esta rotação tem a mesmo comportamento que a interpolação de duas posições através de um segmento interpolação de duas posições através de um segmento de reta que os une.de reta que os une.

– Sai da primeira posição indo para a segunda sem Sai da primeira posição indo para a segunda sem oscilações.oscilações.

Transformações geométricas no espaçoTransformações geométricas no espaço: : outras formas de se expecificar orientações outras formas de se expecificar orientações

Page 24: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

24

Instituto de Computação - UFF

e

pp

||p

v

p

x

y

z pev ˆ

)()( || pppp RR

)()( || ppp RR

vppp )()(cos|| sen

p

p

'pv

)ˆ)(()ˆ)ˆ()((cosˆ)ˆ( peepepepep sen

Transformações geométricas no espaçoTransformações geométricas no espaço: : rotação em torno de um eixo ê rotação em torno de um eixo ê

Page 25: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

25

Instituto de Computação - UFF

e

pp

||p

v

p

x

y

z pev ˆ

p

p

'pv

))(())((cos)(cos)( pêêpêpêpêp sen

))(())(cos1()(cos pêêpêpp sen

)ˆ)(()ˆ)ˆ()((cosˆ)ˆ( peepepepep sen

Transformações geométricas no espaçoTransformações geométricas no espaço: : rotação em torno de um eixo ê rotação em torno de um eixo ê

Page 26: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

26

Instituto de Computação - UFF

sin)cos1(

sin)cos1(

)cos1(cos0

sin)cos1(

0

0

1

cos

2

22

21

11

yzx

zyx

x

y

z

z

y

x

x

eee

eee

e

e

e

e

e

e

e

m

m

m

sin)cos1(

)cos1(cos

sin)cos1(

0sin)cos1(

0

1

0

cos 2

32

22

12

xzy

y

zxy

x

z

z

y

x

y

eee

e

eee

e

e

e

e

e

e

m

m

m

233

23

13

)cos1(cos

sin)cos1(

sin)cos1(

0

sin)cos1(

1

0

0

cos

z

xyz

yxz

x

y

z

y

x

z

e

eee

eee

e

e

e

e

e

e

m

m

m

11000

0

0

0

'

'

'

333231

232221

131211

z

y

x

mmm

mmm

mmm

w

z

y

x

Transformações geométricas no espaçoTransformações geométricas no espaço: : rotação em torno de um eixo ê rotação em torno de um eixo ê

Page 27: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

27

Instituto de Computação - UFF

1000

0)cos1(cossin)cos1(sin)cos1(

0sin)cos1()cos1(cossin)cos1(

0sin)cos1(sin)cos1()cos1(cos

2

2

2

zxzyyzx

xyzyzyx

yxzzxyx

eeeeeee

eeeeeee

eeeeeee

M

11000

0

0

0

'

'

'

333231

232221

131211

z

y

x

mmm

mmm

mmm

w

z

y

x

x

y

z

z

y

x

e

e

e

ê

Transformações geométricas no espaçoTransformações geométricas no espaço: : rotação em torno de um eixo ê rotação em torno de um eixo ê

Page 28: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

28

Instituto de Computação - UFF

xy

z

z

y

x

e

e

e

ê

xy

z

z

y

x

e

e

e

ê

p0

p0

xy

z

z

y

x

e

e

e

ê

p0

M

xy

z

z

y

x

e

e

e

ê

p0

1000

100

010

001

0

0

0

z

y

x

T

1000

100

010

001

0

0

0

1

z

y

x

T

Transformações geométricas no espaçoTransformações geométricas no espaço: : rotação em torno de um eixo ê fora da origemrotação em torno de um eixo ê fora da origem

Page 29: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

29

Instituto de Computação - UFF

• A especificação de orientações através de rotações A especificação de orientações através de rotações em torno de um eixo em torno de um eixo não fornece uma álgebra simplesnão fornece uma álgebra simples para as diversas operações necessárias para para as diversas operações necessárias para animação.animação.

• Para isso existe uma estrutura matemática mais Para isso existe uma estrutura matemática mais adequada denominada adequada denominada quatérniosquatérnios..

• No século 18, W. R. Hamilton propôs os No século 18, W. R. Hamilton propôs os quatérniosquatérnios como uma extensãocomo uma extensão em quatro dimensões para os em quatro dimensões para os números complexos.números complexos.

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaterniosquaternios

Page 30: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

30

Instituto de Computação - UFF

• QuatérniosQuatérnios podem representar rotações e orientações podem representar rotações e orientações no espaço tridimensional.no espaço tridimensional.

• Existem diferentes notações para Existem diferentes notações para quatérniosquatérnios

• Uma possível forma é representá-los conforme abaixo:Uma possível forma é representá-los conforme abaixo:

• qq = (q = (qvv,q,qww) = iq) = iqxx+jq+jqyy+kq+kqzz+q+qww = q = qvv+q+qww

• qqvv= iq= iqxx+jq+jqyy+kq+kqzz=(q=(qxx,q,qyy,q,qzz))

• ii22 = j = j22 = k = k22 = -1 and ij = -ji= k, jk = -kj = i, ki = -ik = -j = -1 and ij = -ji= k, jk = -kj = i, ki = -ik = -j

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaternios quaternios

Page 31: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

31

Instituto de Computação - UFF

• Adição: q + r = (qv,qw)+(rv,rw)

Multiplicação: qr = (qv x rv +rwqv +qwrv, qwrw – qv.rv), onde “.” indica produto escalar e “x” produto vetorial); Obs.: qr ≠ rq

• Conjugado: q* = (qv,qw)* = (-qv,qw)

•Norma: n(q) = qq* = q*q = qv . qv + qw

2 = qx2 + qy2 + qz2 + qw2

• Inverso: q-1 = q* / N(q)

Identidade: – (0,0,0,1) - multiplicação – (0,0,0,0) – adição

• Outras operações podem ser derivadas das operações básicas.

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaternions – operações fundamentaisquaternions – operações fundamentais

Page 32: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

32

Instituto de Computação - UFF

• Um quatérnio q = (qv,qw) é unitário se n(q) = 1.

• Pode-se escrever um quatérnio unitário como

q = (sinuq, cos ) = sinuq + cos

• onde uq é um vetor 3d tal que ||uq||=1

• Quatérnios unitários são perfeitamente apropriados para representar rotações e orientações.

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaternios unitáriosquaternios unitários

Page 33: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

33

Instituto de Computação - UFF

• Pode ser provado que a rotação de um vetor v por um quatérnio unitário e´ dado por:

p´ = q p q* = q p q-1 , onde p = (px py pz pw)T

• Dados dois quatérnios unitários q e r. A concatenação da aplicação de q sobre p seguida de r é dada por:

r (q p q*) r* = (r q) p (rq)* = c p c*

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaternions e rotaçõesquaternions e rotações

Page 34: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

34

Instituto de Computação - UFF

• O modo retained do Direct3D e o XNA suportam quatérnio.

• OpenGL não fornece suporte direto a quatérnio.

• Como resultado é necessário converter orientações em quatérnio para outra forma de representação.

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaternions e API’s gráficasquaternions e API’s gráficas

Page 35: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

35

Instituto de Computação - UFF

• Tanto OpenGL quanto Direct3D fornecem modos de se especificar orientações via matrizes.

• Logo, a conversão quatérnio-matriz é necessária.

• Tal conversão é necessário se for necessário importar orientações de sistemas gráficos que não adotam quatérnio como o LightWave.

Transformações geométricas no espaçoTransformações geométricas no espaço: : quaternions e API’s gráficasquaternions e API’s gráficas

Page 36: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

36

Instituto de Computação - UFF

• A conversão da forma ângulo e eixo para quatérnio é simples.

• Utiliza duas operações trigonométricas e operações de divisão e multiplicação.

q = [cos(Q/2), sin(Q/2)v] ,

• onde Q um ângulo e v um eixo.

Transformações geométricas no espaçoTransformações geométricas no espaço: : conversão conversão ângulo e eixo -quaternioângulo e eixo -quaternio

Page 37: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

37

Instituto de Computação - UFF

• A conversão de ângulos de Euler para quatérnio segue um padrão similar.

• É necessário apenas ficar atento quanto a ordem.• Supondo a forma yaw, pitch e roll temos a seqüência

de quaternios:

– q = qyaw qpitch qroll onde:

• qroll = [cos (y/2), (sin(y/2), 0, 0)]

• qpitch = [cos (q/2), (0, sin(q/2), 0)]

• qyaw = [cos(f/2), (0, 0, sin(f/2)]

Transformações geométricas no espaçoTransformações geométricas no espaço: : conversão conversão ângulos de Euler - quaternionângulos de Euler - quaternion

Page 38: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

38

Instituto de Computação - UFF

• Um quatérnio q pode ser convertido em uma matriz Mq conforme a expressão abaixo:

• Onde s = 2n(q). Para q unitário Mq reduz-se a

Transformações geométricas no espaçoTransformações geométricas no espaço: : conversão conversão quaternio - matrizquaternio - matriz

1000

0)(1)()(

0)()(1)(

0)()()(1

22

22

22

yxxwzyywzx

xwzyzxzwyx

ywzxzwyxzy

q

qqsqqqqsqqqqs

qqqqsqqsqqqqs

qqqqsqqqqsqqs

M

1000

0)(1)(2)(2

0)(2)(21)(2

0)(2)(2)(21

22

22

22

yxxwzyywzx

xwzyzxzwyx

ywzxzwyxzy

q

qqsqqqqqqqq

qqqqqqqqqq

qqqqqqqqqq

M

Page 39: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

39

Instituto de Computação - UFF

• A conversão matriz-quatérnio requer um conjunto de passos.

• A chave para a conversão surge das diferenças entre elementos da matriz anterior:

• Conhecendo-se qw, é possível determinar o quatérnio q = (qx,qy,qz,qw)

Transformações geométricas no espaçoTransformações geométricas no espaço: : conversãoconversão matriz -quaterniomatriz -quaternio

1000

0)(1)(2)(2

0)(2)(21)(2

0)(2)(2)(21

22

22

22

yxxwzyywzx

xwzyzxzwyx

ywzxzwyxzy

q

qqsqqqqqqqq

qqqqqqqqqq

qqqqqqqqqq

M

zwqq

ywqq

xwqq

qqmm

qqmm

qqmm

4

4

4

0110

2002

1221

Page 40: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

40

Instituto de Computação - UFF

• O traço de Mq é dado pela soma dos elementos da diagonal:

• Com efeito, a conversão para um quatérnio unitário é dada por:

Transformações geométricas no espaçoTransformações geométricas no espaço: : conversãoconversão matriz -quatérniomatriz -quatérnio

w

qq

x q

mmq

41221

)ˆ(

414)(24)(

2

2222

222222

qn

q

qqqq

qqqqqqsMtr w

wzyx

zyxzyx

q

w

qq

y q

mmq

42002

w

qq

z q

mmq

40110

)(2

1 qw Mtrq

Page 41: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

41

Instituto de Computação - UFF

• A interpolação linear esférica entre dois quatérnios q e r, dado um parâmetro t [0,1], calcula a interpolação entre dois quatérnios através da seguinte expressão:

– s(q,r,t)=(rq-1)tq

• Implementações em software utilizam a seguinte fórmula:

– s(q,r,t)=slerp(q,r,t) =

Transformações geométricas no espaçoTransformações geométricas no espaço: : interpolação de quaterniosinterpolação de quaternios

rt

qt

ˆsin

)sin(ˆ

sin

))1(sin(

Page 42: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

42

Instituto de Computação - UFF

• TranslaçãoTranslação

– glTranslate{fd}(TYPE x, TYPE y, TYPE z);glTranslate{fd}(TYPE x, TYPE y, TYPE z);

• RotaçãoRotação de de angle angle graus em torno de um eixo (x,y,z). graus em torno de um eixo (x,y,z).

– glRotate{fd}(TYPE angle,TYPE x, TYPE y, TYPE z);glRotate{fd}(TYPE angle,TYPE x, TYPE y, TYPE z);

• EscalaEscala

– glScale{fd}(TYPE sx, TYPE sy, TYPE sz);glScale{fd}(TYPE sx, TYPE sy, TYPE sz);

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 43: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

43

Instituto de Computação - UFF

• Para transformarmos um certo objeto poligonal basta Para transformarmos um certo objeto poligonal basta aplicar a matriz de transformação em cada um dos aplicar a matriz de transformação em cada um dos seus vértices.seus vértices.

• Por outro lado, no caso geral, Por outro lado, no caso geral, as normais destes as normais destes objetos não seguem a mesma transformaçãoobjetos não seguem a mesma transformação..

• Exemplo:Exemplo:

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

xx

yy

xx

yy

ssxx=0.5=0.5

xx

yy

Page 44: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

44

Instituto de Computação - UFF

• Considere o plano com equaçãoConsidere o plano com equação

• Se incluirmos a matriz identidade Se incluirmos a matriz identidade I = MI = M-1-1MM não não alteramos a equação abaixo:alteramos a equação abaixo:

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

1

1

z

y

x

MMdcbapnT

1

z

y

x

dcbapnT

Page 45: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

45

Instituto de Computação - UFF

• A equação do plano transformado A equação do plano transformado n’.p’=0n’.p’=0 é é

• Logo, temos que a normal transformadaLogo, temos que a normal transformada é é

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

0

1

1

z

y

x

Mdcba

nM

d

c

b

a

M

d

c

b

a

n TT

Page 46: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

46

Instituto de Computação - UFF

• O processo de instanciação de objeto permite a O processo de instanciação de objeto permite a especificação de modelos complexos através de especificação de modelos complexos através de modelos padrão simples e transformações modelos padrão simples e transformações geométricasgeométricas..

• É fundamental para a descrição de É fundamental para a descrição de objetos compostos objetos compostos de várias partesde várias partes, principalmente quando há , principalmente quando há vínculovínculo entre as mesmas.entre as mesmas.

• Devemos primeiramente esclarecer a questão de Devemos primeiramente esclarecer a questão de ordem e interpretaçãoordem e interpretação das transformações das transformações geométricas compostas.geométricas compostas.

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 47: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

47

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

x

y

z

1

1

1

braço

ante-braço

Page 48: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

48

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

x

y

y

xp

R x

y

2

22 y

xp

T

x

y

1

11 y

xp

R x

y

1

11 y

xp

x

y

2

22 y

xp

T

(a)

(b)

Page 49: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

49

Instituto de Computação - UFF

• Às vezes é difícil especificar transformações Às vezes é difícil especificar transformações geométricas nos casos em que a existe geométricas nos casos em que a existe dependênciadependência entre a posição das partes entre a posição das partes de um de um objeto composto.objeto composto.

• Nestas situações é conveniente adotar uma Nestas situações é conveniente adotar uma outra interpretação geométricaoutra interpretação geométrica para as para as transformações compostas.transformações compostas.

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 50: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

50

Instituto de Computação - UFF

• Ao invés de considerarmos que as transformações Ao invés de considerarmos que as transformações ocorrem nos objetos, ocorrem nos objetos, consideramos que elas ocorrem consideramos que elas ocorrem em um sistema de eixos locaisem um sistema de eixos locais que rodam e que rodam e transladam.transladam.

• A idéia é que os eixos locais inicialmente coincidem A idéia é que os eixos locais inicialmente coincidem com o sistema de referência global.com o sistema de referência global.

• A cada rotação e translação, A cada rotação e translação, um dado eixo local muda um dado eixo local muda de posição e/ou orientaçãode posição e/ou orientação..

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 51: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

51

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

p2 = R T pp1= T p e p2 = R p1

x

T R

y

x

y

xp

x

y y

1

11 y

xp

2

22 y

xp

xy L

x

y

x LR

x,xL

y,yL

x L

y L

TL

x

y

p2= TLR p , TL=RTR-1 p2 = R T R-1 R p p2 = R T pou

p2

Page 52: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

52

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 53: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

53

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

yy

xxzz

Page 54: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

54

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

yy

xxzz

x’x’

y’y’

z’z’

Page 55: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

55

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

yy

xxzz

xx’’’’

yy11

x’x’zz11= z’’= z’’

y’’= y’y’’= y’

xx11z’z’

Page 56: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

56

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

xx22

yy

zz22

xxzz

yy22

xx’’’’

yy11

dd11

x’x’zz11= z’’= z’’

y’’= y’y’’= y’

xx11z’z’

Page 57: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

57

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

xx22

yy

zz22

xxzz

yy22xx44

yy44

zz44

xx’’’’

yy11

xx33

yy33zz33=z=z22’’

xx55zz55= = zz44’’yy44’’dd11

dd22

x’x’zz11= z’’= z’’

y’’= y’y’’= y’

xx11

yy22’’

xx22’’

xx44’’ yy55

z’z’

Desenha a base (em xyz);Translada em y;Roda em y’; Roda em z’’;Desenha o ombro (em x1y1z1)Translada em y1 de d1/2;Desenha o ante-braço (em x2y2z2);Translada em y2 de d1/2;Roda em z2’Desenha o cotovelo (em x3y3z3);Translada em y3 de d2/2;Desenha o braço (em x4y4z4);Translada em y4 de d2/2;Roda em z4’;Desenha o pulso (em x5y5z5);Translada em y5

Desenha a mão (em x6y6z6);

Page 58: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

58

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

glMatrixMode(GL_MODELVIEW); /* transformações do modelo */glLoadIdentity( ); /* carrega a identidade como corrente */desenhaBase( ); /* em xyz */glTranslatef(0,d0,0.); /* translada em y */glRotatef(angy0, 0.,1.,0.); /* roda em y’ */glRotatef(angz0, 0.,0.,1.); /* roda em z’’ */desenhaOmbro( ); /* em x1y1z1 */glTranslatef(0.,d1/2,0.); /* translada em y1 */desenhaAnteBraco( ); /* em x2y2z2 */glTranslatef(0.,d1/2,0.); /* translada em y2 */glRotatef(angz1, 0.,0.,1.); /* roda em z2´ */desenhaCotovelo( ); /* em x3y3z3 */glTranslatef(0.,d2/2,0.); /* translada em y3 */desenhaBraco( ); /* em x4y4z4 */glTranslatef(0.,d2/2,0.); /* translada em y4 */glRotatef(rz5, 0.,0.,1.); /* roda em z4’ */desenhaPulso( ); /* em x5y5z5 */glTranslatef(0.,d3,0.0); /* translada em y5 */desenhaMao( ); /* em x6y6z6 */

Page 59: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

59

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

xx22

yy

zz22

xxzz

yy22xx44

yy44

zz44

xx’’’’

yy11

xx33

yy33zz33=z=z22’’

xx55zz55= = zz44’’

yy44’’dd11

dd22

x’x’zz11= z’’= z’’

y’’= y’y’’= y’

xx11

yy22’’

xx22’’

xx44’’ yy55

z’z’

base I

ombro TyRy’Rz’’

ante-braço TyRy’Rz’’Ty1

cotovelo TyRy’Rz’’Ty1Ty2Rz2’

braço TyRy’Rz’’Ty1Ty2Rz2’Ty3

pulso TyRy’Rz’’Ty1Ty2Rz2’Ty3Ty4Rz4’

mão TyRy’Rz’’Ty1Ty2Rz2’Ty3Ty4Rz4’Ty5

Page 60: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

60

Instituto de Computação - UFF

• Sistemas como o OpenGL utilizam o conceito Sistemas como o OpenGL utilizam o conceito de de matriz correntematriz corrente..

• Desta forma, apenas uma matriz é responsável Desta forma, apenas uma matriz é responsável por realizar as transformações geométricas.por realizar as transformações geométricas.

• Esta matriz é denominada Esta matriz é denominada matriz de matriz de modelagem e visualizaçãomodelagem e visualização ( (model view matrixmodel view matrix).).

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 61: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

61

Instituto de Computação - UFF

• Quando fornecemos uma nova matriz Quando fornecemos uma nova matriz MM, ela é , ela é multiplicada pela esquerda pela matriz corrente multiplicada pela esquerda pela matriz corrente CC. Isto . Isto é é CCnovanova = CM = CM..

• Geometricamente isto significa que Geometricamente isto significa que a transformação a transformação descrita por descrita por M M ocorrerá primeiro que a transformação ocorrerá primeiro que a transformação dada por dada por CC..

• Isto é bastante conveniente para o esquema de Isto é bastante conveniente para o esquema de interpretação do processo de instanciação baseado interpretação do processo de instanciação baseado em em eixos locaiseixos locais..

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 62: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

62

Instituto de Computação - UFF

• Existem situações em que o processo de instanciação Existem situações em que o processo de instanciação não é descrito por uma seqüência de transformações não é descrito por uma seqüência de transformações com estrutura linear.com estrutura linear.

• É comum por exemplo, encontrarmos objetos que são É comum por exemplo, encontrarmos objetos que são descritos por descritos por seqüências de transformação seqüências de transformação estruturadas em forma de árvoreestruturadas em forma de árvore. .

• Nestes casos é definida uma Nestes casos é definida uma hierarquiahierarquia sobre o sobre o conjunto de transformações e partes do objeto que conjunto de transformações e partes do objeto que especificam o modelo.especificam o modelo.

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 63: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

63

Instituto de Computação - UFF

• Nestes casos, ao término do percorrimento de Nestes casos, ao término do percorrimento de um dos ramos, é necessário um dos ramos, é necessário recuperar a recuperar a matrizmatriz do nó do nó quando primeiro chegamos a ele. quando primeiro chegamos a ele.

• Por exemplo, podemos definir os dedos direito Por exemplo, podemos definir os dedos direito e esquerdo da mão de um robô a partir da e esquerdo da mão de um robô a partir da base da mão. base da mão.

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 64: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

64

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

x5

y5

y6

y7

y8 y9

x6

x7

x8x9

a

b

c

d

e ef

a

palma

base dos dedos

dedo direitodedo esquerdo

Page 65: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

65

Instituto de Computação - UFF

• Sistemas como o OpenGL implementam uma Sistemas como o OpenGL implementam uma estrutura de pilha para matrizes de transformaçãoestrutura de pilha para matrizes de transformação..

• Desta forma, é possível percorrer a árvore saltando e Desta forma, é possível percorrer a árvore saltando e recuperando as matrizes dos nós pai através de recuperando as matrizes dos nós pai através de instruçõesinstruções pop pop e e push push..

• Com o mecanismo de pilha, podemos garantir que Com o mecanismo de pilha, podemos garantir que uma função uma função retorna sem alterar o estado corrente das retorna sem alterar o estado corrente das transformaçõestransformações..

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

Page 66: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

66

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGLOpenGL

x5

y5

y6

y7

y8 y9

x6

x7

x8x9

a

b

c

d

e ef

avoid desenhaDedos(float b,float c, float f, float f ) { /* dedo esquerdo */ glPushMatrix(); /* Salva matriz corrente C0 */ glTranslatef((f+e)/2,(b+c)/2,0.); /* C=CTesq */ glScalef(e,c,e); /* C=CS */ glutSolidCube(1.0); glPopMatrix(); /* Recupera da pilha C=C0 */

/* dedo direito */

glPushMatrix(); /* Salva matriz corrente C0 */ glTranslatef((f+e)/2,(b+c)/2,0.); /* C=CTdir */ glScalef(e,c,e); /* C=CS */ glutSolidCube(1.0); glPopMatrix(); /* Recupera da pilha C=C0 */

}

Page 67: Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro anselmo Conteúdo: - Transformações geométricas no espaço.

67

Instituto de Computação - UFF

Transformações geométricas no espaçoTransformações geométricas no espaço: : Transformações em Transformações em OpenGL - exemploOpenGL - exemplo