computação gráfica i - mat.ufc.bresdras/ck090_2007/notasdeaula/capitulo04.pdf · subtração...

223
Computação Gráfica I Computação Gráfica I CRAb – Grupo de Computação Gráfica Departamento de Computação UFC

Upload: phamkhanh

Post on 10-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Computação Gráfica IComputação Gráfica I

CRAb – Grupo de Computação Gráfica

Departamento de ComputaçãoUFC

Page 2: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Objetivos

• Estudar – equipamentos, técnicas de programação e conceitos matemáticos

• Para

2

• Para– representação, manipulação e projeção de objetos bi- e tridimensionais

– aplicar a problemas específicos

Page 3: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Sumário do Curso

• Sistemas Gráficos e Modelos• Programação Gráfica• Input e Interação• Objetos Geométricos e Transformações

3

• Objetos Geométricos e Transformações• Visualização• Pintura• Técnicas Discretas• Implementação de um Renderizador

Page 4: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Objetos Geométricos e TransformaçõesTransformações

Page 5: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.1 A visão geométrica– Ponto

• Não tem tamanho nem forma• Única propriedade é sua localização

– Escalares

5

– Escalares • Tensores de ordem zero (array de um

elemento) • Valor não muda com mudança de sistema

coordenadas• Obedecem conjunto de operações• Ex: massa de uma partícula

Page 6: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.1 A visão geométrica– Vetores

• Tensores de primeira ordem (arrayunidimensional com 31 componentes)

6

• Têm módulo, direção e sentido• Não têm posição fixa no espaço

Page 7: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.1 A visão geométrica– Vetores

BC -BC

7

C=0 Vetor nulo

A

B=-ABC

A

Adição vetorial

-BC

A

Subtração vetorial

Page 8: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.1 A visão geométrica– Adição Ponto-Vetor (Translação do Ponto)

P2

8

P2 =P1 + V

V

P1

Page 9: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.1 A visão geométrica– Subtração Ponto-Ponto

• Determinação do vetor entre os pontos

P2

9

V=P2 - P1

V

P1

Page 10: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.2 Geometria livre de coordenadas

(3, 3)

10

(1, 1) 2

2

Page 11: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.3 Visão matemática: Espaços vetoriais e Espaços afins

– Escalares, Pontos e Vetores são elementos

de conjuntos especiais

11

de conjuntos especiais

• Escalares ∈∈∈∈ Campos Escalares

• Vetores ∈∈∈∈ Espaços Vetoriais

• Pontos + Vetores ∈∈∈∈ Espaços Afins

Page 12: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

– Campo escalar, {S; +, .}• S: conjunto cujos elementos são escalares • Operações binárias: adição(+), multiplicação(.)• Propriedades

∀α∀α∀α∀α,ββββ ∈∈∈∈ S, αααα + ββββ ∈∈∈∈ S e αααα . ββββ ∈∈∈∈ S (Fechamento c.r.a. + e . )

12

αααα + ββββ = ββββ + αααα (Comutativa c.r.a. +)αααα . ββββ = ββββ . αααα (Comutativa c.r.a. . )αααα + (ββββ + γγγγ) = (αααα + ββββ) + γγγγ (Associativa c.r.a. +)αααα . (ββββ . γγγγ) = (αααα . ββββ) . γγγγ (Associativa c.r.a. . )αααα . (ββββ + γγγγ) = (αααα . ββββ) + (αααα . γγγγ) (Distributiva . c.r.a. +)αααα + 0 = 0 + αααα = αααα , ∀α∀α∀α∀α ∈∈∈∈ S (Elemento neutro da +)αααα . 1 = 1 . αααα = αααα , ∀α∀α∀α∀α ∈∈∈∈ S (Elemento neutro da . )αααα + (- αααα) = 0 , ∀α∀α∀α∀α ∈∈∈∈ S (Inverso aditivo)αααα . αααα-1 = 1 , ∀α∀α∀α∀α ∈∈∈∈ S (Inverso multiplicativo)

Page 13: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Espaço Vetorial, X sobre o Campo escalar,S• X conjunto de vetores• {X; +}: Grupo Abeliano

– Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈∈ X Se x + x = x ���� x = 0 (vetor nulo)Se z ∈∈∈∈ X e x + y = x + z ���� y = z

4.1 Escalares, Pontos e Vetores

13

Se z ∈∈∈∈ X e x + y = x + z ���� y = zSe z ∈∈∈∈ X e x + y = z + y ���� x = z∃∃∃∃w ∈∈∈∈ X w + x = y∃∃∃∃z ∈∈∈∈ X x + z = yx + y = y + x

• X é um S-módulo, isto é(αααα + ββββ)x = ααααx + ββββxαααα(x + y) = ααααx + ααααyαααα (ββββx) = (αααα . ββββ)x1x = x

Propriedades de Um grupo

Page 14: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Espaço Euclidiano• Espaço vetorial com uma medida de tamanho ou distânciad(x,y) = Sqrt(x . y)

– Espaço Afim

4.1 Escalares, Pontos e Vetores

14

• Extensão do espaço vetorial, incluindo o objeto Ponto

• Inclui as operações– Adição vetor-ponto– Subtração ponto-ponto

Page 15: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.4 A visão da ciência da computação– Tipos abstratos de dados

• vector u, v;• point p, q;

15

• scalar a, b;

– Linguagens orientadas a objetos (C++)• Classes• Overloading de operadores

– q = p +a*v;

Page 16: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.5 Tipos Abstratos de Dados geométricos– Escalares: conjunto dos números reais

• Operações de adição e multiplicação

16

– Pontos: posições no espaço 3D– Vetores: segmentos de retas, direcionais

v = P - Q

P = v + Qv

Q

P

u

vu+v

Page 17: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.6 Linhas– Lugar geométricos dos pontos gerados

por operações ponto-vetorP(αααα) = P0 + αααα d (Forma paramétrica)

17

αααα 0 ααααP0 é um ponto arbitráriod é um vetor arbitrárioαααα é um escalar

– Se α α α α for > 0 P(αααα) é o raio que emana de P0 na direção d

Page 18: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.7 Somas afinsP = Q + αααα v– Possível encontrar um ponto R tal quev = R – Q– Assim

18

– AssimP = Q + αααα (R – Q)

= αααα R + (1 – α)α)α)α)Q= αααα1111 R + αααα2222Q

αααα1111 + αααα2 2 2 2 = 1

vQ

P(αααα)

Rα = 1α = 1α = 1α = 1

α = 0α = 0α = 0α = 0

Page 19: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.8 Convexidade– Segmento de linha é um objeto convexo– Convex hull (Fecho convexo) dos pontos

Pi, i = 1, 2, …, n

19

Pi, i = 1, 2, …, né o conjunto de pontos P definido pela

soma afim dos n pontosP = αααα1P1 + αααα2P2 + … + ααααnPnαααα1+ αααα2+ … + ααααn = 1ααααi > 0, i = 1, 2, …, n

Page 20: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.9 Produtos escalares e vetoriais

20

Page 21: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Dot product = Scalar product (a.b)

2

332211

For aaaba

ba

=⋅⇒=

++=⋅ bababa

21

• Angle between two nonzero vectorsFor aaaba =⋅⇒=

( )

baba

baba

≤⋅

≤≤=⋅

inequality Schwarz-Cauchy

0 ,cos πθθ

Page 22: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Scalar multiplication satisfies

( ) ( )( ) cabacba

baba

abba

⋅+⋅=+⋅=⋅=⋅

⋅=⋅

Law) ive(Distribut [c3]

scalar)( [c2]

Law) (Symmetric [c1]

kkk

22

( )

0a0aa

a0aa

cabacba

=⇔=⋅∀≥⋅

⋅+⋅=+⋅

(ii)

(i)

tesemidefini positive istion multiplicaScalar [c4]

Law) ive(Distribut [c3]

Page 23: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Scalar projection of a onto b: Pb(a)

( ) ( )θcos)( ab

ba

b

baab =⋅=

⋅=P

23

• Illustration of Pb(a)

bb

Pb(a)

b

a

θ

Page 24: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Vector projection of a onto b: Pb(a)

( ) ( )2

)()(b

bba

b

b

b

bauaaP bbb

⋅=

⋅== P

24

• Illustration of Pb(a)bbb

Pb(a)

b

a

θ

Page 25: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Vectors a and b are orthogonal if

( ) ( ) ( )θθθPP

=⇔==⇒

⇒==

0coscos0cos

0)()(

ba

ba ab

25

( ) ( ) ( )

ππθ

θθθ

k±=⇒

=⇔==⇒

2

0coscos0cos ba

θ

Pb(a)

b

a

Pa(b)

Page 26: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Basis formed by three mutually orthogonal unit vectors, ei (i =1, 2, 3)

if1 jiδ

===⋅ee

26

symbolKronecker thecalled -

if0

if1

ij

ijjiji

ji

δ

δ

≠=

==⋅ee

Page 27: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

Theorem 1.4: Let e1, e2, e3 be an orthonormal basis and let

a = a1e1 + a2e2 + a3e3b = b e + b e + b e . Then

27

b = b1e1 + b2e2 + b3e3. Then

ii

i

ii

ii

a

aaaaa

baaaa

ea

aaa

ba

⋅=

=++=⋅=

=++=⋅

=

=

(iii)

(ii)

bb b (i)

3

1

2

3

2

2

2

1

3

1i

332211

Page 28: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

Let (u1, u2, u3) and (v1, v2, v3) be ordered bases

and let

Then (v1, v2, v3) has the same orientation of (u , u , u ) if

∑=

=3

1i

iijj a uv

28

(u1, u2, u3) if

det(aij) > 0

Right-handed basis and opposite orientation Left-handed basis

Page 29: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Vector product = a x b

22

11

2

33

11

2

33

22

1222

111

eee

e

e

e

baba

ba

ba

ba

ba

ba

ba

ba

ba

+−==×

29

( ) ( ) ( ) 312212311312332

223333

333

eeeba

e

babababababa

babababa

−+−+−=×

Page 30: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Theorem 1.5

( ) ( )( ) handed-right a is ,, then ,0 If b)

