Matemática para CGsmusse/CG/PDF2013_2/... · Introdução • Em CG, trabalha-se com objetos...

Post on 11-Aug-2020

5 views 0 download

Transcript of Matemática para CGsmusse/CG/PDF2013_2/... · Introdução • Em CG, trabalha-se com objetos...

Matemática para CG

1

Soraia Raupp Musse

Sumário

• Introdução• Revisão Matemática

– Vetores– Matrizes

2

Introdução

• Em CG, trabalha-se com objetos definidos em um mundo 3D

• Todos os objetos têm forma, posição e orientação• Precisamos de programas de computador que

descrevam esses objetos e como a luz interage com

3

descrevam esses objetos e como a luz interage com eles, de forma que o valor do pixels possam ser computados

• Dois conceitos matemáticos ajudam enormemente em CG:– Análise e álgebra vetorial– Transformações

• Com estas duas diciplinas saberemos:– Como descrever os objetos geométricos de uma cena

Introdução

4

– Como descrever os objetos geométricos de uma cena– Como converter idéias geométricas para números

• Como resultado tem-se uma coleção de algoritmos úteis em CG

Revisão Matemática - Vetores

• Por que vetores são tão importantes para CG?– Utilizados para resolver problemas que seriam dificilmente

resolvidos via outro método– Aritmética vetorial provê uma maneira unificada de se

expressar idéias geométricas algebricamente– Ray-Tracing

5

– Ray-Tracing

Exemplos – Ray-Tracing

6

Fonte: www.povray.org

Rendering

reflexão especular

refração

image

reflexão difusa

7

refração

sombraseye

Principais fenômenos que podem acontecer na Principais fenômenos que podem acontecer na

interação entre luz e objetosinteração entre luz e objetos

Olho virtual

Mais Exemplos

8

9

10

Mais Exemplos

11

Exemplos – Ray-Tracing

12

• SRs mão direita e mão esquerda

Revisão Matemática - Vetores

13

• Geometricamente, vetores são objetos com comprimento e direção

• Podem representar diversas entidades físicas, como força e velocidade

Revisão Matemática - Vetores

Q

Pv

14

• Applet http://www.fisica.ufpb.br/prolicen/applets.html

