Matemática para CG
Soraia Raupp Musse
1
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
eles, de forma que o valor do pixels possam ser
computados
3
Introdução
• 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
– Como converter idéias geométricas para números
• Como resultado tem-se uma coleção de algoritmos úteis em
CG
4
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
Exemplos – Ray-Tracing
Fonte: www.povray.org
6
Rendering
reflexão difusa
reflexão especular
image
refração
sombras
eye
Olho virtual
Principais fenômenos que podem acontecer na
interação entre luz e objetos
7
Mais Exemplos
8
9
10
Mais Exemplos
11
Exemplos – Ray-Tracing
12
Revisão Matemática - Vetores
• SRs mão direita e mão esquerda
13
Revisão Matemática - Vetores
• Geometricamente, vetores são objetos
com comprimento e direção
• Podem representar diversas entidades
físicas, como força e velocidade
• vr = P − Q (Diferença de dois pontos é um vetor)
r
Q + v = P (Ponto + vetor = Ponto)
r
v = (v1 , v2 ,..., vn ) (Vetor n - dimensional)
Q
v
P
• Applet
http://www.fisica.ufpb.br/prolicen/a
pplets.html
14
Vetores Especiais
j
j
a
k
i
k
i
r
a = [axi ayj azk ]
r
a = axi + ayj + azk
15
Vetores – Produto Escalar
• Vetores unitários padrões
r
r
r
i = (1,0,0) , j = (0,1,0) ,k = (0,0,1)
r r r
(a,b,c ) = ai + bj + ck
r
r r
r
Ex : v = (2,5,−1) = 2(1,0,0) + 5(0,1,0) − 1(0,0,1) = 2i + 5 j − 1k
16
Revisão Matemática - Vetores
j
j
a
k
i
k
i
Inversão de vetores: MULT(-1)
r
a = [axi ayj azk ]
r
a = axi + ayj + azk
r
− 1.a = −axi − ayj − azk
Como ficaria -1.a?
17
Revisão Matemática - Vetores
• Magnitude, tamanho
(sempre positivo) ou
módulo do vetor
DISTÂNCIA ENTRE
DOIS PONTOS
• Origem em Pitágoras
r r r
r
v = (v1 , v2 ,..., vm )
r2 r2
r2
v = v1 + v2 + ... + vm
2
2
h 2 = l1 + l2 + l3
2
a=axi+ayj+azk
ay
a = ax 2 + ay 2 + az 2
az
ax
18
Revisão Matemática - Vetores
• Vetor Unitário (magnitude = 1)
– Algumas vezes é interessante normalizar um vetor,
tornando-o unitário
r 
a
ax ay ax 
aˆ = r =  r r r 
a  a a a 
r
3 −4
Ex : a = (3,−4), a = 5 e aˆ =  ,
, aˆ = 1
5 5 
19
Para você fazer:
r
Sendo a = (2,−3), calcule (escreva com a notação matemática) :
Módulo de a :
Vetor unitário a :
Módulo do vetor Unitário a :
20
Resultado:
r
Sendo a = (2,−3), calcule (escreva com a notação matemática) :
Módulo de a :
Vetor unitário a :
Módulo do vetor Unitário a :
r
a = (2,−3)
a = 13 ≅ 3,6055
−3 
 2
aˆ = 
,
 = (0,55,−0,83)
 3,6055 3,6055 