and a) )(

),( wheresin )(

bababa

bbaaba

bababa

×≠×⊥×⊥×

∠==×

ii

i θθ

30

• Theorem 1.6

( )t tripletindependenlinearly

handed-right a is ,, then ,0 If b) bababa ×≠×

dependentlinearly are and ifonly and if ba0ba =×

Page 31: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Vector products satisfies[ ] ( )[ ] ( ) ( )[ ] ( ) ( )Law veDistributi

Law ativeAnticommut

2

1

1

cabacba

abba

abba

×+×=+××−=×

×−=×

E

E

E

31

[ ] ( ) ( )[ ] ( ) ( ) ( )[ ]

( ) ( )

:Note

scalar

Law veDistributi

4

3

2

cbacba

0aa

baba

cabacba

××≠××=×

=×=××+×=+×

E

kkkE

E

Page 32: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Triple scalar product: a����bxc

222

111

cba =×⋅ cba

cbaa b

c

32

( ) ( ) ( )[ ]

333

cbacbaabc

abccabbca

bacacbcba

⋅×=×⋅=×⋅−=×⋅−=×⋅−=

=×⋅=×⋅=×⋅

cbac

Page 33: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

• Theorem 1.7: [abc]=0 if and only if a, b, and c are linearly dependent.

• Theorem 1.8:

( ) ( ) ( )⋅−⋅=××

33

( ) ( ) ( )[ ] ( ) ( ) ( )( ) ( )( )[ ] ( ) ( ) [ ] [ ]

F

F

2

1

dabccabddcba

cbdadbcadcba

cbabcacba

−=×××⋅⋅−⋅⋅=×⋅×

⋅−⋅=××

Page 34: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.1 Escalares, Pontos e Vetores

4.1.10 Planos– Extensão das linhas paramétricas– Três pontos não alinhados determinam um plano únicoS(αααα) = (1-α)α)α)α) P0 + ααααQ, 0 ≤≤≤≤ α α α α ≤≤≤≤ 1T(ββββ) = ((((1 −−−− β)β)β)β) S + β β β β R, 0 ≤≤≤≤ β β β β ≤≤≤≤ 1

R

34

T(ββββ) = ((((1 −−−− β)β)β)β) S + β β β β R, 0 ≤≤≤≤ β β β β ≤≤≤≤ 1T(α,ββββ) = ((((1 −−−− β)β)β)β) S + ββββ R= P0+α (α (α (α (1−−−−β)(β)(β)(β)(Q-P0))))+β(β(β(β(R-P0))))T(α,ββββ) = P0 + αααα’u + ββββ’v ∈∈∈∈∆∆∆∆P0QR

– Se P está no plano, entãoP – P0 = αααα’u + ββββ’vn . (P – P0 ) = (u x v) . (P – P0 ) = 0

S(α)P0 Q

T(α, β)

n

Page 35: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.2 Primitivas Tridimensionais

• Assumir– Objetos descritos por suas superfícies– Considerar objetos como ocos – Objetos descritos por um conjunto de

35

– Objetos descritos por um conjunto de vértices

– Superfície pode ser aproximada por polígonos convexos

Page 36: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.0 Frame– É especificado por um ponto (origem) e um

conjunto de vetores LI (base)v2

36

– Todo vetor w e todo ponto P podem ser escritos comow = αααα1v1 + αααα2v2 + αααα3v3P = P0 + ββββ1v1 + ββββ2v2 + ββββ3v3

P0 v1v3

Page 37: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.1 Representações e n-tuplasSuponha que e1, e2, e3 formam uma basev = αααα1e1 + αααα2e2 + αααα3e3v = (αααα1, αααα2, αααα3) (representação 3-tupla)

37

v = (αααα1, αααα2, αααα3) (representação 3-tupla)

Page 38: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.2 Mudanças de sistemas de coordenadasu1 = γγγγ11111111v1 + γγγγ12121212v2 + γγγγ13131313v3u2 = γγγγ21212121v1 + γγγγ22222222v2 + γγγγ23232323v3

38

u2 = γγγγ21212121v1 + γγγγ22222222v2 + γγγγ23232323v3u3 = γγγγ31313131v1 + γγγγ32323232v2 + γγγγ33333333v3

u1 γγγγ11111111 γγγγ12121212 γγγγ13131313 v1 v1u2 = γγγγ21212121 γγγγ22222222 γγγγ23232323 v2 = M v2u3 γγγγ31313131 γγγγ32323232 γγγγ33333333 v3 v3

Page 39: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.2 Mudanças de sistemas de coordenadasw = αααα1111v1 + αααα2222v2 + αααα3333v3w = ββββ1111u1 + ββββ2222u2 + ββββ3333u3

v1 v1 a =MT b

39

v1 v1w = αααα1111 αααα2222 αααα3333 v2 = aT v2

v3 v3u1 u1 v1

w = ββββ1111 ββββ2222 ββββ3333 u2 = bT u2 = bTM v2u3 u3 v3

a =MT b

Page 40: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.3 Exemplo de mudança de representação v2

u1u2

θ2

1

2

1

100

0cossin

0sincos

v

v

v

u

u

u

−=

θθθθ

40

v1

v3

θ

( ) ( ) 321

3

2

1

3

2

1

321

33

4sincos2sin2cos

100

0cossin

0sincos

421

421421

100

uuuw

u

u

u

w

v

v

v

vvvw

vu

+−++=

−=

=++=

θθθθ

θθθθ

Page 41: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.4 Coordenadas homogêneas– Ponto

+++=

1

3210

v

vvvPP zyx

41

– Vetor

[ ]

=

0

3

2 1

P

v

vP zyx

[ ]

=

0

3

2

1

321 0

P

v

v

v

w δδδ

Page 42: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.5 Exemplo de mudança de frames

v2

u2 = v1 + v2

u3=v1 + v2 + v3A

42

v1

v3

u3=v1 + v2 + v3

u1 = v1Q0

P0A = P0 + 1 v1 + 1 v2 + 0 v3

A = Q0 + αααα u1 + ββββ u2 + γγγγ u3

Q0 = P0 + 1 v1 + 1 v2 + 0.5 v3

Page 43: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

=

11

3

2

1

3

2

1

0011

0001

111

011

001

v

v

v

v

v

v

v

u

u

u

43

=

+

=

0

3

2

1

0

3

2

0

3

2

1011

1000

0111

0011015.011

P

v

v

v

A

P

v

v

P

v

vA γβα

Page 44: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

+

=

10.0011110010011

01000

0100

0110

0111

1

5.0

1

1

1

0

1

1

α

γβα

44

−=

−−−

=

−−

−=

0

5.0

5.0

0

0

1

0

1

0000

5.0100

5.0110

1

0

1

0000

5.0100

1010

1000

0100

0110

0

γβα

γβ

Page 45: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.6 Trabalhando com representações– Considere a mudança de representação

do frame {i, j, k, P0} para o frame {u, v, w, Q0} através da transformação{a} = [C] {b}

45

{a} = [C] {b}• {b}: representação no frame {i, j, k, P0} • {a}: representação no frame {u, v, w, Q0}

– Considere a mudança inversa{b} = [D] {a} =>[D] = [C]-1

Page 46: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

– Assim

[ ] [ ]

[ ] [ ]

==

==

==

0100

0010

0001

00

00

0

1

0

00

0

0

1

j

i

j

i

j

i

j

ik

j

i

k

j

i

q

q

q

w

w

w

v

v

v

u

u

u

qw

v

v

v

u

u

u

DD

vDuD

46

[ ] [ ]

[ ] [ ]

==

==

10001000

0100

11

0

0

0

00

1

0

0

0

kkkk

k

j

i

k

j

i qwvu

q

q

q

w

w

w

QDwD

[ ] [ ]

1

1

1000

==k

j

i

k

j

i

k

j

i

k

j

i

q

q

q

w

w

w

v

v

v

u

u

u

DC

Page 47: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

– Aplicando ao exemplo anterior

[ ] [ ]

−−−

=

==

5.0100

5.0110

0011

5.0

1

1

1

1

1

0

1

1

0

0

11

