Você está na página 1de 33

Computao Grfica

Leonardo Bravo Estcio - leonardo.bravo.estacio@gmail.com


Centro Universitrio da Grande Dourados UNIGRAN
Curso - Engenharia de Software
18/08/2016
+

Tpicos

Aula de hoje:
Vetores, matrizes e alguns conceitos bsicos.

Vetores, matrizes e alguns


conceitos bsicos
Achava que lgebra linear e geometria analtica no serviam para nada?

Transformaes geomtricas
As transformaes geomtricas so operaes que podem ser
utilizadas visando a alteraes de algumas caractersticas como
posio, orientao, forma ou tamanho de objetos a serem
desenhados.
Para entendermos melhor isso, primeiramente faremos um resumo a
respeito de vetores e matrizes.
Em seguida veremos transformaes em objetos formados por essas
estruturas.

Reviso - Vetores
Um vetor basicamente um segmento de reta orientado.
Sentido
Direo
Tamanho

Vetores so representados geometricamente sempre saindo da


origem de um sistema de coordenadas.

Reviso - Vetores
Somando (ou subtraindo) um vetor com um ponto, temos um ponto.
Somando (ou subtraindo) um vetor com um vetor, temos um outro vetor.
O mdulo de um vetor representa seu tamanho, comprimento.
Um versor um vetor de mdulo = 1.
O produto escalar nos d um nmero (escalar) resultante de dois vetores. Esse escalar
pode nos dar informaes importantes a respeito do comportamento desses vetores,
como por exemplo, o ngulo que eles formam.

Reviso - Vetores
O produto escalar representado por um ponto entre os vetores.
Sejam u e v vetores, o produto escalar representado por:

u.v = ||u||.||v||.cos

Nesse caso, o comprimento projeo do vetor A sobre o vetor B ||A||.cos

Reviso - Matrizes

Cada linha de um sistema linear Ax=b, onde A uma matriz, x e b


so vetores, pode ser representada atravs de uma equao.

x 2y 4
x 4y 8
2x 3y 6
y2

4

8

4 x

2 3 y
6


2
0 1

Reviso - Matrizes
Manipulaes de objetos grficos normalmente envolvem muitas
operaes de aritmtica simples.
As matrizes so muito usadas nessas manipulaes porque so
mais simples de usar e entender do que as equaes algbricas.
O que explica o fato de nos da rea da informtica e os
engenheiros utilizar tanto essas estruturas.

10

Reviso - Matrizes
Vetores e matrizes so parecidos com o modelo organizacional da
memria dos computadores. Suas representaes se relacionam
diretamente com essas estruturas de armazenamento.
Isso facilita o trabalho dos programadores e permite maior
velocidade em aplicaes como jogos e realidade virtual.

11

Reviso Matrizes Matriz de Transformao


Devido ao padro de coordenadas usualmente adotado para
representao de pontos no plano (x,y) e no espao tridimensional
(x, y, z), pode ser conveniente manipular esses pontos por matrizes
de duas e trs dimenses.
Atravs de matrizes e de uma multiplicao, podemos representar
todas as transformaes lineares 2D e 3D. Vrias transformaes
podem ser combinadas resultando em uma nica matriz
denominada matriz de transformao.

12

Matriz de transformao - Translao


Transladar significa movimentar o objeto sem alterar suas
caractersticas;
Transladamos um objeto
coordenadas (ou vetores);

adicionando

valores

em

suas

Assim, movemos o objeto por um determinado sistema de


coordenadas.

13

Matriz de transformao - Translao


Para transladas aplicamos as matrizes de transformao nas
coordenadas cartesianas (ou vetores) do objeto.

1 0 x

0 1 y
0 0 1

0
0

0 0

1 0 y
0 1 z

0 0 1

Vulgo 2D

Vulgo 3D

14

Matriz de transformao - Translao

(6,4)
(2,3)

(1,1)

(5,2)
(3,1)

(7,2)

15

Matriz de transformao - Translao


Exemplo com matriz no quadro.

16

Matriz de transformao - Escala


Escalonar significa aumentar ou diminuir o tamanho de um
objeto.
Para isso, precisamos multiplicar os valores de suas coordenadas
(ou vetores) por um fator de escala.
Assim, escalonamos um objeto por um determinado sistema de
coordenadas.

