Post on 11-Aug-2020
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
( )
1ˆ
83,0,55,0 6055,3
3,
6055,3
2ˆ
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
3ˆ
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
=
===
oθ
radianosgraus 1416,3180 =
• Ex:
Vetores – Produto Escalar
o325.31cos85422.0ˆ.ˆ
)3714.0,9285.0(ˆ ,5
4,
5
3ˆ
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