1DC

47

1000

5.0100

1

5.0

0

1

0

0

0

0

Page 48: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.7 Frames e tipos abstratos de dadospoint3 p, q;vector3 v;frame f;

48

frame f;v = point_sub(p, q, f);

Page 49: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.3 Sistemas de Coordenadas e Frames

4.3.8 Frames no OpenGL– Frame do Cenário (World Frame)– Frame da Câmera (Camera Frame)

• Default: coincide com o frame do cenáriox

49

• Default: coincide com o frame do cenário

-zc

xc=xw

yc=ywzc=zw

w

xw

yw

zw

c

zc

xc

ycCâmera

Page 50: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4.4.1 Modelagem de um cubo– 8 vértices:

• GLfloat vertices[8][3]; ou• point3 vertices[8];

50

– 6 faces:• glBegin(GL_POLYGON);

4

7

65

3

21

Page 51: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4.4.2 Faces voltadas para dentro e para fora– Obedecer regra da mão-direita

51

4

7

65

3

21

Page 52: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4.4.3 Estruturas de dados para representação de objetos– Cubo é um poliedro composto de

• 6 faces, cada uma das quais composta de

52

– 4 arestas, cada uma das quais ligadas a » 2 vértices

Page 53: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4 3E4

E3E2

Cubo F1

F2

E11 E2 E10 E6

E4 E1 E2 E3

FACES

53

8 7

65

21

E6

E5

E4 E2E1

E12 E11

E10E9

E8E7

F2

F3

F4

F5

F6

E4 E1 E2 E3

E10 E1 E9 E5

E9 E4 E12 E8

E6 E5 E8 E7

E12 E3 E11 E7

OBS: Pode-se definir uma face como uma seqüência de vértices. F1: 7 3 2 6

Page 54: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4 3E3

E1

E2

E3

E4

E5

V1 V2

V3 V2

V4 V3

V4 V1

V5 V6

V1

V2

V3

V4

V5

-1

1

1

-1

-1

1

1

1

1

-1

1

1

-1

-1

1

ARESTAS VÉRTICES

54

8

4

7

65

3

21

E6

E5

E4 E2E1

E12 E11

E10E9

E8E7

E5

E6

E7

E8

E9

E10

E11

E12

V5 V6

V7 V6

V8 V7

V8 V5

V5 V1

V6 V2

V7 V3

V8 V4

V5

V6

V7

V8

-1

1

1

-1

-1

-1

-1

-1

1

1

-1

-1

Page 55: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4.4.4 O cubo de corestypedef GLfloat point3[3];point3 vertices[8] = { {-1.0, 1.0, 1.0}, { 1.0, 1.0, 1.0},

{ 1.0, 1.0,-1.0}, {-1.0, 1.0,-1.0},{-1.0,-1.0, 1.0}, { 1.0,-1.0, 1.0},

55

{-1.0,-1.0, 1.0}, { 1.0,-1.0, 1.0},{ 1.0,-1.0,-1.0}, {-1.0,-1.0,-1.0}};

GLfloat colors[8][3] = {{0.0, 0.0, 0.0}, {1.0, 0.0, 0.0},{1.0, 1.0, 0.0}, {0.0, 1.0, 0.0},{0.0, 0.0, 1.0}, {1.0, 0.0, 1.0},{ 1.0, 1.0, 1.0}, {0.0, 1.0, 1.0}};

Page 56: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

