You are on page 1of 31

TRANSFORMACIONES

GEOMÉTRICAS
EN 2D
Introducción a las transformaciones
2D
• Un Sistema gráfico debería permitir la definición de
objetos o imágenes que incluyan una serie de
transformaciones.
• Estas transformaciones son el medio para construir
o modificar imágenes u objetos.
• Una rotación, traslación y escalamiento entre otras,
son tales transformaciones.
• Cada transformación utiliza un punto (x, y) para
generar un nuevo punto (x’, y’).
Transformaciones en dos
dimensiones
Los objetos se definen mediante un conjunto de
puntos. Las transformaciones son procedimientos para
calcular nuevas posiciones de estos puntos, cambiado
el tamaño y orientación del objeto.
Las operaciones básicas de transformación son
 Traslación
 Escalamiento
 Rotación.
Traslación
Las coordenadas (x, y) de un objeto se transforman a (x', y')
de acuerdo a las fórmulas:
x '  x  Tx , y '  y  Ty
El par (Tx, Ty) se conoce como vector de traslación.
y y

x x
(b)
(a)
Escalamiento
El escalamiento modifica el tamaño de un polígono. Para
obtener este efecto, se multiplica cada par coordenado (x, y)
por un factor de escala en la dirección x y en la dirección y
para obtener el par (x', y').
Las fórmulas son
x'  x  Sx y'  y  Sy
y y

x x
(b)
(a)
Escalamiento respecto a un punto
fijo
Se puede llevar a cabo un escalamiento respecto a un punto
fijo trasladando primero ese punto al origen, después
escalando y luego regresando el objeto a la posición original.
Las ecuaciones son
x'  x F   x  x F  S x , y'  y F   y  y F  S y
y y
Reacomodando

x '  x  S x  1  S x  x F (x ,y )

y '  y  S y  1  S y  y F
F F

x x
(b)
(a)
Rotación
La rotación gira los puntos de una figura alrededor de un punto
fijo. De la figura se obtiene
x '  r cos      r cos  cos   r sen  sen 
y '  r sen      r sen  cos   r cos  sen 
y
Simplificando
(x', y')
x '  x cos  y sen 
y '  y cos  x sen  r
(x, y)
r


x
Rotación respecto a un punto
arbitrario
La rotación respecto a un punto arbitrario es
y

x '  x R   x  x R  cos    y  y R  sen 


y '  y R   y  y R  cos    x  x R  sen 

(x ,y )
R R
Coordenadas homogéneas
Para poder representar las tres transformaciones en forma
matricial como producto de matrices, es necesario representar
los puntos en coordenadas homogéneas.
Estas coordenadas agregan una tercer componente a las
coordenadas bidimensionales. De tal forma que, un punto (x, y)
pasa a ser (x, y, W). El punto en coordenadas Cartesianas
representado por esta tríada es el (x/W, y/W). El valor de W es
generalmente 1.
Representación matricial de
traslaciones
Haciendo uso de coordenadas homogéneas la traslación puede
representarse como:
1 0 0
 
 x' y ' 1   x y 1  0 1 0
T Ty 1
 x
En forma abreviada la transformación se representará por T(Tx, Ty)

1 0 0

T Tx , Ty  
 0 1 0


P'  P  T Tx , Ty 
T Ty 1
 x
Representación matricial de
escalamientos
Haciendo uso de coordenadas homogéneas el escalamiento
puede representarse como:
S x 0 0
 
 x' y ' 1   x y 1  0 Sy 0
 0 0 1
En forma abreviada la transformación se representará por S(Sx, Sy)

S x 0 0

S Sx , S y  
0 Sy 0
 
P'  P  S S x , S y 
 0 0 1
Representación matricial de
rotaciones
Haciendo uso de coordenadas homogéneas la rotación puede
representarse como:
 cos  sen  0
 
 x' y ' 1   x y 1  sen  cos  0
 0 0 1
En forma abreviada la transformación se representará por R()

 cos  sen  0
 
R     sen  cos  0 P'  P  R  
 0 0 1
Composición de
transformaciones
Para aplicar varias transformaciones a un conjunto de puntos
basta con combinar las matrices de transformación en una sola,
mediante multiplicación matricial. En caso de tener solo
transformaciones del mismo tipo, la combinación sigue reglas
muy simples.
Traslación:     
T Tx1 , Ty1  T Tx 2 , Ty 2  T Tx1  Tx 2 , Ty1  Ty 2 
Escalamiento:     
S S x 1 , S y1  S S x 2 , S y 2  S S x 1  S x 2 , S y 1  S x 2 
R 1   R 2   R 1  2 
Rotación:
Escalamiento respecto a un punto
fijo en forma matricial
Para llevar a cabo un escalamiento respecto a un punto fijo, se
procede multiplicando una matriz de traslación para llevar el
punto fijo al origen por una de escalamiento y posteriormente
por otra de traslación para llevar al punto fijo a su posición
original.
 1 0 0  S x 0 0  1 0 0
     
 0 1 0   0 Sy 0   0 1 0
 x F  yF 1  0 0 1  x F yF 1
 Sx 0 0
 
 0 Sy 0

 1  S x  x F 1  S  y
y F

1
(x ,y )
F F

(b)
(a)
Traslada de manera que el
Objeto original y punto fijo
punto fijo quede en el origen

(x ,y )
F F