aˆ = 1
21
Revisão Matemática - Vetores
• Operações Básicas:
– Soma de Vetores
r
r
a = [ax ay az ] b = [bx by bz ]
r
a = (5,3,6)
r
b = (−2,−5,1)
r r
a + b = (3,−2,7)
r
r r r
a − b = a + (−b ) = (5,3,6) + (2,5,−1) = (7,8,5)
22
Revisão Matemática - Vetores
(7,8)
• Operações Básicas:
– Soma de Vetores
r
r
a = [ax ay az ] b = [bx by bz ]
r
a = (5,3,6)
r
b = (−2,−5,1)
r r
a + b = (3,−2,7)
r
r r r
a − b = a + (−b ) = (5,3,6) + (2,5,−1) = (7,8,5)
(5,3)
(3,-2)
(-2,-5)
23
Revisão Matemática - Vetores
• Operações Básicas:
– Soma de Vetores
Lei do paralelograma:
•Transporta paralelas
•Diagonal=Soma
(5,3)
(3,-2)
24
(-2,-5)
Revisão Matemática - Vetores
• Operações Básicas:
– Multiplicação por Escalar
r
a = (2,5,6)
r
6.a = (12,30,36)
25
Revisão Matemática - Vetores
• Combinação Linear
– Utilizado para splines e representações paramétricas
r
r
r
r
v = a1v1 + a2 v2 + ... + am vm , onde a1 , a2 ,..., am são escalares.
26
Revisão Matemática - Vetores
• Soma de Vetores
– Propriedades da adição: a,b,c (vetores) e k,l (escalares)
r r r r
a + b = b + a → Comutativa
r r r
r r r
a + b + c = a + b + c → Associativa
r
r
k (la ) = kla → Associativa
r
r r
(k + l )a = ka + la → Distributiva
r
r r
r
k a + b = ka + kb → Distributi va
(
(
) (
)
)
27
Com você outra vez…
r
r
Sejam a = ( 2,4 , − 3 ), b = (5,−1,2),
r
c = ( 0,2, − 1 ),k = 5 e l = -1, responda :
r r
a +b =
r r r
a+ b +c =
r
k (la ) =
r r
ka + la =
r
r
ka + kb =
(
)
28
Respostas:
r
r
Sejam a = ( 2 ,4 , − 3 ), b = (5,−1,2),
r
c = ( 0 ,2 , − 1 ),k = 5 e l = -1, responda :
r r
a + b = (7,3,−1)
r r r
a + b + c = (7,5,−2)
r
k (la ) = (−10,−20,15)
r r r
ka + la = a (k + l ) = (8,16,−12)
r r
r
ka + kb = k (a + b) = (35,15,−5)
(
)
29
Entre Vetores – Produto Escalar
• Produz um escalar
r r r
r
r
r r
r
v = (v1 , v2 ,..., vn ) e w = ( w1 , w2 ,..., wn ),
rr n r r
d = v .w = ∑ vi .wi
i =1
– 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
r2 r r
b = b .b
30
Revisão Matemática - Vetores
• Uma aplicação interessante é achar o cosseno do
ângulo entre 2 vetores.
– Exemplo de aplicação
31
Vetores – Produto Escalar
• Ângulo entre dois vetores (b e c)
– Mais importante aplicação do produto escalar
Lei do cosseno :
r
b = [bx by ]
bx = b cos α b by = b sin α b
32
Vetores – Produto Escalar
• Ângulo entre dois vetores (b e c)
– Mais importante aplicação do produto escalar
Lei do cosseno :
r
b = [bx by ]
bx = b cos α b by = b sin α b
by
alpha
bx
33
Vetores – Produto Escalar
• Ângulo entre dois vetores (b e c)
– Mais importante aplicação do produto escalar
Lei do cosseno :
r
b = [bx by ]
bx = b cos α b by = b sin α b
r
b = ( b cos α b , b sin α b )
r
c = ( c cos α c , c sin α c )
rr
b .c = b c cos α c cos α b + b c sin α c sin α b
rr
b .c = b c (cos α c cos α b + sin α c sin α b )
34
Vetores – Produto Escalar
• Ângulo entre dois vetores (b e c)
– Mais importante aplicação do produto escalar
Lei do cosseno :
r
b = [bx by ]
Como cos(a − b) = cos(a ) cos(b) + sin( a ) sin(b), temos
rr
b .c = b c cos(α c − α b )
rr
b .c = b c cos θ (θ = ângulo entre b e c)
bx = b cos α b
r
b = ( b cos α b , b sin α b )
cos θ = bˆ.cˆ
r
c = ( c cos α c , c sin α c )
rr
b .c = b c cos α c cos α b + b c sin α c sin α b
rr
b .c = b c (cos α c cos α b + sin α c sin α b )
35
Vetores – Produto Escalar
• Ângulo entre dois vetores (b e c)
– Mais importante aplicação do produto escalar
Lei do cosseno :
r
b = [bx by bz ]
bx = b cos α b
b = ( b cos α b , b sin α b )
Como cos(a − b) = cos(a ) cos(b) + sin( a ) sin(b), temos
b.c = b c cos(α c − α b )
b.c = b c cos θ (θ - > ângulo entre b e c)
cos θ = bˆ.cˆ
c = ( c cos α c , c sin α c )
b.c = b c cos α c cos α b + b c sin α b sin α b
b.c = b c (cos α c cos α b + sin α b sin α b )
O cosseno do ângulo entre dois vetores é o produto escalar
destes vetores normalizados
36
Para você fazer...
• Calcule o ângulo entre os vetores:
b = (3,4) e c = (5,2)
37
Vetores – Produto Escalar
• Ex:
b = (3,4) e c = (5,2)
b = 5, c = 5.385
3 4
bˆ =  , , cˆ = (0.9285,0.3714)
5 5
bˆ.cˆ = 0.85422 = cos θ = 31.325o (deg rees)
= 0,54( radianos )
• Conversão de graus em
radianos e radianos em
graus?
180 graus = 3,1416radianos
38
Vetores – Produto Escalar
• Ex: b = (3,4) e c = (5,2)
b = 5, c = 5.385
3 4
bˆ =  , , cˆ = (0.9285,0.3714)
5 5
bˆ.cˆ = 0.85422 = cosθ = 31.325o
• Sinal de b.c e Perpendicularidade
b.c>0
cosθ > 0 se θ < 90o → b.c > 0
b.c=0
(Perpendiculares)
o
cosθ = 0 se θ = 90 → b.c = 0
cosθ < 0 se θ > 90o → b.c < 0
b.c<0
39
Vetores – Produto Vetorial
• Produz como resultado um vetor
perpendicular aos dois vetores
operandos
• Válido para 3D
r
r
a = (a x ,a y ,a z ), b = (bx ,by ,bz ), a × b
a × b = (a y bz − a z by )i + (a z bx − a x bz ) j + (a x by − a y bx )k
i
a × b = ax
j
ay
k
az
bx
by
bz
40
Vetores – Produto Vetorial
• Produz como resultado um vetor
perpendicular aos dois vetores
operandos
• Válido para 3D
r
r
a = (a x ,a y ,a z ), b = (bx ,by ,bz ), a × b
a × b = (a y bz − a z by )i + (a z bx − a x bz ) j + (a x by − a y bx )k
i
a × b = ax
j
ay
k
az
bx
by
bz
(aybz-azby)i
41
Vetores – Produto Vetorial
• Produz como resultado um vetor
perpendicular aos dois vetores
operandos
• Válido para 3D
r
r
a = (a x ,a y ,a z ), b = (bx ,by ,bz ), a × b
a × b = (a y bz − a z by )i + (a z bx − a x bz ) j + (a x by − a y bx )k
i
a × b = ax
j
ay
k
az
bx
by
bz
-(axbz-azbx)j
(-axbz+azbx)j
(azbx-axbz)j
42
Vetores – Produto Vetorial
• Produz como resultado um vetor
perpendicular aos dois vetores
operandos
• Válido para 3D
r
r
a = (a x ,a y ,a z ), b = (bx ,by ,bz ), a × b
a × b = (a y bz − a z by )i + (a z bx − a x bz ) j + (a x by − a y bx )k
i
a × b = ax
j
ay
k
az
bx
by
bz
(axby-aybx)k
43
Vetores – Produto Vetorial
• 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
44
Rendering
reflexão difusa
reflexão especular
image
refração
sombras
eye
Olho virtual
Principais fenômenos que podem acontecer na
interação entre luz e objetos
45
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:
• Vetor Linha: 1xn
• Vetor Coluna: nx1
 1 0 0