void quad(int a, int b, int c, int d){

glBegin(GL_QUADS);glColor3fv(colors[a]);glVertex3fv(vertices[a];glColor3fv(colors[b]);

56

glColor3fv(colors[b]);glVertex3fv(vertices[b];glColor3fv(colors[c]);glVertex3fv(vertices[c];glColor3fv(colors[d]);glVertex3fv(vertices[d];

glEnd();}

Page 57: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

void colorcube(void){

quad(6, 2, 1, 5);quad(3, 0, 1, 2);quad(5, 1, 0, 4);quad(4, 0, 3, 7);

57

quad(4, 0, 3, 7);quad(6, 5, 4, 7);quad(7, 3, 2, 6);

}

Código Fonte

Código Exec

Page 58: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4.4.5 Interpolação bilinearc1

c2c4

c45C01(α)=(1-α)C0 + αC1

58

c0

c3

c45

c5

C23(α)=(1-α)C2 + αC3

C45(β)=(1-β)C4 + βC5

Page 59: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

4.4.6 Arrays de vértices– Encapsula informação da estrutura de

dados– Permite traçar poliedros com poucas

59

– Permite traçar poliedros com poucas chamadas de funções

– Tipos de arrays permitidos no OpenGL

• vertex • normal

• color • texture coordinate

• color index • edge flag

Page 60: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

– Habilitação dos arrays• glEnableClientState(GL_COLOR_ARRAY);• glEnableClientState(GL_VERTEX_ARRAY);

– Os arrays do cubo já foram definidos • vertices

60

• Colors

– Estabelecer ponteiros para os arrays• glVertexPointer(3, GL_FLOAT, 0, vertices);

– 3: número de coordenadas por vértice– GL_FLOAT: tipo de cada elemento no array– 0: offset em bytes entre vértices consecutivos– vertices: ponteiro para o array de vértices

Page 61: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

• glColorPointer(3, GL_FLOAT, 0, colors);– 3: número de coordenadas por vértice– GL_FLOAT: tipo de cada elemento no array– 0: offset em bytes entre vértices consecutivos– colors: ponteiro para o array de cores

– Fornecer informação da estrutura de dados

61

– Fornecer informação da estrutura de dados• GLubyte cubeIndices[24] = {6, 2, 1, 5,

3, 0, 1, 2,5, 1, 0, 4,4, 0, 3, 7,6, 5, 4, 7,7, 3, 2, 6};

Page 62: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.4 Modelando um Cubo Colorido

– Desenhar o arraysfor (i=0; i < 6; i++)

glDrawElements(GL_POLYGON, 4, GL_UNSIGNED_BYTE, &cubeIndices[4*i]);

Ou

62

OuglDrawElements(GL_QUADS, 24,

GL_UNSIGNED_BYTE, cubeIndices);

Page 63: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.5 Transformações Afins (A17)

• Transformação de um ponto P em QQ = T(P)

• Transformação de um vetor u em vv = R(u)

63

v = R(u)

• Em coordenadas homogêneas, vetores e pontos são representados como matrizes colunas 4DQ = f(P) e v = f(u) (mesma transformação)

Page 64: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.5 Transformações Afins (A17)

• Restringir f a uma função linearf(ααααp + ββββq) = ααααf(p) + ββββf(q)– Importância

• Conhecendo a transformação de vértices

64

• Conhecendo a transformação de vértices• Obtém-se a transformação de combinações lineares de vértices através de combinações lineares de transformações de vértices

– f pode ser representada por uma matriz 4x4, [A]

Page 65: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.5 Transformações Afins (A17)

–Matriz de Transformação não-singular• Mudança de frame• Mudança do vértice dentro do mesmo frame

–Matriz Vetor Ponto

pvaaaa

65

=

=

=

1

0

1000

3

2

1

3

2

1

34333231

24232221

14131211

p

p

p

v

v

v

aaaa

aaaa

aaaa

PvA

Page 66: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.5 Transformações Afins (A17)

– Transformação de vetores• Envolve apenas nove coeficientes da matriz• 9 graus de liberdade

– Transformação de pontos• Envolve 12 coeficientes da matriz

66

• Envolve 12 coeficientes da matriz• 12 graus de liberdade

– Transformações afins preservam linhas• Linha original: P(αααα) = P0 + α d• Transformação:A P(α) = A(P0 + α d)= AP0 + α Ad • Linha final: P’(αααα) = P’0 + α d’

Page 67: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala (A17)

4.6.1 Translação– Operação ponto-vetor

P’ = P + tx’ = x + tx

67

x’ = x + txy’ = y + tyz’ = z + tz P

P’t

Page 68: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

y

4.6 Translação, Rotação e Escala

• Translação– Somar o vetor de translação t = (tx, ty, tz)aos vértices para reposicionar objetos

68

P’ = P + t

x’ = x + tx

y’ = y + ty

z’ = z + tz

x

y

t = ( tx, ty, tz)

P = (x, y, z)

P’=(x’, y’,z’)

Page 69: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

4.6.2 Rotaçãovértice P em coordenadas polares (r, αααα) irá para posição P’ = (r, α+α+α+α+θθθθ)θθθθ > 0 : rotação em sentido anti-horário

69

θθθθ > 0 : rotação em sentido anti-horárioθθθθ < 0 : rotação em sentido horário

ei

P = ( r, α )

P’ = ( r, α + θ ) ej

α

θr

r

Page 70: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação em torno do eixo x– Coordenadas na forma polar:y’ = r cos ( α + θα + θα + θα + θ ) y = r cos ααααz’ = r sen ( α + θα + θα + θα + θ ) z = r sen αααα

– Mas: x y

zθθθθx

70

– Mas:cos ( α + θα + θα + θα + θ ) = cos αααα . cos θθθθ - sen αααα . sen θθθθsen ( α + θα + θα + θα + θ ) = sen αααα . cos θθθθ + sen θθθθ . cos αααα

– Assim:y’ = r cos αααα . cos θθθθ - r sen αααα . sen θθθθz’ = r sen αααα . cos θθθθ + r cos αααα . sen θθθθy’ = y . cos θθθθ - z . sen θθθθz’ = z . cos θθθθ + y . sen θθθθ

Page 71: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

Rotação em torno do eixo x

−=

y

x

seny

x

xx θθcos0

001

'

'

71

−=

z

y

sen

sen

z

y

xx

xx

θθθθ

cos0

cos0

'

'

Page 72: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação em torno do eixo y– Coordenadas na forma polar:z’ = r cos ( α + θα + θα + θα + θ ) z = r cos ααααx’ = r sen ( α + θα + θα + θα + θ ) x = r sen αααα

– Mas: y z

xθθθθy

72

– Mas:cos ( α + θα + θα + θα + θ ) = cos αααα . cos θθθθ - sen αααα . sen θθθθsen ( α + θα + θα + θα + θ ) = sen αααα . cos θθθθ + sen θθθθ . cos αααα

– Assim:z’ = r cos αααα . cos θθθθ - r sen αααα . sen θθθθx’ = r sen αααα . cos θθθθ + r cos αααα . sen θθθθz’ = z . cos θθθθ - x . sen θθθθx’ = x . cos θθθθ + z . sen θθθθ

Page 73: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

Rotação em torno do eixo y

=

y

xsen

y

x yy θθ010

0cos

'

'

73

−=

z

y

senz

y

yy θθ cos0

010

'

'

Page 74: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação em torno do eixo z– Coordenadas na forma polar:x’ = r cos ( α + θα + θα + θα + θ ) x = r cos ααααy’ = r sen ( α + θα + θα + θα + θ ) y = r sen αααα

– Mas: z x

yθθθθz

74

– Mas:cos ( α + θα + θα + θα + θ ) = cos αααα . cos θθθθ - sen αααα . sen θθθθsen ( α + θα + θα + θα + θ ) = sen αααα . cos θθθθ + sen θθθθ . cos αααα

– Assim:x’ = r cos αααα . cos θθθθ - r sen αααα . sen θθθθy’ = r sen αααα . cos θθθθ + r cos αααα . sen θθθθx’ = x . cos θθθθ - y . sen θθθθy’ = y . cos θθθθ + x . sen θθθθ

Page 75: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

Rotação em torno do eixo z

=

y

x

sen

sen

y

x

zz

zz

0cos

0cos

'

'

θθθθ

75

=

z

ysen

z

y zz

100

0cos

'

' θθ

Page 76: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação em torno de um eixo // z passando pelo pivô, (xR, yR) vértice (x, y) irá para posição (x’, y’)

76x

y

(xR, yR)

P = ( r, α )

P’ = ( r, α + θ )

α

θr

r

Page 77: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação em torno do eixo //z pelo pivô, (xR,yR, zR) Equivale a – Translação para a origem ( 0, 0, 0 )

77

– Translação para a origem ( 0, 0, 0 )– Rotação em relação ao eixo z– Translação de volta para (xR,yR, zR)

Page 78: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação em torno de eixo // z pelo pivô (xR, yR)x’ = (x - xR) . cos θθθθ - (y - yR) . sen θθθθ + xRy’ = (y - yR) . cos θθθθ + (x - xR) . sen θθθθ + yR

78

y’ = (y - yR) . cos θθθθ + (x - xR) . sen θθθθ + yR

+

−−

−=

R

R

R

R

y

x

yy

xx

sen

sen

y

x

θθθθ

cos

cos

'

'

Page 79: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação para objetos definidos com curvas – transformações geométricas aplicadas a coordenadas de definição

– implementações adaptadas à geometria do

79

– implementações adaptadas à geometria do objeto

• Exemplos – Círculos

• rotação ou translação: usar coordenadas do centro, e

• escala: amplificar os raios

Page 80: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Rotação para objetos definidos com curvas– Segmentos de curvas – transformação: usar coordenadas de

80

P1

P2

P3P4

– transformação: usar coordenadas de definição da curva (Pontos de controle)

Page 81: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

4.6.3 Escala– É uma transformação afim que altera a forma do objeto (non-rigid-body)

–Multiplicar os valores das coordenadas por

81

–Multiplicar os valores das coordenadas por fatores de escala sx, sy, sz

– Transformação básica de escala– (x’, y’, z’) = (x.sx, y.sy, z.sz ), sx, sy, sz > 0–Mudança uniforme de Escala quando sx = sy = sz

Page 82: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Efeito da transformação de escala–mudança do tamanho do objeto – deslocamento do objeto– distorção se sx != sy

82

x

y

– distorção se sx != sy

Page 83: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Escala relativa a um ponto fixo, PfPf = ( xf, yf ) – se ( xf, yf ) for centróide →→→→ objeto não move

83

move– senão →→→→ deslocamento em relação a Pf

x

y

centróide

Page 84: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Coordenadas do centróide

∫=== V

cV

cV

cdV

zdV

zdV

ydA

ydV

xdV

x e ,

84

∫∫∫VVV

dVdVdV

+

+=

+

++=

HBHB

HBH

HBH

y

HBHB

HBB

BHBB

x

c

c

21

21

21

22

111

2

1)(

2

1

3)(

2

2

1)(

2

1

3)(

2

B1 B2

H

H/3 H/2

B1/2 B2/3

Page 85: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.6 Translação, Rotação e Escala

• Escala relativa a um ponto fixo, Pfx’ = ( x −−−− xf ) . sx + xfy’ = ( y −−−− yf ) . sy + yfz’ = ( z −−−− zf ) . sz + zf

85

z’ = ( z −−−− zf ) . sz + zf– Translação para a origem ( 0, 0, 0 )– Escala em relação à origem– Translação de volta para ( xf, yf )

(xf, yf) (xf, yf)

Page 86: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

• Usando-se coordenadas homogêneas, as transformações geométricas são escritas como

+++=

' xx

86

+++

+++

+++

===

=

34

24

14

33

23

13

32

22

12

31

21

11

'

'

'

11

'

'

'

m

m

m

zm

zm

zm

ym

ym

ym

xm

xm

xm

z

y

x

z

y

x

z

y

x

M

Page 87: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

4.7.1 Translação–Matriz de Translação

010

001

yt

xt

87

– Forma inversa ( T-1) com -tx, -ty, -tz.

=

1000

100

010

zt

ytT

Page 88: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

4.7.2 Escala–Matriz de Escala em relação a um ponto fixo, F ( )

( )

−−

=100

100

Fyy

Fxx

ySS

xSS

88

– A escala é uniforme quando Sx = Sy = Sz

– Forma inversa S-1 com

( )( )

−−

=

1000

100

100

Fzz

Fyy

zSS

ySSS

z

z

y

y

x

xS

SS

SS

S1

',1

',1

' →→→

Page 89: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

4.7.3 Rotação– Em 3D, as rotações podem ser sobre qualquer reta

– As rotações mais simples são sobre os eixos de coordenadas

89

eixos de coordenadas– Outras rotações são equivalentes a combinações das rotações dos 3 eixos-coordenados (mais T e T’).

– Para todas as rotações 3D sobre eixos de coordenadas• θ θ θ θ > 0: rotação anti-horária (a partir da origem) na regra da mão-direita

Page 90: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

– Rotação em relação ao eixo-x

−=

0cos0

0cos0

0001

xx

xx

xsen

sen

θθθθ

Rx

y

θx

90

– Rotações sobre os outros dois eixos são obtidas com permutação cíclicax →→→→ y →→→→ z →→→→ x

1000

0cos0 xxsen θθ

z

x

Page 91: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

– Rotação em relação ao eixo-y

−=

0cos0

0010

00cos

yy

yy

ysen

sen

θθ

θθ

R

x

y

θy

91

−1000

0cos0 yysen θθ

z

x

Page 92: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

– Rotação em relação ao eixo-z

=0100

00cos

00cos

zz

zz

z

sen

sen

θθθθ

R

x

y

92

1000

0100

z

xθz

Page 93: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

– Obtém-se a inversa de Rx, Ry ou Rz comθθθθ →→→→ - θθθθcomo • cos(-θθθθ) = cos(θθθθ)

93

• sen(-θθθθ) = - sen(θθθθ),

R-1 = RT

– R são matrizes ortonormais

Page 94: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

– Outras rotações são obtidas por composição de matrizes de transformação• Transformação do eixo de rotação em um eixo de coordenada

• Rotação especificada em torno do eixo

94

• Rotação especificada em torno do eixo transformado

• Transformação do eixo de rotação de volta para a posição e orientação originais

Page 95: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7.4 Cisalhamento (Shear)– Cisalhamento no plano xy na direção xx’ = x+∆∆∆∆x = x + tg(γγγγ)y = x + shxyy’ = y

4.7 Transformações em Coordenadas Homogêneas (A17)

95

y’ = yz’ = z y

x

yp

xp

P

y

x

yp’

P’

xp ∆∆∆∆x

∆∆∆∆x

Page 96: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano xy na direção x

4.7 Transformações em Coordenadas Homogêneas (A17)

=0100

0010

00sh1 x

x

xyS

96

1000

0100xy

Page 97: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano xy na direção yx’ = xy’ = y+∆∆∆∆y = y + tg(γγγγ)x = y + shyxz’ = z

4.7 Transformações em Coordenadas Homogêneas (A17)

y y

97

z’ = zy

xxp

yp

P

x

y

xp’

P’

yp

∆∆∆∆y

∆∆∆∆y

Page 98: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano xy na direção y

4.7 Transformações em Coordenadas Homogêneas (A17)

=0100

001sh

0001

yy

xyS

98

1000

0100xy

Page 99: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano xz na direção x

4.7 Transformações em Coordenadas Homogêneas (A17)

=0100

0010

0sh01 x

x

xzS

99

1000

0100xz

Page 100: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano xz na direção z

4.7 Transformações em Coordenadas Homogêneas (A17)

=010sh

0010

0001

z

xzS

100

1000

010sh zxz

Page 101: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano yz na direção y

4.7 Transformações em Coordenadas Homogêneas (A17)

=0100

0sh10

0001

yy

yzS

101

1000

0100yz

Page 102: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– Cisalhamento no plano yz na direção z

4.7 Transformações em Coordenadas Homogêneas (A17)

=01sh0

0010

0001

z

yzS

102

1000

01sh0 zyz

Page 103: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

4.7.5 Outras Transformações– Reflexão: imagem de objeto em relação a um plano

– Espelho xz: y →→→→ - y

001

103

→→→→• Equivale a sx = sz = 1, sy = -1

– Espelho yz: x →→→→ - x• Equivale a sx = -1, sy = sy = 1

−=100

010S

−=

100

010

001

S

Page 104: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

– Espelho xy: z →→→→ - z• Equivale a sx = sy = 1, sz = -1

– Espelho cuja normal é n = (nx, ny, nz):

−=

100

010

001

S

104

– Espelho cuja normal é n = (nx, ny, nz):

( )( )

( )( )

−−−−−−−−−

=

−=−=′

332313

322212

312111

2122

2212

2221

2)(2

nnnnnn

nnnnnn

nnnnnn

S

PnnnnPPP

n

kkiikikkii δ

P

P’ n

x

y

Page 105: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

–Reflexão relativa à origem: x →→→→ - x e y →→→→ - y• Equivale a sx = -1, sy = -1

105

Page 106: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

Transformações entre sistemas de coordenadas

• Usado em– Transformações de Visualização

106

– Transformações de Visualização– Transformações de Modelagem

• Transformação entre sitemas paralelos com origens distintas

• Transformações entre sistemas centrados na mesma origem com orientações distintas

Page 107: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

• Transformação entre sistemas paralelos com origens distintas– Aplicar translação To’o aos pontos da cena

+′=′ OO PP

107

x’

x

O’

O

y’y

P’P

′−

′−

′−

=′

+′=′

1

P

P

P

1000

O100

O010

O001

OO

z

y

x

z

y

x

P

PP

Page 108: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

• Transformações entre sistemas centrados na mesma origem com orientações distintas– Construir matriz de transformação cujas linhas são vetores unitários nas direções de x’ y’ e z’ representados por suas componentes no sistema x y z

108

x y z

=′

=′

=′

=′

′′′

′′′

′′′

1

P

P

P

1000

0

0

0

z

y

x

zzz

yyy

xxx

z

z

z

y

y

y

x

x

x

nml

nml

nml

n

m

l

n

m

l

n

m

l

P

kji

x’

x

y’y P

z

z’

Page 109: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.7 Transformações em Coordenadas Homogêneas (A17)

• Assim

=

=

′′′

′′′

′′′

′′′

′′′

′′′

0

0

0

0

1

0

0

0

0

0

0

1

y

y

y

zzz

yyy

xxx

x

x

x

zzz

yyy

xxx

n

m

l

nml

nml

nml

n

m

l

nml

nml

nml

x’

x

y’y P

zz’

109

=

′′′

′′′

′′′

′′′′′′′′

11000

0

0

0

1

1

0

0

11000

0

1

0

11000

0

1

0

z

z

z

zzz

yyy

xxx

yzzzxzzz

n

m

l

nml

nml

nml

nnmlnnml

Como T é ortonormal

T-1=TT

P’=T.P e P =TT.P’

Page 110: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

4.8.1 Rotação em torno de um ponto fixo– Utilizar concatenação de 3 operações

• Translação do ponto fixo para a origem– T(-PF)

• Rotação em torno do eixo passando pela

110

• Rotação em torno do eixo passando pela origem– R(θθθθ)

• Translação de volta para a posição do ponto fixo– T(PF)

• P’ = [T(PF) R(θθθθ) T(-PF)] P

Page 111: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

4.8.2 Rotação geral– É possível expressar como concatenação

de rotações em torno de z, y e x• R = RxRyRz

111

Page 112: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

4.8.3 Transformação de instância– Usar um objeto protótipo – Gerar instância desse objeto – Aplicar transformações para a forma

112

– Aplicar transformações para a forma desejada

Page 113: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

4.8.4 Rotação sobre um eixo arbitrário• Definir o eixo de rotação

– dois pontos sobre a reta ou– um ponto e um vetor-direção

• O segmento P1P2

y

zx

p1

p2θ

113

• O segmento P1P2(“segmento de reta orientado”) define um vetor V = (x2-x1, y2-y1, z2-z1)

• Determinar uma forma de rotação geral de matriz usando operações com vetores

z

Page 114: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– Rotação sobre um eixo arbitrário

1. Translação do eixo de rotação para a origem

2. Rotações para alinhar o eixo de rotação com o

eixo z (ou outro eixo)

114

eixo z (ou outro eixo)

3. Rotação sobre o eixo z

4. Inversão das rotações no passo 2

5. Inversão da translação do passo 1

Page 115: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– Rotação sobre um eixo arbitrário

y(2)

y(1)

yInício

p2

115

y

z x

z x

y

z x

(5)

z x

(4)y

z x

(3)

θ

z xp1

Page 116: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– Rotação sobre um eixo arbitrário• Coordenadas de p1 e p2 determinam o vetor unitário û ao longo do eixo de rotação

)12,12,12(V zzyyxx −−−=yp2

116

||12,

||12,

||12

),,(||

121212

VVV

V

Vu

zzc

yyb

xxa

cba

−=

−=

−=

==

z x

p1

p2

Page 117: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– Rotação sobre um eixo arbitrárioPasso 1: Translação de p1 para a origem

−0011

x

y

p

117

=

1

100

010

001

0001

1

1

z

y

x

Tz xp1

p2

Page 118: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

Passo 2.1: Posicionamento do eixo de rotação no plano xz• determinar ângulo θθθθx entre û’ e k• girar de um ângulo θθθθx sobre o eixo x

y

118

(0, b, c) =

( )22 cb,0,a +=′′û

û =(a, b, c)û’

x

y

z

θθθθx

Page 119: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– determinar ângulo θθθθx entre û’ e k• Encontre o cos θθθθx

22

1|'ˆ|'ˆ

coscos|||ˆ|'ˆdc

xx' =⋅=⇒=⋅u

kukuku θθ

119

• Encontre o sen θθθθx

22|'ˆ| onde cbd +== u

d

b

d

cd

d

cxsen =−=−=

2

2221θ

Page 120: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– girar de um ângulo θθθθx sobre o eixo x

−=

01

0001

)(dbdc

xx θR

120

=

1000

00

)(dcdb

xx θR

Page 121: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

Passo 2.2: Alinhamento do eixo de rotação com o eixo z• determinar ângulo θθθθy entre û” e k• girar û” de um ângulo -θθθθy sobre o eixo y

y

121

( )22 cb,0,a +=′′û

û =(a, b, c)

x

y

z θθθθy

Page 122: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

– determinar ângulo θθθθy entre û” e k• Encontre o cos θθθθy

da

dy

+=⋅=θ

22|||''ˆ|''ˆ

coskuku

4.8 Concatenação de Transformações (A18)

122

• Encontre o sen θθθθy

dycbada =⇒=++=+ θcos122222 mas

ay

senaysen −=−⇒=

θθ

Page 123: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– girar de um ângulo – θθθθy sobre o eixo x

=− 0010

00

)(

ad

yy θR

123

=−

1000

00)(

dayy θR

Page 124: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

Passo 3: Rotação de θθθθ sobre o eixo z

=00cossen

00sencos

)(θθθθ

θR

124

=

1000

0100

00cossen)(

θθθzR

Page 125: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– Passo 4: Inverso do passo 2.2, Ry(θθθθy)– Passo 5: Inverso do passo 2.1, Rx(-θθθθx)– Passo 6: Inverso do passo 1, T(P1)– Assim a Rotação em torno do eixo P1P2

125

– Assim a Rotação em torno do eixo P1P2( ) ( ) ( ) ( ) ( ) ( ) ( )11 PTRRRRRPTM −−−= xxyyzyyxx θθθθθ

=

1000

0333231

0232221

0131211

rrr

rrr

rrr

M

Page 126: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.8 Concatenação de Transformações (A18)

– Rotação sobre um eixo arbitrárioManeira alternativa• Construir uma base ortogonal i’ j’ k’ tal que k’ seja o vetor unitário na direção P1P2

• Transformar os pontos da cena para esse

126

• Transformar os pontos da cena para esse sistema de coordenadas

• Girar em torno de z’• Transformar os ponto para o sistema original

y

z x

p1

p2

Page 127: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

4.9.1 A Matriz de transformação corrente– Aplicada aos vértices subseqüentes à sua

montagem– É uma matriz 4 x 4– Inicializada como a matriz identidade

127

– Inicializada como a matriz identidade– Modificada por pós-multiplicação de

matrizes • C ←←←← CT (Translação)• C ←←←← CS (Escala)• C ←←←← CR (Rotação)

Page 128: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

– Definida diretamente com o comando glLoadMatrix{fd}(M); • C ←←←← M• M é um array com 16 elementos de tipo float

ou double que compõem 4 a 4 as colunas de C

128

ou double que compõem 4 a 4 as colunas de C

=

161284

151173

141062

13951

mmmm

mmmm

mmmm

mmmm

M

Page 129: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

– Modificada com o comando glMultMatrix{fd}(M); • C ←←←← CM• M é um array com 16 elementos de tipo float

ou double que compõem 4 a 4 as colunas da

129

ou double que compõem 4 a 4 as colunas da matriz

=

161284

151173

141062

13951

mmmm

mmmm

mmmm

mmmm

M

Page 130: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

– Os vértices são transformados pela matriz corrente resultante de dois modos• GL_PROJECTION (modo de projeção)• GL_MODELVIEW (modo de modelagem e

visualização)

130

visualização)• glMatrixMode(modo): Seleciona um dos dois

modos

• C ←←←← CProjectionCModel_View

vértices CModel_View CProjection vértices

Page 131: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

4.9.2 Rotação, translação e escala– glRotatef(ângulo, vx, vy, vz);

• Ângulo em graus• (vx, vy, vz) vetor na direção da rotação

131

– glTranslatef(dx, dy, dz);• (dx, dy, dz) vetor de deslocamento

– glScalef(sx, sy, sz);• sx, sy, sz: fatores de escala

Page 132: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

4.9.3 Rotação em torno de um ponto fixo– Composição de transformações

glMatrixMode(GL_MODELVIEW);glLoadIdentity();

y QQ

2

132

glTranslatef(Px, Py, Pz);glRotatef(ângulo, vx, vy, vz);glTranslate(-Px, -Py, -Pz);

– v’ = T(Px, Py, Pz) R(αααα, vx, vy, vz) T(-Px, -Py, -Pz) v

zx

PP 1

3

Page 133: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

4.9.4 Ordem de transformações– Duas maneiras de ver a ordem de

transformações• C ←←←← CMn

• C ←←←← CM…

M2

M1

Desempilhar

133

• C ←←←← CMn-1

• …• C ←←←← CM2

• C ←←←← CM1

Mn

Mn-1

v’ = MnMn-1…M2M1 v444 3444 21

C

Desempilhar

Pilha

Page 134: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

4.9.5 Rotação de um cubo sem translação– Funções Callback

• glutDisplayFunc(display)

134

• glutIdleFunc(spincube)• glutMouseFunc(mouse)• glutKeybordFunc(keyboard)

Page 135: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

– Função display• Aplica as matrizes de rotação em torno dos

eixos x y e z

– Função spincube• Incrementa o ângulo de rotação em torno do

135

• Incrementa o ângulo de rotação em torno do eixo selecionado e chama display

– Função mouse• Seleciona o eixo de rotação

– Função keyboard• Encerra o programa pressionando ‘q’ ou ‘Q’Código Fonte Código Exec

Page 136: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.9 Matrizes de Transformação no OpenGL (A19)

4.9.6 Loading, pushing, e popping de matrizes– Loading matix M como matriz corrente

• glLoadMatrixf(M);

136

– Salvando a matriz corrente na pilha• glPushMatrix()

– Retirando a matriz da pilha e tornando-a corrente• glPopMatrix()

Page 137: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

4.10.1 Usando áreas do screen– Motion callback retorna: botão ativado e

posição do mouse– Botão esquerdo pressionado

• Mouse no centro: nenhuma rotação

137

• Mouse no centro: nenhuma rotação• Mouse movendo para cima: rotação y+• Mouse movendo para baixo: rotação y-• Mouse movendo para direita: rotação x+• Mouse movendo para esquerda: rotação x-• Mouse movendo para os cantos: rotação

combinada x y

Page 138: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

– Botão direito pressionado• Mouse no centro: nenhuma translação• Mouse movendo para cima: translação y+• Mouse movendo para baixo: translação y-• Mouse movendo para direita: translação x+

138

• Mouse movendo para direita: translação x+• Mouse movendo para esquerda: translação x-• Mouse movendo para os cantos: translação

combinada x y– Botão do meio pressionado

• Mouse movendo para direita: translação z+• Mouse movendo para esquerda: translação z-

Page 139: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

– Velocidade do movimento• Quanto mais longe do centro mais rápido o

movimento

Código Fonte

139

Código Fonte

Código Exec

Page 140: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

4.10.2 Uma Trackball virtual– Dada uma posição (x, z) no plano

• Calcule o ponto no hemisfério

y221 zxy −−=

140

x

y

z

(x, y, z)

(x, 0, z)

221 zxy −−=

Page 141: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

4.10.2 Uma Trackball virtual– Primeiro clique no botão do mouse

• Define ponto P1 no hemisfério

– Mouse move, liberar botão y

141

– Mouse move, liberar botão• Define ponto P2 no hemisfério

– Calcula vetor normal • n = P1 x P2

x

y

z

P1

(x, 0, z)

P2

nCódigo Fonte

Código Exec

Page 142: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

4.10.3 Rotações suaves– A partir dos key-frames indicados

• gerar aviões em posições intermediárias ao longo da rota, interpolando as orientações

142

Page 143: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

– As orientações dos aviões nos key-frames são obtidas através de matrizes de rotação• R = Rx(θθθθx) Ry(θθθθy) Rz(θθθθz)

– E=(θθθθ , θθθθ , θθθθ ): Ângulos de Euler

143

– E=(θθθθx, θθθθy, θθθθz): Ângulos de Euler

– Considere dois conjuntos de ângulos de Euler• Ei e Ei+1• Calcular Ek = Interpolação(Ei, Ei+1)• Animação não ficará suave

Page 144: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

– Modificar a orientação interpolando entre os vetores vermelhos como no caso da trackball

144

Page 145: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.10 Interfaces para Aplicações 3D (A19)

4.10.4 Rotações incrementais– Como no caso da trackball virtual

• Achar o círculo ao longo da superfície esférica que leva de uma orientação à outra

• Incrementar o ângulo de rotação ao longo do

145

• Incrementar o ângulo de rotação ao longo do eixo de rotação v = (dx, dy, dz)

Page 146: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

4.11 Quaternions (A19)

146

Page 147: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Introduction

• Quaternions are commonly used to represent rotations

• They were introduced by William Hamilton (1805-1865) [1]

147

Hamilton (1805-1865) [1]• Quaternions were conceived as Geometrical Operators

• A Complete Calculus of Quaternions was introduced by Hamilton [2]

Page 148: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Definition of Vector

• It is a line segment with orientation• It represents the relative position of two points– Example: point N with respect to M

148

– Example: point N with respect to M

M

N

Page 149: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Hamilton’s Motivation for Quaternions

• Create a Mathematical Concept to represent

– RELATIONSHIP between two VECTORS

149

– Similar to the way a Vector represents

• RELATIONSHIP between two POINTS

Page 150: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Vector applied to Point

• Given – Point M and

– Vector V

• Application of V

M

V

150

• Application of Vover M results in

– Unique Point N

N

M V

Page 151: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion applied to Vector

• Hamilton wanted that given– Vector V and– Quaternion Q

V

Q

151

– Quaternion Q

• Application of Q over V results in – Unique VectorW Q

V W

Page 152: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quatenion Rationale

• Vector is completely defined by– Length– Orientation

• To define a vector in terms of another

152

• To define a vector in terms of another vector ���� a Quaternion has to represent– Relative Length– Relative Orientation

Page 153: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Definition of Scalar

• Scale – RATIO between the lengths of two PARALLEL vectors A and B

153

– RELATIVE LENGTH of vectors

AB

s = Scale

Page 154: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Scalar - Vector Operations

• S is the Quotient between two

PARALLEL vectors A and BB

A=S

BBA

BA sS ==◊=

154

• A Scalar is an Operator that

– Changes the SCALE of the vector

– Keeps its orientation unchanged

BBB

BA sS ==◊=

Page 155: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Definition of Versor

• Versor – QUOCIENT between two NON-PARALLELvectors A and B of EQUAL LENGTH

A

155

– RELATIVE ORIENTATION of vectors

A

B

Page 156: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Versor - Vector Operations

• V is the Geometric Quotient between

two NON-PARALLEL vectors of EQUAL

LENGTH A and B

B

A=V

156

• A Versor is an Operator that

– Changes the ORIENTATION of the vector

– Keeps its LENGTH unchanged

BA ◊= V

Page 157: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Right Versors

• A Right Versor is a Versor that applies a 90o rotation

• Vector length is left unchanged as in any other Versor application

157

any other Versor application

A

B

V

Page 158: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Composing Versors

• Versor composition is the consecutive application of two versors operators

158

A

B

V2

V1

C

V3

123

312

1

2

VVV

VVV

V

V

◊=◊=◊◊=

◊=◊=

CCA

CB

BA

Page 159: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Composing Right Versors

A

B

V

- B

VV

VVV

V

◊=−◊◊=◊=−

◊=

1

BAB

BA

159

• (-1) is the INVERSION operator– Double application of a right versor to a vector

– Inverts the direction of a vector

BVV◊=−1

Page 160: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Definition of Quaternion

• Geometrical Quotient of two vectors A and B

BAB

A◊=⇔= QQ

160

• Operating on a vector, changes its

– ORIENTATION – LENGTH

B

Page 161: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Characteristics

• Axis(Q) = Unit Vector perpendicular to the plane of rotation

• Angle(Q) = Angle between the vectors in the quotient

161

the quotient

• Index(Q) = In a Right Quaternion is the Axis(Q) multiplied by the

length ratio of the two vectors in the quotient

Page 162: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Representation of Quaternions

• Quaternion = “A set of Four”• From

– the Latin Quaternio– the Greek τετρακτυς (ΤΕΤΡΑΚΤΥΣ)τετρακτυς (ΤΕΤΡΑΚΤΥΣ)τετρακτυς (ΤΕΤΡΑΚΤΥΣ)τετρακτυς (ΤΕΤΡΑΚΤΥΣ)

• The combined operation of Scalar and Versor

162

• The combined operation of Scalar and Versor requires 4 numbers:– 1 for Scale– 1 for Angle– 2 for Orientation (common plane)

• Quaternion = Scalar ���� Versor

Page 163: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Opposite Quaternions

• The quaternion Q • has an Opposite quaternion O (Q)

B

A=Q ( ) QQO −=

−=

B

A

163

B=Q ( ) QQO −==

B

A- A

B

Q

O(Q)

Page 164: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Opposite Quaternion Properties

))(()(

))(()(

QOAxisQAxis

QOAngleQAngle

−==+ π

164

Q

O(Q)

Page 165: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Reciprocal Quaternions

• The quaternion Q:

• Reciprocal of Q:• Composition

BAB

A◊=⇒= QQ

ABA

B◊=⇒== −− 11)( QQQR

165

• Composition

(1) is an Identity Operator

A

B

QR(Q)

1=◊QQR )(

Page 166: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Conjugate Quaternion

• Given – Vectors A and B and– Quotient Q=A/B

• Geometric reflection of vector B over

166

• Geometric reflection of vector B over vector A will be vector C

BAB

A◊=⇒= QQC BA

QK(Q)

Page 167: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Conjugate Quaternion

• Conjugate Quaternion K(Q)=A/C

– Angle (K(Q)) = Angle (Q)

167

– Axis (K(Q)) = - Axis (Q)

CAC

A◊=⇒= )()( QKQKC BA

QK(Q)

Page 168: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Norm of a Quaternion

• The Norm is the composition of a Quaternion with its Conjugate– The rotation of K(Q) compensates the rotation of Q

168

– Producing a parallel vector– N(Q) is a scalar operator

C

BA

QK(Q)

BBC

B

A

B

A

A

C

B

C

◊◊=◊=

===

QQKQN

QN

)()(

)(

2

Page 169: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Square of a Quaternion

• Defined as applying Q twice

BA

C

B

B

A

C

A

◊◊=◊=

==Q2

169

CQQ

Q2CCA ◊◊=◊= QQQ2

Page 170: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Composing Right Quaternions

• Succesive application of a Right Quaternion over a Vector– results in a Vector in the opposite direction

170

A- A

B

QQ

AC

B

QQ

Page 171: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Composing Right Quaternions

• The square of any right quaternion is a NEGATIVE scalar operator

B B

QQ

171

A- A

QQ

AC

QQ

)(

1

2

AA

A

A

A

B

◊◊=−

−=−

=

QQ AC

A

B

A

B

A

C

2

22

Q=

−=

=

Page 172: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Versor of a Quaternion

• Versor of a Vector– Unit vector parallel to the vector

• Versor of a Quaternion

AA

AA ˆ)( ==U

172

• Versor of a Quaternion– Quotient of the Versors of the vectors

• It is the part of the Quaternion that represents Relative Orientation

B

A

B

A

B

A

ˆ

ˆ

)(

)()( ==

=U

UUQU

Page 173: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Tensor of a Quaternion

• Tensor of a Vector– Length of the vector

• Tensor of a Quaternion

AA =)(T

173

• Tensor of a Quaternion– Quotient of the Tensors of the vectors

• It is the part of the Quaternion that represents Relative Scale

B

A

B

A

B

A==

=)(

)()(

T

TTQT

Page 174: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Tensor and Versor of a Quaternion

• Versor operator

– Applies VERSION to a vector

– Changes vector’s orientation

174

• Tensor operator

– Applies TENSION to a vector

– Stretches the vector and change its length

Page 175: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Tensor and Versor of a Quaternion

• Vector decomposed in Versor and

Tensor parts

AAAAA ˆ)()( ◊=◊= UT

175

• Quaternion decomposed in Versor and

Tensor parts

AAAAA )()( ◊=◊= UT

)(

)(

)(

)()()(

B

A

B

A

U

U

T

TQUQTQ ◊=◊=

Page 176: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Vector - Arcs

• Versors represented on the surface of a unit sphere

• Versor V moves point B to

176

• Versor V moves point B to point A

• Minimum Arc joining points B and A is defined as Vector-Arc

Page 177: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Sliding Vector - Arcs

• Vectors can be translated on a plane• Vector arcs can freely slide along the great circle and still represent the SAME Versor

177

SAME Versor

Page 178: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Composition of Biplanar Versors

178

Page 179: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Multiplication and Division of Biplanar Versor

• Spherical Triangle ABC– Used to define versor operations– Analogous to parallelogram rule for vectors

179

Page 180: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Multiplication and Division of Biplanar Versor

• Multiplication of Versors– like the sum of vectors

• Division of VersorsCBBACA VVV =

180

• Division of Versors– like the difference of vectors

B

A

B

C

C

A

C

BC

A

====CB

CABA

V

VV

Page 181: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Versor Composition is Non-Commutative

• VAC = VBCVAB ≠≠≠≠≠≠≠≠ VABVBC = VBA’VC’B = VC’A’

• Versors VAC and VC’ A’ have– Same angle

181

– Same angle – Different axes (different planes)

Page 182: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

• Multiplication of two orthogonal Right Versors produce a Right Versor orthogonal to them

Composition of two Orthogonal Right Versors

VVV =A

182

• When order is reversedCACBBA VVV =

CABACB VVV −= C B

Page 183: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Square of Elementary Versors

• The Square of an operator is the operator applied twice

• The square of Right Versors is always the (-1) Operator

183

the (-1) Operator

Page 184: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Elementary Versors

184

Page 185: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Index of Right Quaternions

• Is the Axis of the quaternion Scaled by the ratio of lengths

185

Page 186: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Sum of Versors

• Versors are Quotients– They can be summed ONLY when they have a COMMON DENOMINATOR

– A Common Denominator can ALWAYS be

186

– A Common Denominator can ALWAYS be found

Page 187: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Getting a Common Denominator

187

Page 188: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Getting a Common Denominator

• Slide both versors along their great circles until their origins coincide

• The vector B’ in the intersection is the common denominator

188

common denominator

Page 189: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Geometrical Interpretation of the Sum

• As with Vectors 1) Get a common denominator SLIDING

both Vector-Arcs to a common origin 2) Add the two vectors in the numerator

189

2) Add the two vectors in the numerator3) Get the new Quotient