(c) (d)
Escala el objeto respecto al origen Traslada de manera que el
punto fijo quede en la posición
original
Rotación respecto a un punto fijo
en forma matricial
Para llevar a cabo una rotación respecto a un punto fijo, se
procede multiplicando una matriz de traslación para llevar el
punto fijo al origen por una de rotación y posteriormente por
otra de traslación para llevar al punto fijo a su posición
original.
 1 0 0  cos sen 0  1 0 0
 0 1 0    sen cos 0   0 1 0 
     
 x R  y R 1  0 0 1  x R y R 1
 cos sen 0
   sen cos 0
1  cos  x R  y R  sen 1  cos  y R  x R  sen 1
(x ,y )
R R

(b)
(a)
Traslada de manera que el
Objeto original y punto fijo
punto fijo quede en el origen

(x ,y )
R R

(c) (d)
Rota el objeto respecto al origen Traslada de manera que el
punto fijo quede en la posición
original
Forma general
En general una transformación que utilice traslaciones,
escalamientos y rotaciones tendrá la forma:

a d 0
 
 x' y ' 1   x y 1  b e 0
 c f 1
Por tanto, el cálculo de las coordenadas transformadas se
podrá hacer con las siguientes ecuaciones

x'  ax  by  c
y '  dx  ey  f
Otras transformaciones

Otras transformaciones que permiten llevar


a cabo operaciones muy útiles, estas son:
 Reflexiones
 Corte.
Reflexiones en x y y
Las reflexiones respecto al eje x y y se obtienen con las matrices
siguientes:
1 0 0   1 0 0
   
0  1 0   0 1 0
0 0 1  0 0 1

Posición original

Posición original Posición reflejada

Posición reflejada

(a) (b)
Reflexión respecto al origen
La reflexión respecto al origen Posición original
se obtiene con :

  1 0 0
 
 0  1 0
 0 0 1
Posición reflejada
(a)
Reflexión respecto a la recta y =
x
Una reflexión respecto a la recta y = x, puede obtenerse en tres
pasos: girar un ángulo de 45 en el sentido de las manecillas del
reloj, una reflexión respecto al eje x, y una rotación de 45 grados
en contra del sentido del reloj.
0 1 0
 
 1 0 0 
0 0 1
Posición original Posición original

Posición reflejada

(a) Rotación de -45 grados (b) Reflexión respecto a x. (a) Rotación de 45 grados
Corte en x
El corte produce una deformación similar al deslizamiento de
una capa sobre otra. El corte en x se produce por la matriz:

 1 0 0
 
 SH x 1 0
 0 0 1
y y

(2,1) (3,1)
(0,1) (1,1)

x x
(0,0) (1,0) (0,0) (1,0)

(a) (b)
Corte en y
El corte en y se produce por la matriz

1 SH y 0
 
0 1 0
0 0 1

(1,3)

y y
(1,2)
(0,1) (1,1) (0,1)

x x
(0,0) (1,0) (0,0)

(a) (b)
Transformaciones Ventana-
Puerto de visión
Las transformaciones ventana-puerto de visión, mapean puntos
en el mundo real a puntos en la pantalla.

Puerto de visión 2

Puerto de visión 1

Ventana

Coordenadas mundiales Coordenadas de pantalla


Transformaciones de visión
(xmax, ymax)

(xmin, ymin)

Ventana en coordenadas mundiales Ventana trasladada al origen


(umax, vmax)

(umin, vmin)

Ventana escalada al tamaño Traslación hasta la posición final.


del área de visión.
Transformaciones de visión
(continuación)
 umax  umin vmax  vmin 
M WV  T   xmin , ymin   S  ,   T  umin , vmin 
 xmax  xmin ymax  ymin 

 umax  u min 
x  x 0 0
 1 0 0  max min   1 0 0
vmax  vmin
  0 1 0   0 0   0 1 0
 ymax  ymin 
 xmin  ymin 1  0 0 1 umin vmin 1
 
 
Transformaciones de visión
(continuación)

 umax  umin 
 0 0
 xmax  xmin 
vmax  vmin
M WV  0 0
 ymax  ymin 
 umax  umin vmax  vmin 
 xmin  umin  ymin  vmin 1
 xmax  xmin ymax  ymin 
Ejemplo
Las transformaciones complejas deben ser
descritas como composición de una más
simples. Suponga que queremos derivar una
transformación que rote un punto en el sentido
de las manecillas del reloj, un Ángulo θ con
respecto al punto (Rx, Ry).
Primero debemos trasladar el punto para que
(Rx, Ry) se convierta en el origen, esto es:
[x’, y’ , 1] = [x, y , 1] 1 0 0
0 1 0
-Rx –Ry 1
Posteriormente se aplica la rotación.

[x’’, y’’ , 1] =[x’, y’ , 1] cosθ -sen θ 0


sen θ cos θ 0
0 0 1

Finalmente, trasladamos el punto para que el origen sea trasladado


(Rx, Ry).
[x’’’, y’’’ , 1] = [x’’, y’’ , 1] 1 0 0
0 1 0
Rx Ry 1
Esto se podría haber realizado mediante una composición de
transformaciones.

[x’’’, y’’’ , 1] =

= [ x, y , 1] 1 0 0 cosθ -sen θ 0 1 0 0
0 1 0 sen θ cos θ 0 0 1 0
-Rx –Ry 1 0 0 1 Rx Ry 1

Si los valores de Rx, Ry y θ se conocen, las tres matrices se


pueden multiplicar para obtener una sola matriz de transformación.
Ejercicio: Obtener la matriz de transformación final.

You might also like