Anda di halaman 1dari 11

1

ElMundo2D
. VyGLab DCIC - UNS CG 2011
VyGLab Lab. de Investigacin y Desarrollo en Visualizacin
y Computacin Grfica
Dpto. de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur
Introduccin
Los distintos procedimientos que vimos para mostrar las
primitivas de salida y sus atributos nos permiten crear una
gran variedad de imgenes y grficos.
A partir de estas primitivas podemos generar escenas 2D,
cambiando, por ejemplo, orientaciones y tamao de las
distintas componentes; tambin podemos generar
animaciones moviendo los objetos en la escena a lo largo de
distintos caminos.
. VyGLab DCIC - UNS CG 2011
Estos cambios en orientacin, tamao y forma se llevan a
cabo mediante transformaciones geomtricas que alteran las
descripciones de las coordenadas de los objetos.
2
Introduccin
La traslacin, la rotacin, el escalado y el sesgado son
ejemplos de transformaciones geomtricas. Estas
transformaciones son lineales; tambin podemos usar
t f i li l transformaciones no lineales.
Veremos primero cmo llevar a cabo estas transformaciones y
luego, a partir de esto, veremos cmo podemos crear escenas
2D a partir de stas y de objetos primitivos.
. VyGLab DCIC - UNS CG 2011
Transformaciones
Las transformaciones geomtricas nos permiten mapear
puntos de una regin a otra
y pueden aplicarse a:
. VyGLab DCIC - UNS CG 2011
Primitivas de dibujado
Coordenadas de pixel de una imagen
3
Transformaciones
Las transformaciones geomtricas nos permitirn, entre otras
cosas,
Mapear puntos de un sistema de coordenadas en otro.
Cambiar la forma de los objetos
Posicionar objetos en una escena
Crear mltiples copias de objetos en la escena
Proyectar escenas tridimensionales en la pantalla
Crear animaciones
. VyGLab DCIC - UNS CG 2011