l)dimensiona -n(Vetor ),...,,(

Ponto) vetor (Ponto

vetor)um é pontos dois de (Diferença

21 nvvvv

PvQ

QPv

=

=+=+

−=

r

r

r

Vetores Especiais

i

j

i

j

ka

15

i

k

i

[ ]

azkayjaxia

azkayjaxia

++=

=r

r

• Vetores unitários padrões

Vetores – Produto Escalar

( )

kjiv

kcjbiaa,b,c

,,k,,,j, ,,i

rrrr

rrr

rrr

152)1,0,0(1)0,1,0(5)0,0,1(2)1,5,2( :Ex

)100()010()001(

−+=−+=−=

++=

===

16

kjiv 152)1,0,0(1)0,1,0(5)0,0,1(2)1,5,2( :Ex −+=−+=−=

Revisão Matemática - Vetores

i

j

i

j

ka

17

i

k

i

[ ]

azkayjaxia

azkayjaxia

++=

=r

r

Inversão de vetores: MULT(-1)

azkayjaxia −−−=−r

.1

Como ficaria -1.a?

Revisão Matemática - Vetores

• Magnitude, tamanho (sempre positivo) ou módulo do vetorDISTÂNCIA ENTRE DOIS PONTOS

...

),...,,(

22

2

2

1

21

m

m

vvvv

vvvv

rrr

rrrr

+++=

=

18

• Origem em Pitágoras

ax

ay

az

a=axi+ayj+azk

222azayaxa ++=

2

3

2

2

2

1

2lllh ++=

• Vetor Unitário (magnitude = 1)– Algumas vezes é interessante normalizar um vetor,

tornando-o unitário

Revisão Matemática - Vetores

axayaxar

19

1ˆ ,5

4,

5

3ˆ e 5 ),4,3( :Ex

ˆ

=

−==−=

==

aaaa

a

ax

a

ay

a

ax

a

aa

r

rrrr

r

Para você fazer:

:a tário vetor Unido Módulo

:a unitárioVetor

:a de Módulo

:)matemática notação a com (escreva calcule ),3,2( Sendo −=ar

20

:a tário vetor Unido Módulo

Resultado:

:a tário vetor Unido Módulo

:a unitárioVetor

:a de Módulo

:)matemática notação a com (escreva calcule ),3,2( Sendo −=ar

21

:a tário vetor Unido Módulo

( )

83,0,55,0 6055,3

3,

6055,3

6055,3 31

)3,2(

=

−=

−=

≅=

−=

a

a

a

ar

Revisão Matemática - Vetores

• Operações Básicas:– Soma de Vetores

[ ] [ ] = = bx by bzbax ay azar

rr

22

)5,8,7()1,5,2()6,3,5()(

)7,2,3(

)1,5,2(

)6,3,5(

=−+=−+=−

−=+

−−=

=

baba

ba

b

a

rrrr

rr

r

r

• Operações Básicas:– Soma de Vetores

Revisão Matemática - Vetores

[ ] [ ]

)6,3,5(

=

= =

a

bx by bzbax ay azar

rr

(5,3)

(7,8)

23

)5,8,7()1,5,2()6,3,5()(

)7,2,3(

)1,5,2(

)6,3,5(

=−+=−+=−

−=+

−−=

=

baba

ba

b

a

rrrr

rr

r

(-2,-5)

(3,-2)

• Operações Básicas:– Soma de Vetores

Revisão Matemática - Vetores

Lei do paralelograma:•Transporta paralelas

24

•Transporta paralelas•Diagonal=Soma

(5,3)

(-2,-5)

(3,-2)

• Operações Básicas:– Multiplicação por Escalar

Revisão Matemática - Vetores

)6,5,2(=ar

r

25

)36,30,12(.6 =ar

• Combinação Linear– Utilizado para splines e representações paramétricas

Revisão Matemática - Vetores

escalares. são ,...,, onde , ... 212211 mmm aaavavavavrrrr

+++=

26

escalares. são ,...,, onde , ... 212211 mmm aaavavavav +++=

• Soma de Vetores– Propriedades da adição: a,b,c (vetores) e k,l (escalares)

Revisão Matemática - Vetores

( ) ( )Comutativaabba →+=+rr

rrrr

27

( ) ( )( )

( )

( ) vaDistributibkakbak

vaDistributialakalk

aAssociativaklalk

aAssociativcbacba

Comutativaabba

→+=+

→+=+

→=

→++=++

→+=+

rrrr

rrr

rr

rrrrrr

Com você outra vez…

( )=+

==−=

−=−=

ba

, - e l),k,,(c

b),,(a

r

rr

r

rr

:responda15120

),2,1,5(,342 Sejam

28

( )( )

=+

=+

=

=++

=+

bkak

alak

alk

cba

ba

rr

rr

r

rrr

Respostas:

( ))1,3,7(

:responda15120

),2,1,5(,342 Sejam

−=+

==−=

−=−=

ba

, - e l),k,,(c

b),,(a

r

rr

r

rr

29

( )( )

)5,15,35()(

)12,16,8()(

)15,20,10(

)2,5,7(

)1,3,7(

−=+=+

−=+=+

−−=

−=++

−=+

bakbkak

lkaalak

alk

cba

ba

rrr

rrr

r

rrr

• Produz um escalar

– Ex: v = (2, 3, 1), w = (0, 4, -1) = 11

Entre Vetores – Produto Escalar

∑=

==

==

n

i

ii

nn

wvwvd

wwwwvvvv

1

2121

. .

),,...,,( e ),...,,(

rrrr

rrrrrrrr

30

– Ex: v = (2, 3, 1), w = (0, 4, -1) = 11

• Propriedades– Comutativa: a.b = b.a– Distributiva: (a+c). b= a.b +c.b– Associativa: (sa).b = s(a.b)– Produto Escalar de b com ele mesmo é o quadrado do

comprimento de b

bbbrrr

.2

=

• Uma aplicação interessante é achar o cosseno do ângulo entre 2 vetores.– Exemplo de aplicação

Revisão Matemática - Vetores

31

• Ângulo entre dois vetores (b e c)– Mais importante aplicação do produto escalar

Vetores – Produto Escalar

[ ]

doLei :cosseno

=r

32

[ ]

bb bbybbx

bybxb

αα sin cos

==

=r

• Ângulo entre dois vetores (b e c)– Mais importante aplicação do produto escalar

Vetores – Produto Escalar

[ ]

doLei :cosseno

=r

33

[ ]

bb bbybbx

bybxb

αα sin cos

==

=r

alpha

bx

by

• Ângulo entre dois vetores (b e c)– Mais importante aplicação do produto escalar

Vetores – Produto Escalar

[ ]bybxb

doLei

:cosseno

=r

34

[ ]

( )bcbc

bcbc

cc

bb

bb

cbcb

cbcbcb

ccc

bbb

bbybbx

bybxb

αααα

αααα

αα

αα

αα

sinsincoscos.

sinsincoscos.

)sin,cos(

)sin,cos(

sin cos

+=

+=

=

=

==

=

rr

rr

r

r

• Ângulo entre dois vetores (b e c)– Mais importante aplicação do produto escalar

Vetores – Produto Escalar

[ ]bybxb

doLei

:cosseno

=r

cbcb

bababa

bc )cos(.

temos),sin()sin()cos()cos()cos( Como

−=

+=−

ααrr

35

( )bcbc

bcbc

cc

bb

b

cbcb

cbcbcb

ccc

bbb

bbx

αααα

αααα

αα

αα

α

sinsincoscos.

sinsincoscos.

)sin,cos(

)sin,cos(

cos

+=

+=

=

=

=

rr

rr

r

r

cb

cbcb

cbcb bc

ˆ.ˆcos

c) e b entre ângulo( cos.

)cos(.

=

==

−=

θ

θθ

αα

rr

• Ângulo entre dois vetores (b e c)– Mais importante aplicação do produto escalar

Vetores – Produto Escalar

[ ]bzbybxb

doLei

:cosseno

=r

cbcb

bababa

bc )cos(.

temos),sin()sin()cos()cos()cos( Como

−=

+=−

αα

36

[ ]

( )bbbc

bbbc

cc

bb

b

cbcb

cbcbcb

ccc

bbb

bbx

αααα

αααα

αα

αα

α

sinsincoscos.

sinsincoscos.

)sin,cos(

)sin,cos(

cos

+=

+=

=

=

=

cb

cbcb

cbcb bc

ˆ.ˆcos

c) e b entre ângulo-( cos.

)cos(.

=

>=

−=

θ

θθ

αα

O cosseno do ângulo entre dois vetores é o produto escalar destes vetores normalizados

• Calcule o ângulo entre os vetores:

Para você fazer...

)2,5( e )4,3( == cb

37

Vetores – Produto Escalar

• Ex:

)3714.0,9285.0(ˆ ,5

4,

5

385.5 ,5

)2,5( e )4,3(

cb

cb

cb

=

=

==

==

38

• Conversão de graus em radianos e radianos em graus?

)(54,0

)(deg325.31cos85422.0ˆ.ˆ

55

radianos

reescb

=

===

radianosgraus 1416,3180 =

• Ex:

Vetores – Produto Escalar

o325.31cos85422.0ˆ.ˆ

)3714.0,9285.0(ˆ ,5

4,

5

385.5 ,5

)2,5( e )4,3(

===

=

=

==

==

θcb

cb

cb

cb

39

• Sinal de b.c e Perpendicularidade

o325.31cos85422.0ˆ.ˆ === θcb

0 b.c 90 se 0cos

0 b.c 90 se 0cos

0 b.c 90 se 0cos

<→><

=→==

>→<>

o

o

o

θθ

θθ

θθ

b.c>0

b.c=0 (Perpendiculares)

b.c<0

• Produz como resultado um vetor perpendicular aos dois vetores operandos

• Válido para 3D

Vetores – Produto Vetorial

40

( ) ( )( ) ( ) ( )

zyx

zyx

xyyxzxxzyzzy

zyxzyx

bbb

aaa

kji

ba

kbabajbabaibababa

ba,,b,bbb ,,a,aaa

−+−+−=×

×== rr

• Produz como resultado um vetor perpendicular aos dois vetores operandos

• Válido para 3D

Vetores – Produto Vetorial

41

( ) ( )( ) ( ) ( )

zyx

zyx

xyyxzxxzyzzy

zyxzyx

bbb

aaa

kji

ba

kbabajbabaibababa

ba,,b,bbb ,,a,aaa

−+−+−=×

×== rr

(aybz-azby)i

• Produz como resultado um vetor perpendicular aos dois vetores operandos

• Válido para 3D

Vetores – Produto Vetorial

42

( ) ( )( ) ( ) ( )

zyx

zyx

xyyxzxxzyzzy

zyxzyx

bbb

aaa

kji

ba

kbabajbabaibababa

ba,,b,bbb ,,a,aaa

−+−+−=×

×== rr

-(axbz-azbx)j(-axbz+azbx)j(azbx-axbz)j

• Produz como resultado um vetor perpendicular aos dois vetores operandos

• Válido para 3D

Vetores – Produto Vetorial

43

( ) ( )( ) ( ) ( )

zyx

zyx

xyyxzxxzyzzy

zyxzyx

bbb

aaa

kji

ba

kbabajbabaibababa

ba,,b,bbb ,,a,aaa

−+−+−=×

×== rr

(axby-aybx)k

• Normal de um Plano– Importante aplicação do produto vetorial

– P1, P2 e P3 sempre determinam um plano• a = P2 – P1• b = P3 – P1

– axb = Vetor normal ao plano

Vetores – Produto Vetorial

44

– axb = Vetor normal ao plano

Rendering

reflexão especular

refração

image

reflexão difusa

45

refração

sombraseye

Principais fenômenos que podem acontecer na Principais fenômenos que podem acontecer na

interação entre luz e objetosinteração entre luz e objetos

Olho virtual

Matrizes

• Arranjo retangular de elementos • Matriz com m linhas e n colunas é dita matriz mxn• Matriz Quadrada: m=n

– Exemplo (2x2, 3x3, 4x4)

• Matriz Identidade:

001

46

• Vetor Linha: 1xn• Vetor Coluna: nx1

=

100

010

001

I

( )

=

=

1

1

1

111

C

L

• Scale:– Multiplica cada elemento

da Matriz por um fator de escala

• Soma:

Matrizes - Operações

=

121266

541836

0486

301218

6A

− 351421

34

2211

936

081

523

×=

=A

47

• Soma:– Se duas matrizes têm o mesmo número de

linhas e colunas, elas podem ser somadas (mesma forma)

• Matriz Transposta:– Troca linhas por colunas

=+

141477

632142

0567

351421

6AA

43

2905

21382

1613

×=

=TA

• Produto:– Definido somente se matrizes são conformes

• Número de colunas de A(mxn) = Número de linhas de B(nxp), resultando em matrix C que será de dimensão (mxp)

Matrizes - Operações

− 1415

263602

48

– Propriedades (A,B,C são conformes)• (AB)C = A(BC)• A(B+C) = AB+AC• (A+B)C = AC+BC• (AB)T=BT AT

=

2011

1311

1415

85

13

11

1750

0418

3602

:Ex

• Produto:– Definido somente se matrizes são conformes

• Número de colunas de A(mxn) = Número de linhas de B(nxp), resultando em matrix C que será de dimensão (mxp)

Matrizes - Operações

− 1445

263602

49

2.6+0.-1+6.3+-3.-5=12+0+18+15=452.2+0.1+6.1+-3.8=4+0+6-24=-148.6+1.-1+-4.3+0.-5=48-1-12+0=358.2+1.1+-4.1+0.8=16+1-4+0=130.6+5.-1+7.3+1.-5=0-5+21-5=110.2+5.1+7.1+1.8=0+5+7+8=20

=

2011

1335

1445

85

13

11

1750

0418

3602

:Ex

Vamos trabalhar de novo? ☺

=

1

2

1

644

105

312

50

1644

Resultado:

=

4

1

2

1

105

312

51

−=

10

4

1

2

644

105

De novo? AB=CCalcule C

=

−=

301

43

12

B

A

52

=425

B

Resultado

−=

301

43

12A

53

−−=

=

25823

223

425

301

C

B