17

Matriz de transformao - Escala


Para escalonar aplicamos as matrizes de transformao nas
coordenadas cartesianas (ou vetores) de um objeto.

Sx

S y

x Sx x

S
y
y
y

Sx

0
0

0
Sy
0

0
S z

x Sx x

. y S y y
z S z
z

Vulgo 2D

Vulgo 3D

18

Matriz de transformao - Escala


(7,6)

(2,3)

(5,2)
(1,1)

(3,1)

(9,2)
Porque a imagem mostra o
efeito de escala e o de
translao?

19

Matriz de transformao - Escala


Exemplo com matriz no quadro.

20

Matriz de transformao - Rotao


Rotacionar significa girar.
Para rotacionar um objeto e manter a sua posio espacial,
precisamos considerar ele na origem de um sistema de
coordenadas.
Desta maneira, conseguimos que ele fique com o mesmo ponto
central que anteriormente.

21

Matriz de transformao - Rotao

22

Matriz de transformao - Rotao


Para rotacionar aplicamos a matriz de transformao nas
coordenadas cartesianas (ou vetores) de um objeto.

cos

sin

x' x cos y sin

y ' y cos x sin


2
Vulgo 2D

sin
cos

23

Matriz de transformao - Rotao

24

Matriz de transformao - Rotao


Exemplo com matriz no quadro.

25

Matriz de transformao - Rotao


O que vai acontecer caso utilizemos ngulos no quadrados?

35o

45o

170o

26

Aliasing Matriz de transformao - Rotao


Multiplicando as coordenadas da imagem de origem pelos valores dos senos e
cosenos teremos nmeros reais. E, como em uma matriz no existem
coordenadas com ponto flutuante, precisamos arredondar esses valores.
s vezes esse nmero arredondado acaba caindo no mesmo local de destino
de outro pixel. Sobrepondo esses valores teremos as informaes perdidas
durante o processamento. Essas informaes perdida resultam nos furos da
imagem.
Esse um problema de Aliasing.

27

Aliasing em computao grfica ocorre quando a sntese da


imagem (rendering) ou o processamento desejado no produz
informaes suficientes para gerar uma imagem precisa.

28

O que fazer para resolver?


H uma variedade de solues.
Uma delas fazer Oversample na imagem de origem. Podemos fingir que cada um
dos pixels na imagem original realmente uma grade de pixels menores (todas da
mesma cor) n x n, e calcular as coordenadas de destino de cada um desses subpixels.
Outra maneira mais refinada chamada de rea de Mapeamento. uma inverso
de problema onde, cada pixel de destino, achamos alguns pixels parciais de origem
para sua definio. A cor no pixel de destino calculada pela mdia desses pixels
parciais de origem considerando uma rea ponderada. O algoritmo no s garante
que no existem lacunas no destino, mas tambm corrige as cores (assegurando tanto
uma imagem mais suave como a manuteno do brilho mdio da imagem).

29

Curiosidade: Uma outra forma de efetuar rotaes


Existe um mtodo bastante elegante que foi utilizado h muitos
anos quando o poder de computao (e memria) era muito
escasso e cada ciclo do processador valia ouro.
Ele chamado o mtodo de rotao de trs cisalhamentos.
to inteligente que vale a pena partilhar alguns detalhes.

30

Curiosidade: Uma outra forma de efetuar rotaes


Para rotacionar agora aplicamos trs matriz de transformao nas
coordenadas cartesianas (ou vetores) de um objeto.
Esse o algoritmo de Alan Paeth escrito no artigo A Fast
Algorithm for General Raster Rotation de 1986.

x' 1 tan( / 2)

1
y' 0

1
sin

0 1 tan( / 2)

1 0
1

x

y

31

32

Curiosidade: Uma outra forma de efetuar rotaes


S a rotao em si no previne o problema de aliasing, porm em
seu artigo Alan Paeth apresenta formas de se corrigir algum
desses problemas na implementao.

At mais galera!
Computao Grfica

Leonardo Bravo Estcio - leonardo.bravo.estacio@gmail.com


Centro Universitrio da Grande Dourados UNIGRAN
Curso - Engenharia de Software
18/08/2016
+