Transformaciones Geomtricas en 2D
Traslacin
Esta operacin se usa para mover un objeto o grupo de
objetos de manera lineal a una nueva ubicacin en el espacio
bidimensional.
. VyGLab DCIC - UNS CG 2011
(

+
(

=
(

y
x
t
t
y
x
y
x
1 0
0 1

Trasladar un objeto una distancia t


x
en x y una distancia t
y
en y se
expresa como:
y
x
t y y
t x x
+ =
+ =

4
Transformaciones Geomtricas en 2D
Escalado
Es una transformacin que permite cambiar el tamao o
la proporcin de un objeto o grupo de objetos. Hay escalados
proporcionales y no proporcionales. p p y p p
. VyGLab DCIC - UNS CG 2011
Escalar un objeto en e
x
segn x y en e
y
segn y se expresa como:
(

=
(

y
x
e
e
y
x
y
x
0
0

y e y
x e x
y
x
=
=

Transformaciones Geomtricas en 2D
Sesgado
Un objeto se puede sesgar tanto en sentido horizontal
como en sentido vertical.
. VyGLab DCIC - UNS CG 2011
Sesgar un objeto en sentido horizontal se expresa como:
(

=
(

y
x a
y
x
1 0
1

y y
ay x x
=
+ =

5
Transformaciones Geomtricas en 2D
Rotacin
Esta transformacin geomtrica se usa para mover un
objeto o grupo de objetos alrededor de un punto.
. VyGLab DCIC - UNS CG 2011
Rotar un objeto un ngulo en sentido horario se expresa como:
(


=
(

y
x
y
x
o o
o o
cos sin
sin cos

o o
o o
cos sin
sin cos

y x y
y x x
+ =
=
Transformaciones Geomtricas en 2D
La matriz de rotacin tiene ciertas
propiedades
(
(


=
(

y
x
y
x
o o
o o
cos sin
sin cos

La norma de cada fila es uno:


Las filas son ortogonales :
( ) ( ) 1 cos sin
2 2
= + o o
( ) 0 cos sin sin cos = + o o o o
. VyGLab DCIC - UNS CG 2011
Decimos que las matrices de rotacin son ortonormales.
Teniendo esto en cuenta vemos entonces que la inversa de una
matriz ortonormal es su traspuesta.
6
Transformaciones Geomtricas en 2D
Las transformaciones de traslacin y rotacin se conocen
como transformaciones de cuerpo rgido. Estas
transformaciones preservan las distancias y los ngulos.
Si a las transformaciones de cuerpo rgido les adicionamos las
transformaciones de reflexin y escalado uniforme, tenemos
las transformaciones de similaridad. stas preservan los
. VyGLab DCIC - UNS CG 2011
p
ngulos, las distancias entre puntos cambian en una
proporcin fija y se mantiene una forma similar (tringulos
similares, crculos mapean a crculos, ).
Transformaciones Geomtricas en 2D
Si a las transformaciones de similaridad les adicionamos las
transformaciones de deslizamiento (shear) y escalado no
uniforme, tenemos las transformaciones afines.
. VyGLab DCIC - UNS CG 2011
stas preservan las lneas paralelas.
7
Transformaciones Geomtricas en 2D
Dado un polgono y su normal, se escala ste en segn x.
Cmo debe transformarse la normal para que siga siendo
normal al mismo?
. VyGLab DCIC - UNS CG 2011
Cul es la matriz de transformacin que debe usarse? Por
qu?
Si tenemos las transformaciones :
Transformaciones Geomtricas en 2D
|
|
.
|

\
|
+
|
|
.
|

\
|
|
|
.
|

\
|
=
|
|
.
|

\
|
y
x
t
t
y
x
y
x
*
1 0
0 1

|
|
.
|

\
|
|
|
.
|

\
|
=
|
|
.
|

\
|
y
x
e
e
y
x
y
x
*
0
0

|
|
.
|

\
|
|
|
.
|

\
|
=
|
|
.
|

\
|
y
x
y
x
*
cos sin
sin cos

o o
o o
. VyGLab DCIC - UNS CG 2011
podemos escribir cada punto transformado como:
p =p+T
p =Ep
p =Rp
8
Transformaciones Geomtricas en 2D
Qu ocurre cuando queremos realizar una determinada
transformacin con respecto a un punto cualesquiera?
. VyGLab DCIC - UNS CG 2011
Supongamos que queremos rotar 90 grados con respecto al punto
(1.5,5)
Transformaciones Geomtricas en 2D
No podemos aplicar las frmulas que vimos
directamente ya que definen rotaciones con
respecto al origen.
Cmo se ubicara la casita si aplicamos la transformacin que
vimos?
Qu pasos debemos seguir para
lograr nuestro objetivo?
. VyGLab DCIC - UNS CG 2011
9
|
|

|
|
|

|
|
|

| 0 1 x t x
x
Escribimos las transformaciones como:
|
|

|
|
|

|
|
|

| 0 0 x e x
x
|
|

|
|
|

|
|
|

| 0 sin cos x x o o
Transformaciones Geomtricas en 2D
|
|
|
.

\
|
|
|
.

\
=
|
|
|
.

\
1
*
1 0 0
1 0
1
y t y
y
As podemos escribir cada punto como:
|
|
|
.

\
|
|
|
.

\
=
|
|
|
.

\
1
*
1 0 0
0 0
1
y e y
y
|
|
|
.

\
|
|
|
.

\
=
|
|
|
.

\
1
*
1 0 0
0 cos sin
1
y y o o
. VyGLab DCIC - UNS CG 2011
Estamos trabajando en coordenadas homogneas.
p =Tp
p =Ep
p =Rp
Al poder escribir cada punto como:
p =Tp
p =Ep
p =Rp
Transformaciones Geomtricas en 2D
podemos aplicar sucesivas transformaciones a un punto concatenando las
matrices de transformacin, incluida la traslacin. Para responder a la
pregunta:
p = T p p=Rp p=T p
Aplicamos las transformaciones del siguiente modo:
Qu transformaciones tenemos que aplicar si queremos rotar un objeto
alrededor de un punto cualesquiera?
. VyGLab DCIC - UNS CG 2011
p =T
1
pp =Rp p =T
1
p
p=T
1
R p
p=T
1
R T
1
p

Las matrices aparecen en orden reverso al que son aplicadas las transformaciones.
10
L t i d t f i li d t
Dadas las transformaciones:
p=T
1
R T
1
p
Transformaciones Geomtricas en 2D
La matriz de transformacin que se aplica a cada punto es:
Esto significa que estamos haciendo primero la translacin T
1
, luego la
rotacin R y luego la translacin T
1
.
M
T
=T
1
R T
1
. VyGLab DCIC - UNS CG 2011
El orden importa! Recuerden que
AB BA
Ejemplo:
Se aplican las transformaciones de rotacin de 90 y reflexin sobre x.
Transformaciones Geomtricas en 2D
. VyGLab DCIC - UNS CG 2011
11
. VyGLab DCIC - UNS CG 2011

Anda mungkin juga menyukai