Computação Gráfica - BolinhaBolinha · 1 Computação Gráfica Ponto, Linha, Vetor e Matriz...
Transcript of Computação Gráfica - BolinhaBolinha · 1 Computação Gráfica Ponto, Linha, Vetor e Matriz...
1
Computação Gráfica
Ponto, Linha, Vetor e Matriz
Prof. Rodrigo [email protected]
Onde Estamos....
Introdução a Computação Gráfica;
Representação de Imagens: vetorial e matricial;
Dispositivos de entrada e saída;
Fundamentos de cor;
Transformações Geométricas no Plano;
Transformações Geométricas no Espaço;
Projeções Geométricas;
Representação e Modelagem;
Realismo Visual;
Introdução aos Filtros Digitais;
Noções de Percepção Visual Humana;
Amostragem e Quantização de Imagens
Transformadas de Imagens
Realce. Filtragem e Restauração
Codificação
Análise de Imagens e Noções de Visão Computacional.
2
Revisão Matemática
Sistema de coordenadas 2D
• Plano cartesiano
• Objetos são representados por coordenadas X,Y
Sistemas de 3D
• Representado por três eixos X,Y,Z
x axis
y axis
Py
x x axis
y axis
z axis
P
y
zx
Ponto, linha
Ponto
• 2D - Representado por um par de coordenadas (X,Y)
• 3D - Representado por um três coordenadas (X,Y,Z)
Linha
• Representada pelo ponto inicial e final 2D - (Xinicial, Yinicial)-(Xfinal,Yfinal)
3D - (Xinicial, Yinicial , Zinicial)-(Xfinal,Yfinal,Zfinal)
• Equação reduzida da reta
• Onde: M = coeficiente ângular
B coeficiente linear (Onde a reta cruza a ordenada (0,w)
bxmy
0
0
xx
yym
end
end
00 xmyb
3
vetor Segmento de reta AB
• comprimento (denominado módulo)
• direção
• sentido (de A para B)
Define-se
• “o conjunto infinito de todos os segmentos orientados que possuem o mesmo comprimento, a mesma direção e o mesmo sentido de AB.”
Para determinar um vetor entre dois pontos, basta subtraí-los
Vetor no espaço 3D
Operação com Vetores
Comprimento do vetor
• 2D 3D
Soma
Multiplicação por Escalar
• Basta multiplicar cada um dos elementos do vetor por um escalar
22|| yx VVV 222|| zyx VVVV
) , ( 212121 yyxx VVVVVV
x axis
y axis
V1
V2
x axis
y axis
V1
V2
V1 + V2
) ,( yx sVsVsV
x axis
y axis
sV
(sVx, sVy)
x axis
y axis
V
(Vx, Vy)
4
Operações com Vetores
Soma
) , ( 212121 yyxx VVVVVV
x axis
y axis
V1
V2
x axis
y axis
V1
V2
V1 + V2
Operações com Vetores
Multiplicação por Escalar
• Basta multiplicar cada um dos elementos do vetor por um escalar
) ,( yx sVsVsV
x axis
y axis
sV
(sVx, sVy)
x axis
y axis
V
(Vx, Vy)
5
Matrizes
Conjunto de números armazenadas em n linhas e m colunas
Operações gráficas são facilitadas com a utilização de matrizes
Operações com matrizes• Multiplicação por escalar
• Exemplo:
602
3410
13111
4321
2.1
7.6
3.4
42
15
23
8
16
4
ishsgs
fsesds
csbsas
ihg
fed
cba
s
***
***
***
*
544842
363024
18126
181614
12108
642
*3
Operações com matrizes
Soma
Multiplicação
• Para multiplicarmos duas matrizes o número de colunas da primeira deve ser igual ao número de linhas da segunda.
ziyhxg
wfveud
tcsbra
zyx
wvu
tsr
ihg
fed
cba
373329
252117
1395
191715
13119
753
181614
12108
642
28
38
4
22
26
3
4*82*2
4*72*5
4*)1(2*0
3*81*2
3*71*5
3*)1(1*0
43
21
8
7
1
2
5
0
326*35*24*1
6
5
4
321
18126
15105
1284
3*62*61*6
3*52*51*5
3*42*41*4
321
6
5
4
6
Matriz
Matriz Transposta
• Invertemos as linhas por colunas
6
5
4
3
2
1
654
321T
Sistemas de Coordenadas
Sistemas de coordenadas diferentes são aplicados na CG
• Coordenadas Universais Sistema cartesiano 2D ou 3D
• Coordenadas Normalizadas Coordenadas mínima e máxima da janela variam de 0 a 1
• Coordenadas de Dispositivos Coordenadas do terminal de vídeo, ex: 800x600
7
Transformações 2D
No trabalho com gráficos existe a necessidade de realizar operações com os objetos, como:
• Translação
• Mudar a escala
• Rotação
Transformações são aplicadas nas coordenadas reais e transformados em coordenadas do dispositivo
• Exemplo: Dispositivo de 1024x768
eixo X
eixo Y
eixo Z
(0, 0, 0) coordenadas universais(512,384,0) coordenadas dispositivos
(512, 384, 0)
(512, -384, 0)
Translação
Reposicionar um objeto linearmente
Mover o objeto de uma posição a outra
• x’ = x + dx;
• y’ = y + dy;
Onde:
– Dx deslocamento no eixo x
– Dy deslocamento no eixo y
Matriz de transformação
Exemplo: transladar o triângulo (4,3)
(x,y)
(x’,y’)
dx
dy
1100
10
01
1
y
x
ty
tx
y
x
8
Escala
Modificar as dimensões do objeto
Todas as coordenadas são multiplicadas
• x’ = Sx * x
• y’ = Sy * y
Matriz de transformação
Exemplo: Escala por(3,2)
1100
00
00
1
y
x
sy
sx
y
x
Rotação
Rotacionar todas as coordenadas
Pontos são rotacionados
sobre a origem
•x’ = x × cosθ – y × sinθ
•y’ = x × sinθ + y × cosθ
Matriz de transformação
Exemplo: •Rotacionar 30º (PI/6)
1100
0cossin
0sincos
1
y
x
y
x
9
Rotação em um ponto
Fazer os seguintes passos:• Transladar para o ponto (0,0)
• Aplicar a rotação
• Transladar para o ponto inicial
Exemplo• Translação (0x,0y)
• Rotação (90º)
• Translação (x,y)
Ajudando ....
10
Cisalhamento / Shearing
Distorcer o objeto nos eixos x ou y• x’ = x + shx * y
• y’ = shy * x + y
Matriz de transformação
Exemplo:• Cisalhamento no eixo x com fator shx=2
1100
01
01
1
y
x
shy
shx
y
x
Reflexão / Espelhamento / Mirror
Produz um objeto espelhado em relação a um dos eixos ou aos dois
• x y xy
• x’ = x x’ = -x x’ = -x
• y’ = -y y’ = y y’ = -y
Matriz de transformação
11
Exercícios 1-) Trace a reta dada pela equação: y=1.5*x + 0.5
2-) Resolva as seguintes operações envolvendo matrizes:
__
__
__
__
__
__
7
4
11
23
6
3T
__
__
__
__
__
__
__
__
7
1
5
19
1
0
2
15
*6
________151415151911
________
________
________
________
51633
09141
5151510
11121016
1015419
189215
63514
011203
__
__
__
__
__
__
17
7
5
15
14
1
8
4
9
3
19
13
__
__
__
__
_________________
_________________
_________________
_________________
3
6
11
4
*
51633
09141
5151510
11121016
__
__
__
__
__________
__________
__________
__________
7
13
19
19
10
0
12
15
*3
4
12
19
4
15
7
8
Exercícios
A-) Faça a translação por (7,3)
B-) Transforme a escala do objeto por 3 em x e 4 em y
13
Exercícios
Faça um cisalhamento no eixo y de Shx=1,0
Exercícios
Faça um cisalhamento no eixo x de Shx=1,0
E no eixo y de Shy=1,5
14
Exercícios
Faça os espelhamentos no eixo x, y e xy simultaneamente.
Exercícios
Faça uma translação(-2,-1), rotação 30º e escala de 0,5
15
Exercícios
Desenvolva um algoritmo que implemente as transformações em 2D estudadas?
Atenção: Sua área de desenho possui o ponto (0,0) no canto superior esquerdo e suas dimensões devem ser dadas pelas constantes larguraX e alturaY.
Exercícios
Enade 2005
16
Exercícios
53. [PosComp 2002 TE] Considere uma cena representada no sistema de referência do universo (SRU), uma window definida pelo par de coordenadas (0,0)-(100,100) e uma viewport definida pelo par de coordenadas (20,30)-(300,100). Considere ainda que as coordenadas que definem window e viewport correspondem, respectivamente, aos limites inferior esquerdo e superior direito de ambas. Analise as afirmativas abaixo levando em consideração os conceitos clássicos de window e viewport e assinale a alternativa correta.
I – Window e viewport estão definidas no SRU.
II – No processo de mapeamento desta window para esta viewport haverá modificação na relação de aspecto.
III – O mapeamento da window redefinida pelo par de coordenadas (0,0) – (50,50) para a mesma viewport (20,30)-(300,100) corresponde a uma operação de zoom out sobre o mesmo universo.
a) As alternativas I e II são verdadeiras.
b) As alternativas I e III são falsas..
c) Apenas a afirmativa III é verdadeira.
d) As afirmativas II e III são verdadeiras.
e) As alternativas I e II são falsas.
Exercícios
57) [PosComp 2004 TE] Considere: todas as etapas do processo de visualização de objetos 2D; uma window delimitada pelo par de coordenadas (0,0)-(60,60); uma viewport delimitada pelo par de coordenadas (0,0)-(100,80); e os seguintes parâmetros de instanciamento, aplicados nesta ordem: (1º) Escala em X: 1, Escala em Y: 2; (2º) Rotação: 0º; (3º) Translação X: 10, Translação Y: 0
Assumindo que, nas opções apresentadas abaixo, os retângulos pontilhados representam a viewport, qual dos desenhos a seguir mais se parece com o desenho do triângulo cuja definição no sistema de referência do universo é dada pelos pares de coordenadas (10,0)-(10,30)-(40,0)? Considere ainda que as coordenadas que definem window e viewport correspondem, respectivamente, aos limites inferior esquerdo e superior direito de ambas.
17
Bibliografia
Livro texto (Programa do Livro texto - PLT)• FORBELLONE, A. Lógica de Programação. São Paulo: Pearson,
2005“
Complementar• CORMEN, Thomas H. Algoritmos: teoria e prática. 1.ed. Rio de
Janeiro: CAMPUS, 2002.
• MANZANO, J. A. N. G. Algoritmos: lógica para desenvolvimento de programação. 1.ed. São Paulo: Erica, 1996.
• ASTÊNCIO, A .F.G.; CAMPOS, E.D.. Fundamentos da Programação de Computadores. 1.ed. São Paulo: PRENTICE HALL BRASIL, 2002.