Page 190: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Sum of two Right Versors

• It is always a right quaternion• Its plane BISECTS those of the original two versors

• and has a Scalar characteristic > 1

190

• and has a Scalar characteristic > 1

Page 191: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Sum of two Right Versors

• Index of resulting Versor = sum of indices of two versors

191

Page 192: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Multiplying a Right Versor by a Scalar

• Multiplication by a Scalar– Affects only Scalar part of the Right Versor–Modifies the length ratio of the vectors in the Quotient

192

the Quotient

Page 193: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Right Versor in terms of Orthogonal Right Versor

• If the Orthogonal Right Versors i, j, k are multiplied by Scalars x, y, z

• Their sum will be a Right Versor whose axis has (x, y, z) as components

193

axis has (x, y, z) as components

Page 194: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Scalar and Right Parts of Quaternions

• A Quaternion operator applied to a vector B

• performs an operation that produces another vector A

194

another vector A

B

A

Q

Page 195: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Scalar and Right Parts of Quaternions

• The new vector A can be expressed as a sum of two orthogonal vectorsA = BS + BR

–B parallel to B and A

BR

195

–BS parallel to B and

–BR orthogonal to B

B

Q

BS

BR

Page 196: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Scalar and Right Parts of Quaternions

• Apply Scalar operator to B – Obtain BS

