fundamentos matemáticos para computação gráfica · 2020. 3. 23. · fundamentos matemáticos...
TRANSCRIPT
![Page 1: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/1.jpg)
Fundamentos Matemáticos para Computação Gráfica
Márcio Sarroglia Pinho
![Page 2: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/2.jpg)
PONTOS, VETORES, RETAS, ETC...
2
![Page 3: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/3.jpg)
Computação Gráfica
Pontos• As coordenadas de um ponto identificam uma
posição individual no plano ou no espaço• No caso 2D, existe um eixo horizontal é
chamado de Eixo X e um vertical, de Eixo Y• A intersecção dos eixos define a origem do
sistema• As coordenadas informam as distâncias entre
o ponto e a origem do sistema, medidas ao longo de cada um dos eixos
3
![Page 4: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/4.jpg)
Computação Gráfica
Vetores
• V = B-A
4
A: (1,3)
A: (1,3)B: (5,6)V = (5,6)-(1,3)V = (4,3)3
5
B: (5,6)6
1
![Page 5: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/5.jpg)
Computação Gráfica
Vetores
• Definem uma direção• Possuem um tamanho(módulo)• Não tem origem
5
B
A
(-2,1)(-2,1)
(-2,1)
![Page 6: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/6.jpg)
Computação Gráfica
Vetores
• Operações–Módulo
– Versor (vetor unitário)
6
€
V = x 2 + y 2 + z2
€
V =x,y,z( )V
X
YV = (X,Y)
![Page 7: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/7.jpg)
Computação Gráfica
Vetores
• Operações–Multiplicação por um escalar– Permite alterar o tamanho do vetor e manter a
direção
7€
V x,y,z( )* n = (x * n, y * n, z * n)
(2,1) (4,2)Multiplicando por 2 ...
![Page 8: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/8.jpg)
Computação Gráfica
Vetores
• Operações– A soma de um vetor a um ponto permite o
deslocamento do ponto na direção do vetor
8
B
A
DIRB = A + DIR
![Page 9: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/9.jpg)
Computação Gráfica
Vetores
• Operações– O tamanho do vetor fornece a velocidade do
movimento
9
B
A
DIRB
A
DIR
B = A + (DIR * veloc)
![Page 10: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/10.jpg)
Computação Gráfica
Vetores
• Operações– A rotação permite a mudança de direção de um
deslocamento
10
€
xr = x*cos(alfa) - y* sen(alfa)yr = x*sen(alfa) + y* cos(alfa)
![Page 11: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/11.jpg)
Computação Gráfica
Vetores
• Operações– Produto Escalar
• Tem este nome pois resulta em um número• Também conhecido como produto interno, dot product,
inner product
– Pode ser usado para calcular o ângulo entre 2 vetores pois, se V1 e V2 são unitários, então
11
V1•V2 = x1* x2+ y1* y2+ z1* z2
€
V1•V2 = cos α( )
alfa
V1
V2
![Page 12: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/12.jpg)
Computação Gráfica
Vetores
• Operações– Produto Escalar
12
P1
A
BV1 P2
A
BV1
Ângulo > 0Cos < 1
Ângulo == 0Cos == 1
![Page 13: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/13.jpg)
Exemplo de uso do Produto Escalar
13
A:(0,2)
B:(8,6)
P1: (4,9)
V1: (8,4)
V2: (4,7)
Para o ponto P1Módulo (V1): sqrt(64+16) : 8,94Módulo (V2): sqrt(16+49): 8,06V1.V2 = (8*4+4*5)/(8,94*8,06)V1.V2 = 52/72,07
Para o ponto P2Módulo (V1): sqrt(64+16) : 8,94Módulo (V3): sqrt(16+4): 4,47V1.V3 = (8*4+4*2)/(8,94*4,47)V1.V3 = 40/39,96
P2: (4,4)V3: (4,2)
Conclusão:
![Page 14: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/14.jpg)
Computação Gráfica
Vetores
• Operações– Produto Vetorial V1 X V2 = (Xn,Yn,Zn)
• Produto Externo, Cross product ou Outer product
– Vetor perpendicular a V1 e a V2
14
€
V1×V2 = detXn Yn ZnX1 Y1 Z1X2 Y2 Z2
#
$
% % %
&
'
( ( (
€
Xn = Y1* Z2 - Z1* Y2Yn = Z1* X2 - X1* Z2Zn = X1* Y2 - Y1* X2
V1
V2
VN
![Page 15: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/15.jpg)
Computação Gráfica
Vetores
• Operações– Produto Vetorial– Regra da mão direita
15
V2 X V1 V1
V2
VN
V1
V2
VN
V1 X V2
![Page 16: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/16.jpg)
Computação Gráfica
Vetores
• Operações– Produto Vetorial– V1: (0,1,0)– V2: (1,0,0)
16
V1
V2
VN
V1
V2
VN
V2 X V1: (0,0,-1) V1 X V2: (0,0,1)
![Page 17: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/17.jpg)
Computação Gráfica
Vetores
• Determinação de lateralidade• De que lado está o ponto em relação a AB
17
Usa-se o produto vetorial entre os vetoresV0 x V1V0 x V2
B
A
D
E
V0
V2V1
![Page 18: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/18.jpg)
Exemplo de uso do Produto Vetorial
18
A:(0,2,0 )
B: (8,6,0)
P1: (4,9,0)
V1: (8,4,0)
V2: (4,7,0)
Para o ponto P1V1 x V2: (0,0,Z1)Z1: 8*9 - 4*4Z1: 72-16Z1: 56
P2: (5,2,0)V3: (5,0,0)
Conclusão:Como o Z1 é positivo e o Z2 é negativo, então P1 está de um lado e P2 está de outro, em relação à reta A-B
Para o ponto P2V1 x V3: (0,0,Z2)Z2: 8*0 - 4*5Z2: 0-20Z2: -20
![Page 19: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/19.jpg)
Computação Gráfica
Vetores
• Determinação de lateralidade– Útil para saber se pode haver intersecção entre
segmentos de reta
19
![Page 20: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/20.jpg)
Computação Gráfica
Retas
• Equação paramétrica da reta– Ponto Inicial + Vetor colocado no ponto– Utiliza-se a multiplicação do um vetor por um
escalar para obter qualquer ponto da reta
20
A
B
€
R t( ) = A + B − A( )* tR t( ) = A + B* t − A* tR(t) = A* (1− t) + B* t
€
t ∈ 0..1[ ]
t
![Page 21: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/21.jpg)
Computação Gráfica
Retas
• Equação paramétrica da reta
21
A
B
t
R(t): A * (1-t) + B* tR(0): AR(1): BR(0.5): A * 0.5 + B * 0.5
![Page 22: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/22.jpg)
Computação Gráfica
Retas
• Interseção entre retas
22
int intersec2d (Ponto k, Ponto l, Ponto m, Ponto n, double &s, double &t)
{double det = (n.x - m.x) * (l.y - k.y) - (n.y - m.y) * (l.x -
k.x);if (det == 0.0) return 0 ; // não há intersecçãos = ((n.x - m.x) * (m.y - k.y) - (n.y - m.y) * (m.x - k.x))/ det ;t = ((l.x - k.x) * (m.y - k.y) - (l.y - k.y) * (m.x - k.x))/ det ;return 1; // há intersecção
}
![Page 23: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/23.jpg)
Computação Gráfica
Retas
• Interseção entre retas
23
N
K
L
Ms
t
Condição para que haja interseção
N
K
L
Ms
t
€
s∈ 0..1[ ]t ∈ 0..1[ ]
![Page 24: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/24.jpg)
Computação Gráfica
Polígonos
• Sequência de vértices
24
1
2
3
4
A
![Page 25: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/25.jpg)
Computação Gráfica
Polígonos
• Determinação de Concavidade
25
1
2
3
4
A
C
B
€
A × B = 0 0 Z1( )C × D = 0 0 Z2( )
Z1 > 0Z2 < 0D
![Page 26: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/26.jpg)
Computação Gráfica
Polígonos
• Determinação de Inclusão
26
Polígonos CôncavosConta-se o número de intersecções
Par: foraÍmpar: dentro
![Page 27: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/27.jpg)
Computação Gráfica
Polígonos
• Determinação de Inclusão
27
Pontos que têm o mesmo Y de vértices de mínimo e máximo local, deve contar duas intersecções
Mínimo/Máximo local tem Y maior ou menos que seus vizinhos
![Page 28: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/28.jpg)
Computação Gráfica
Polígonos
• Determinação de Inclusão
28
ConvexosVerifica-se de que lado está o ponto em relação a cada uma das arestas do polígono
Todos do mesmo lado: dentro
![Page 29: Fundamentos Matemáticos para Computação Gráfica · 2020. 3. 23. · Fundamentos Matemáticos para Computação Gráfica. Márcio SarrogliaPinho. PONTOS, VETORES, RETAS, ETC](https://reader035.vdocuments.site/reader035/viewer/2022062417/6135db340ad5d2067647a4c5/html5/thumbnails/29.jpg)
FIM
Computação Gráfica 2D 33