Você está na página 1de 37

Computao Grfica Parte 04 Pgina 2

Sistemas de Referncia
Um sistema de coordenada denominado de
Sistema de Referncia quando servir para alguma
finalidade especfica;
Aspectos a serem observados na definio de um
sistema de referncia:
Unidade de referncia bsica;
Limites extremos dos valores aceitos para descrever os
objetos.
Alguns sistemas recebem denominao especial:
Sistema de Referncia do Universo SRU;
Sistema de Referncia do Objeto SRO;
Sistema de Referncia Normalizado SRN;
Sistema de Referncia do Dispositivo SRD.
Computao Grfica Parte 04 Pgina 3
Sistemas de Referncia
Sistema de Referncia do Universo SRU
Descreve os objetos em termos das coordenadas utilizadas
pelo usurio em determinada aplicao;
Cada tipo de aplicao especifica o seu universo de
trabalho prprio.
Por exemplo, uma aplicao CAD de arquitetura o universo
dado em metros ou centmetros. Para uma aplicao de
mecnica de preciso, o universo estar em milmetros ou
nanmetros.
Cada um destes sistemas tem uma escala e seus limites
extremos (coordenadas mnimas e mximas do universo).
(50, 30)
(50, 50)
(90, 30)
(90, 50)
Limite: 100 cm
Computao Grfica Parte 04 Pgina 4
Sistemas de Referncia
Sistema de Referncia do Objeto SRO
o sistema de coordenadas onde se definem os modelos
dos objetos da aplicao.
Trata o objeto como um miniuniverso individual;
Cada objeto tem suas particularidades descritas em funo
de seu sistema;
Geralmente o centro do sistema de coordenadas coincide
com o seu centro de gravidade (piv).
(-20,-10)
(-20,10)
(20,-10)
(20,10)
Computao Grfica Parte 04 Pgina 5
Sistemas de Referncia
Sistema de Referncia Normalizado SRN;
Trabalha com coordenadas normalizadas (valores entre 0 e
1, onde 0x 1 e 0 y 1);
Serve como um sistema de referncia intermedirio entre
o SRU e o SRD;
Torna a gerao das imagens independente do dispositivo.
(0.4,0.2)
(0.4,0.0) (0.0,0.0)
(0.0,0.2)
Computao Grfica Parte 04 Pgina 6
Sistemas de Referncia
Sistema de Referncia do Dispositivo SRD
Utiliza coordenadas que podem ser fornecidas diretamente
para um dispositivo de sada especfico;
Em vdeo pode indicar o nmero mximo de pixels que
podem ser acesos ou a resoluo especificada na
configurao do sistema operacional.
Ex. (800 x 600), (1.024 x768)
Nesse caso, a origem o canto superior esquerdo do
dispositivo.
(220,240)
(220,480)
(420,240)
(420,480)
Resoluo 800 x 600
Computao Grfica Parte 04 Pgina 7
Converses entre Sistemas de Referncia
Normalmente quando se cria um modelo as informaes
grficas dizem respeito aplicao e no ao dispositivo.
Para visualizar dados num dispositivo grfico qualquer,
necessrio que se efetue algumas transformaes entre os
sistemas de referncia estudados.
Para tal preciso definir as razes e propores entre cada
um dos sistemas.
O Processo de converso chamado de Mapeamento e
uma das etapas do processo de visualizao de imagens 2D e
3D (a ser visto em breve).
Computao Grfica Parte 04 Pgina 8
Converses entre Sistemas de Referncia
Mapeamento
Permite que se exiba em uma tela, ou em outro dispositivo, um
conjunto de instncias com coordenadas totalmente diferentes
daquelas nas quais a tela est definida.
Nas figuras a seguir pode-se observar um exemplo de um
desenho criado em coordenadas totalmente distintas da tela
sendo mapeado para a mesma
Computao Grfica Parte 04 Pgina 9
Converses entre Sistemas de Referncia
Como fazer o mapeamento de uma imagem?
Limites do SRU Limites do SRD
Mnimo (0,0) (0,0)
Mximo (1000,1500) (640,480)
Computao Grfica Parte 04 Pgina 10
Converses entre Sistemas de Referncia
Componente x:
Computao Grfica Parte 04 Pgina 11
Converses entre Sistemas de Referncia
Componente y:
Ateno para
o sentido do
eixo
As equaes de converso so:
Xd = (Xu * 640)/1000 e Yd =[ (Yu * (-480)/1500)]+480
Computao Grfica Parte 04 Pgina 12
Converses entre Sistemas de Referncia
Exerccio: Considere um SRU com Xu
min
=0 e
Xu
max
=10, Yu
min
=0, Yu
max
=8, e que o objeto definido
pelos pontos abaixo foi mapeado para um dispositivo
de 1280 X 1024.
Apresente as coordenadas do objeto no SRD.
P
1
=(3,2)
P
2
=(4,7)
P
3
=(5,2)
P
4
=(2,6)
P
5
=(6,6)
Computao Grfica Parte 04 Pgina 13
Transformaes Geomtricas 2D
So operaes que podem alterar algumas caractersticas do
objeto a ser desenhado;
Transformaes geomtricas podem ser representadas por
equaes;
Permitem representar um objeto em diversas posies no
espao;
Importante em diversas aplicaes de computao grfica.
Tipos:
Translao
Rotao
Escala
Cisalhamento
Reflexo
Computao Grfica Parte 04 Pgina 14
Translao
Transladar significa movimentar o objeto. Transladamos
um objeto transladando todos os seus pontos.
possvel efetuar a translao de pontos no plano (x,y)
adicionando quantidades s suas coordenadas.
Cada ponto em (x,y) pode ser movido por Tx unidades em
relao ao eixo x, e por Ty unidades em relao ao eixo y.
Transformaes Geomtricas 2D
Tx
Ty
Computao Grfica Parte 04 Pgina 15
Translao
A nova posio do ponto (x,y) passa a ser (x,y), que
pode ser escrito como:
x = x + Tx
y = y + Ty
O mesmo ocorre se o ponto P for definido em 3D pelas
coordenadas (x,y,z).
O ponto p definido por (x,y,z) pode ser reposicionado pelo
uso de fatores de translao.
x = x + Tx
y = y + Ty
z = z + Tz
Com a notao matricial, essa translao ficaria da
seguinte forma:
[x,y,z] = [x,y,z] + [Tx,Ty,Tz]
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 16
Translao
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 17
Transformaes Geomtricas 2D
Escala
Redimensiona o objeto;
Os valores das coordenadas de cada ponto modificado a
partir da multiplicao por fatores de escala;
Se o objeto no estiver definido em relao origem
ocorrer tambm uma translao.
Computao Grfica Parte 04 Pgina 18
Transformaes Geomtricas 2D
Escala
Exemplo:
x = x * S
x
y = y * S
y
Representao no formato matricial:
[x, y] = [x,y] *
De acordo com os valores atribudos a Sx e Sy podem ocorrer
as seguintes situaes:
Se Sx, Sy > 1 objeto ser ampliado;
Se Sx, Sy < 1 objeto ser reduzido;
Se Sx = Sy objeto manter propores relativas em x e y;
Se Sx <> Sy objeto ser deformado.
S
x
0
0 S
y
Computao Grfica Parte 04 Pgina 19
Transformaes Geomtricas 2D
Escala
Computao Grfica Parte 04 Pgina 20
Rotao
Gira o objeto em torno da origem, a partir de um ngulo
Se o objeto no estiver definido na origem, ocorrer
tambm uma translao.
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 21
Rotao
Se um ponto de coordenadas (x,y), distante r = (x
2
+ y
2
)
1/2
da
origem do sistema de coordenadas, for rotacionado de um
ngulo em torno da origem, suas coordenadas, que antes
eram definidas como x = r cos(), y = r sen(), passam a ser
descritas como (x,y) dadas por:
x= r . cos( + ) = r . cos . cos - r . sen . sen
y= r . cos( + ) = r . sen . cos + r . cos . sen
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 22
Rotao
Equivalente a expresso:
x= x cos ( ) y sen ( )
y = y cos ( ) + x sen ( )
As expresses anteriores, podem ser descritas pela
multiplicao do vetor de coordenadas do ponto (x,y) pela
matriz:
Essa matriz denominada matriz de rotao no plano xy por
um ngulo .
Transformaes Geomtricas 2D
cos sen
-sen cos
Computao Grfica Parte 04 Pgina 23
Rotao
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 24
Rotao com eixo fora da origem (ponto
qualquer)
Translao para origem Rotao Translao para a
posio original.
E as novas coordenadas podem ser obtidas a partir de:
X = (X-Xr)*cos - (Y-Yr)* sen
Y = (Y-Yr)*cos + (X-Xr)* sen
(Xr, Yr) o ponto de referncia em torno do qual ser feita a
rotao.
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 25
Reflexo
Tambm conhecida como espelhamento (flip);
Produz um novo objeto espelhado;
Pode ser considerado sobre o eixo vertical ou horizontal, ou
ainda, em torno de ambos os eixos;
Transformaes Geomtricas 2D
Computao Grfica Parte 04 Pgina 26
Reflexo
A reflexo possvel atravs da inverso de coordenadas,
conforme a matriz de transformao adequada:
Reflexo em X (inverso de Y)
Reflexo em Y (inverso de X)
Transformaes Geomtricas 2D
| || |
| || |