I =  0 1 0
 0 0 1


L = (1 1 1)
1
 
C = 1
1
 
46
Matrizes - Operações
 3 2 − 5


 18 12 − 30 


• Scale:
−
1
8
0


−
6
48
0
A=
= 4×3


– Multiplica cada elemento
6A = 
6 3 9 


36 18
54 
da Matriz por um
 1 21 2 




fator de escala
 6 126 12 


• 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
 21 14 − 35 


0 
 − 7 56
A + 6A = 
42 21 63 


 7 147 14 


 3 −1 6 1 


AT =  2
8 3 21 = 3 × 4
−5 0 9 2 


47
Matrizes - Operações
• 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)
 6
 2 0 6 − 3 

 − 1
Ex :  8 1 − 4 0 
3
0 5 7


1 

−5
2
 15 − 14 

1 
=  11 13 
1 
  11 20 
8 
– 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
48
Matrizes - Operações
• 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)
 6
 2 0 6 − 3 

 − 1
Ex :  8 1 − 4 0 
3
0 5 7


1 

− 5
2
  45 − 14 

1 
=  35 13 
1 
  11 20 
8 
2.6+0.-1+6.3+-3.-5=12+0+18+15=45
2.2+0.1+6.1+-3.8=4+0+6-24=-14
8.6+1.-1+-4.3+0.-5=48-1-12+0=35
8.2+1.1+-4.1+0.8=16+1-4+0=13
0.6+5.-1+7.3+1.-5=0-5+21-5=11
0.2+5.1+7.1+1.8=0+5+7+8=20
49
Vamos trabalhar de novo? ☺
 2 − 1 3  − 1

 
 5 0 1  2  =
 4 4 6  1 

 
50
Resultado:
 2 − 1 3  − 1  − 1 

   
 5 0 1  2  =  − 4 
 4 4 6  1   10 

   
51
De novo? AB=C
Calcule C
 2 − 1

A = 
3 4 
1 0 3

B = 
5 2 4
52
Resultado
 2 − 1

A = 
3 4 
1 0 3

B = 
5 2 4
− 3 − 2 2 

C = 
 23 8 25 
53
Download

Fundamentos Matemáticos para CG & PI