• Apply Right quaternion to B– Obtain BR

196

B

A

BS B

A

Q

BR

Page 197: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Tensor and Versor Part of a Quaternion

• Same operation can be decomposed in Tensor and Versor Operators

197

BBT ◊= T TBA ◊= V

Page 198: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Scalar and Right versus Tensor and Versor

• Scalar and Right parts are

representations in rectangular

coordinates

198

coordinates

• Tensor and Versor parts are

representations in polar coordinates

Page 199: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternions as Four Coefficients

• Let L be the Ratio of lengths between

vectors A and B

• Thus, the scalar factor S isB

A=L

199

• Thus, the scalar factor S is

)cos(

)cos(

θ

θ

LS

S

=

==B

A

B

BS

B

A

θθθθ

BS

BR

Page 200: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternions as Four Coefficients

• Let L be the Ratio of lengths between

vectors A and B

• Thus, the Tensor of the Right partB

A=L

200

• Thus, the Tensor of the Right part

)sin(

)sin(

θ

θ

LR

R

=

==B

A

B

BR

B

A

θθθθ

BS

BR

Page 201: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternions as Four Coefficients

• Then, the Quaternion Q can be written as

Q = x i +y j +z k +w

)cos(θLw =

201

• w (real) is Scalar part

• (x i +y j +z k) is the Right part

)sin(

)cos(

222 θ

θ

Lzyx

Lw

=++

=

Page 202: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Product of Quaternions

• Two quaternions Q1 and Q2 are composed by

202

• That is equivalent to

Page 203: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Product of Quaternions

• Consider the composition

Q = Q1 ◊◊◊◊ Q2

203

– Tensor T(Q)=T(Q1)T(Q2)

– Versor U(Q) = U(Q1) ◊◊◊◊ U(Q2)

Page 204: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Representation by four coefficients

• Let the representation of P and Q be

• Their composition P ◊◊◊◊ Q is

204

• Their composition P ◊◊◊◊ Q is

Page 205: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Representation by four coefficients

• Let the representation of P and Q be

• Their composition P ◊◊◊◊ Q is

205

• Their composition P ◊◊◊◊ Q is

Page 206: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Rotating a Vector (Finally !!)

• A Quaternion q = (x, y, z, w) rotates a Vector v by using the productv’ = q ◊◊◊◊ v ◊◊◊◊ q-1 = q ◊◊◊◊ (v ◊◊◊◊ q-1 )

• Which can be reduced to a Matrix-

206

• Which can be reduced to a Matrix-Vector multiplication L(q) R(q-1)v

( ) ( )( ) ( ) ( )( ) ( ) ( )

( )

++++−−+−

+−++−+

2222

2222

2222

2222

zyxw000

0zyxw2wx2yz2wy2xz

02wx-2yzz-yxw2wz2xy

02wy2xz2wz2xyz-y-xw

Page 207: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Consider quaternions

),(

),(

1111111

0000000

v

v

wkzjyixwQ

wkzjyixwQ

=+++==+++=

207

• Sum and Subtraction of quaternions

( ) ( ) ( ) ( )( )101010

1010101010

, vv ±±=±±+±+±+±=±

wwQQ

kzzjyyixxwwQQ

Page 208: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Multiplications of primitive elements

kjiij

kji

=−=−=== 1222

208

jikki

ikjjk

kjiij

=−==−=

=−=

Page 209: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Multiplication of quaternions( )( )

( )( )( )

10101010

1111000010

−+++++−=

++++++=

iyzzywxxw

zzyyxxww

kzjyixwkzjyixwQQ

209

( )( )( )( )( )100110101010

10101010

10101010

10101010

, vvvvvv ×++⋅−=−+++−+++−+++

wwwwQQ

kzxxzwzzw

jzxxzwyyw

iyzzywxxw

Page 210: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Conjugate of quaternions

( )( )

**

zkyjxiw

zkyjxiwQ)(QK

−−−=+++==

210

( )( )( ) *

1

*

2

*

2121

**

)(

Q))((

zkyjxiw

QQQQQQK

QQKK

==

==

−−−=

Page 211: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Norm of quaternions

( )zyxw

zkyjxiw)(2222

NQN

+++=+++=

211

( ))()()(

)(Q))((

zyxw

2121

*

QNQNQQN

QNNQKN

===

+++=

Page 212: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• The multiplicative inverse, Q-1

*1

11 1

−−

=

==

QQ

QQQQ

212

( )( ) 1

1

1

2

1

21

11

1

)(

−−−

−−

=

=

=

QQQQ

QQ

QN

QQ

Page 213: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• The Selection function, W(Q)

( )( ) 2/)(

)(*

QQQW

wzkyjxiwWQW

+==+++=

213

• Dot product of two quaternions

( ) 2/)( QQQW +=

( )*

10

1010101010

QQW

zzyyxxwwQQ

=+++=⋅

Page 214: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Unit quaternion has N(Q)=1• Represented by

)sin()cos( += uQ θθ

214

( )product Quaternion - 1

1,,

−=

=

++=

uu

u

zyx

zyx

uuu

kujuiu

Page 215: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Extension of Euler’s identity

• Power of a unit quaternion

)sin()cos()exp( θθθ uu +=

215

)sin()cos(

)exp())sin()(cos(

θθθθθ

ttQ

tQ

t

tt

u

uu

+=

=+=

Page 216: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Quaternion Algebra

• Extension of Euler’s identity

• Logarithm of a unit quaternion

)sin()cos()exp( θθθ uu +=

θθ u+= ))sin()log(cos()log(Q

216

• Non-commutativity of quaternion

multiplication disallows log and exp

identities

θθθθ

uu

u

==+=))log(exp()log(

))sin()log(cos()log(

Q

Q

Page 217: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Rotation around an axis

uz

y

xv

v’

u××××v

v’⊥⊥⊥⊥

v//

θθθθ

217

v// = Pu(v) = Pu(v)u = (v.u)uv⊥⊥⊥⊥ = v - v// = v - (v.u)uu××××v = |v⊥⊥⊥⊥|u⊥⊥⊥⊥(Plano de u e v)

|v⊥⊥⊥⊥|= | u××××v | = |v’⊥⊥⊥⊥|v’⊥⊥⊥⊥ = |v’⊥⊥⊥⊥|cosθθθθuv⊥⊥⊥⊥ +|v’⊥⊥⊥⊥|senθθθθuu××××v

= (v - (v.u)u) cosθθθθ + u××××v senθθθθ

z

v⊥⊥⊥⊥

v//

Plane perpendicular to the direction of u

Page 218: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

• Decomposition of Rotated vector

Rotation around an axis

)sin()()cos())(()(

'' //

θθ vuuuvvuuv

vvv

×+⋅−+⋅=+= ⊥

218

)sin()())cos(1)()(()cos( θθθ vuuuvv ×+−⋅+=

Page 219: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

• Rotation using a unit quaternionQ=cos(θθθθ)+u sin(θθθθ)

• Vector v is rotated of 2θ θ θ θ about the axis defined by the unit vector u

Rotation around an axis

219

defined by the unit vector u

*)(' QQR vvv ==

Page 220: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

• Conditions to prove

– v’ is a 3D vectorW(v’) = 0

– R is a length preserving operator

Rotation around an axis

220

– R is a length preserving operatorN(v’) = N(v)

– R is a linear operatorR(ααααv + w) = ααααR(v) + R(w)

– R(u) = u

Page 221: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Rotation around an axis

• u, v, w are orthonormal 3D vectorsu

v

w

221

• u, v, w are orthonormal 3D vectors

• Suppose v is rotated by φφφφ with the unit

quaternion of axis u

v’=qvq* ���� v.v’=cos(φφφφ)

Page 222: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

[ ][ ]))sin()cos())(sin()cos((

))sin()(cos())sin()(cos(

)()()cos( ***

θθθθθθθθ

φ

vuvvuv

uvuv

vvvv

−−−=−+−=

=⋅=

W

W

qqWqq

Rotation around an axis

222

( )[ ])cos()sin()()sin()cos(

)sin()cos()sin(

)cos()sin()cos(

22

22

222

θθθθ

θθθ

θθθ

vuvu

vuvuv

uvv

+−−=

+−

−+−=

W

W

Page 223: Computação Gráfica I - mat.ufc.bresdras/ck090_2007/notasdeaula/Capitulo04.pdf · Subtração vetorial. ... –Obedece às seguintes propriedades ∀∀∀∀x e y ∈∈∈ X

Rotation around an axis

uuwvvuv

wvu

=−−=−=−=

)(

[ ])cos()sin(2)sin()cos()cos( 22 θθθθφ −−= uW

223

• Therefore φφφφ = 2θθθθ

[ ])2cos()sin()cos(

)cos()sin(2)sin()cos()cos(

22 θθθ

θθθθφ

=−=

−−= uW