| || |


\ \\ \
| || |
( (( (

( (( (



= == =
| || |
| || |

| || |


\ \\ \
| || |
= == =
| || |
| || |

| || |


\ \\ \
| || |


y
x
1 0
0 1
y
x
y
x
| || |
| || |

| || |


\ \\ \
| || |
( (( (

( (( (




= == =
| || |
| || |

| || |


\ \\ \
| || |

= == =
| || |
| || |

| || |


\ \\ \
| || |


y
x
1 0
0 1
y
x
y
x
Computao Grfica Parte 04 Pgina 27
Reflexo
Reflexo em torno da origem XY
Transformaes Geomtricas 2D
-1 0 0
0 -1 0
0 0 1
Computao Grfica Parte 04 Pgina 28
Transformaes Geomtricas 2D
Cisalhamento
Cisalhamento (Shearing ou Skew) uma transformao
que distorce o formato do objeto;
Deforma o objeto linearmente, ao longo do eixo X, do
eixo Y ou de ambos.
x = x + S
x
y
y = y + S
y
x
Computao Grfica Parte 04 Pgina 29
Transformaes Geomtricas 2D
Cisalhamento
Uma distoro na direo x, proporcional a coordenada y,
pode ser produzida com a seguinte matriz de transformao:
Nesse exemplo, as coordenadas do objeto so
transformadas da seguinte forma:
x = x + Sy, y = y e z = z
S um valor fixo qualquer.
1 0 0
S 1 0
0 0 1
Computao Grfica Parte 04 Pgina 30
Transformaes Geomtricas 2D
A ordem das transformaes
A questo deve ser considerada na composio de matrizes;
A ordem da multiplicao das matrizes, assim como da
aplicao das transformaes geomtricas, altera a matriz
resultante.
Computao Grfica Parte 04 Pgina 31
Transformaes Geomtricas 2D
A ordem das transformaes
10 20
20
10
10 20
20
10
Escala 1.5
10 20
20
10
Rotao 45
o
10 20
20
10
20
10
Escala 1.5
10 20
20
10
Rotao 45
o
10 20
Computao Grfica Parte 04 Pgina 32
Transformaes Geomtricas 2D
A ordem das transformaes
10 20 10 20
20
10
Transl. (10,10)
10 20
20
10
Escala 1.5
10 20
20
10
Escala 1.5
10 20
20
10
10 20
20
10
20
10
Transl. (10,10)
Computao Grfica Parte 04 Pgina 33
Transformaes Geomtricas 2D
Coordenadas Homogneas
A aplicao sucessiva de vrias composies pode levar
perda de preciso, alm de uma evidente sobrecarga de
clculos.
As transformaes compostas podem ser mais otimizadas
com o uso de coordenadas homogneas.
Coordenadas homogneas so uma representao
especial de pontos, vetores e matrizes a qual facilita a
generalizao das operaes entre esses tipos de objetos.
A idia representar um ponto (x,y) por (x,y,h), onde h
assume o valor da unidade (x,y,1).
Ao se expressar posies em coordenadas homogneas, as
equaes de transformaes geomtricas ficam reduzidas a
multiplicao de matrizes de 3 X 3 elementos.
Computao Grfica Parte 04 Pgina 34
Transformaes Geomtricas 2D
Coordenadas Homogneas
As coordenadas originais so representadas por colunas
(vetores) de trs elementos:
Translao
Rotao
Escala
(
(
(

(
(
(

=
(
(
(

1
y
x
.
1 0 0
Ty 1 0
Tx 0 1
1
y
x
(
(
(

(
(
(


=
(
(
(

1
y
x
.
1 0 0
0 cos sen
0 sen cos
1
y
x


(
(
(

(
(
(

=
(
(
(

1
y
x
.
1 0 0
0 Sy 0
0 0 Sx
1
y
x
P=T(Tx,Ty) . P
P=R() . P
P=S(Sx,Sy) . P
Computao Grfica Parte 04 Pgina 35
Transformaes Geomtricas 2D
Coordenadas Homogneas - Concatenaes
Translao Se duas translaes sucessivas so
aplicadas a uma posio P, a posio P dada por
P=T(Tx
1
,Ty
1
) . {T(Tx
2
,Ty
2
) . P} = {T(Tx
1
,Ty
1
) .
T(Tx
2
,Ty
2
)}.P
Na forma matricial:
(
(
(

+
+
=
(
(
(

(
(
(

1 0 0
Ty Ty 1 0
Tx Tx 0 1
1 0 0
Ty 1 0
Tx 0 1
.
1 0 0
Ty 1 0
Tx 0 1
1 2
1 2
1
1
2
2
Ou T(Tx
1
,Ty
1
) . T(Tx
2
,Ty
2
). = T(Tx
1
+ Tx
2,
, Ty
1
+Ty
2
)
As translaes consecutivas so aditivas.
Computao Grfica Parte 04 Pgina 36
Transformaes Geomtricas 2D
Coordenadas Homogneas - Concatenaes
Rotao Se duas rotaes sucessivas so aplicadas a uma
posio P, a posio P dada por P=R(
1
) . {R(
2
). P} =
{R(
1
) . {R(
2
)}.P
Na forma matricial:
=
(
(
(


(
(
(


1 0 0
0 cos sen
0 sen cos
.
1 0 0
0 cos sen
0 sen cos
2 2
2 2
1 1
1 1




(
(
(

+ +

1 0 0
0 cos cos sen sen sen cos cos sen
0 cos sen sen cos sen sen cos cos
2 1 2 1 2 1 2 1
2 1 2 1 2 1 2 1


) ( sen sen cos cos sen
) cos( sen sen cos cos
2 1 2 1 2 1
2 1 2 1 2 1


+ = +
+ =
Como:
Computao Grfica Parte 04 Pgina 37
Transformaes Geomtricas 2D
Coordenadas Homogneas - Concatenaes
Rotao (Cont.)
(
(
(

+ +
+ +
=
(
(
(


(
(
(


1 0 0
0 ) cos( ) ( sen
0 ) ( sen ) cos(
1 0 0
0 cos sen
0 sen cos
.
1 0 0
0 cos sen
0 sen cos
2 1 2 1
2 1 2 1
2 2
2 2
1 1
1 1






Ento:
Ou R(
1
) . R(
2
) = R(
1
+
2
)
As rotaes consecutivas so aditivas.
Computao Grfica Parte 04 Pgina 38
Transformaes Geomtricas 2D
Coordenadas Homogneas
Escala - Se duas escalas sucessivas so aplicadas a uma
posio P, a posio P dada por P=S(Sx
1
,Sy
1
) .
{T(Sx
2
,Sy
2
) . P} = {S(Sx
1
,Sy
1
) . S(Sx
2
,Sy
2
)}.P
(
(
(

(
(
(

1 0 0
0 Sy 0
0 0 Sx
.
1 0 0
0 Sy 0
0 0 Sx
(
(
(

=
(
(
(

(
(
(

1 0 0
0 Sy Sy 0
0 0 Sx Sx
1 0 0
0 Sy 0
0 0 Sx
.
1 0 0
0 Sy 0
0 0 Sx
2 1
2 1
1
1
2
2
Ou S(Sx
1
,Sy
1
) . S(Sx
2
,Sy
2
). = S(Sx
1
Sx
2,
, Sy
1
Sy
2
)
As escalas consecutivas so multiplicativas.