Está en la página 1de 31

TRANSFORMACIONES GEOMTRICAS EN 2D

Introduccin a las transformaciones 2D


Un Sistema grfico debera permitir la definicin de objetos o imgenes que incluyan una serie de transformaciones. Estas transformaciones son el medio para construir o modificar imgenes u objetos. Una rotacin, traslacin y escalamiento entre otras, son tales transformaciones. Cada transformacin 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 tamao y orientacin del objeto. Las operaciones bsicas de transformacin son Traslacin Escalamiento Rotacin.

Traslacin
Las coordenadas (x, y) de un objeto se transforman a (x', y') de acuerdo a las frmulas:

x ' ! x  Tx ,

y ' ! y  Ty

El par (Tx, Ty) se conoce como vector de traslacin.


y y

x (a) (b)

Escalamiento
El escalamiento modifica el tamao de un polgono. Para obtener este efecto, se multiplica cada par coordenado (x, y) por un factor de escala en la direccin x y en la direccin y para obtener el par (x', y'). Las frmulas son

x ! x Sx
y

y ! y Sy
y

x (a) (b)

Escalamiento respecto a un punto fijo


Se puede llevar a cabo un escalamiento respecto a un punto fijo trasladando primero ese punto al origen, despus escalando y luego regresando el objeto a la posicin original. Las ecuaciones son

x ' ! x F  x  x F S x , y ' ! y F  y  y F S y
Reacomodando
y y

x' ! x S x  1  S x x F y' ! y S y  1  S y y F
(a)

(x

,y

x (b)

Rotacin
La rotacin gira los puntos de una figura alrededor de un punto fijo. De la figura se obtiene
x ' ! r cos J  U ! r cos J cos U  r sen J sen U y ' ! r sen J  U ! r sen J cos U  r cos J sen U
y (x', y')

Simplificando

x ' ! x cosU  y sen U y ' ! y cosU  x sen U

r U r J x (x, y)

Rotacin respecto a un punto arbitrario


La rotacin respecto a un punto arbitrario es
y

x ' ! x R  x  x R cos U  y  y R sen U y ' ! y R  y  y R cos U  x  x R sen U

x (x
R

,y

Coordenadas homogneas
Para poder representar las tres transformaciones en forma matricial como producto de matrices, es necesario representar los puntos en coordenadas homogneas. 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 trada es el (x/W, y/W). El valor de W es generalmente 1.

Representacin matricial de traslaciones


Haciendo uso de coordenadas homogneas la traslacin puede representarse como:
1 y 10 T x 0 1 Ty 0 0 1

?x'

y' 1 ! x

A ?

En forma abreviada la transformacin se representar por T(Tx, Ty)


1 ! 0 T x
0 1 Ty 0 0 1

T Tx , Ty

P' ! P T Tx , Ty

Representacin matricial de escalamientos


Haciendo uso de coordenadas homogneas el escalamiento puede representarse como:
S x y 1A 0 0
0 Sy 0 0 0 1

?x'

y ' 1A! ?x

En forma abreviada la transformacin se representar por S(Sx, Sy)


S x !0 0 0 Sy 0 0 0 1

S Sx , S y

P' ! P S S x , S y

Representacin matricial de rotaciones


Haciendo uso de coordenadas homogneas la rotacin puede representarse como:
cos U sen U 0 y 1A  sen U cos U 0 0 1 0

?x'

y ' 1A! ?x

En forma abreviada la transformacin se representar por R(U)


cos U sen U R U !  sen U cos U 0 0 0 0 1

P' ! P R U

Composicin de transformaciones
Para aplicar varias transformaciones a un conjunto de puntos basta con combinar las matrices de transformacin en una sola, mediante multiplicacin matricial. En caso de tener solo transformaciones del mismo tipo, la combinacin sigue reglas muy simples. Traslacin:

T Tx1 , Ty1 T Tx 2 , Ty 2 ! T Tx1  Tx 2 , Ty1  Ty 2

Escalamiento:

S S x1 , S y1 S S x 2 , S y 2 ! S S x1 S x 2 , S y1 S x 2

Rotacin:

R U1 R U2 ! R U1  U2

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 traslacin para llevar el punto fijo al origen por una de escalamiento y posteriormente por otra de traslacin para llevar al punto fijo a su posicin original.
1 0  x F 0 1  yF 0 S x 0 0 1 0 0 Sy 0 Sy 0 0 1 0 0 1 xF 0 0 1 0 1 yF 0 0 1

Sx ! 0 1  S x x F

1  S y
y

(x

,y

(a) Objeto original y punto fijo

(b) Traslada de manera que el punto fijo quede en el origen (x ,y )

(c) Escala el objeto respecto al origen

(d) Traslada de manera que el punto fijo quede en la posicin original

Rotacin respecto a un punto fijo en forma matricial


Para llevar a cabo una rotacin respecto a un punto fijo, se procede multiplicando una matriz de traslacin para llevar el punto fijo al origen por una de rotacin y posteriormente por otra de traslacin para llevar al punto fijo a su posicin original.
0 0 cos U senU 0 1 0 0 1  senU cos U 0 0 0 1 0 1 0 0 1 x R y R 1 0  x R  y R 1 senU cosU 0 !  sen cos 0 U U 1  cos U x R  y R senU 1  cosU y R  x R senU 1

(x

,y

(a) Ob eto original y punto i o

(b) Traslada de manera que el punto i o quede en el origen (x ,y )

(c) Rota el ob eto respecto al origen

(d) Traslada de manera que el punto i o quede en la posicin original

Forma general
En general una transformacin que utilice traslaciones, escalamientos y rotaciones tendr la forma:

?x'

y ' 1A! ?x

a y 1A b c

d e f

0 0 1

Por tanto, el clculo 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

osicin original

osicin original osicin re le ada (a) (b)

osicin re le ada

Reflexin respecto al origen


La reflexin respecto al origen se obtiene con :
 1 0 0 0  1 0 0 0 1
osicin original

osicin refle ada (a)

Reflexin respecto a la recta y = x


Una reflexin 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 reflexin respecto al eje x, y una rotacin de 45 grados en contra del sentido del reloj. 0 1 0 1 0 0 0 0 1 osicin original osicin original
osicin reflejada

(a) Rotacin de -45 grados

(b) Reflexin respecto a x.

(a) Rotacin de 45 grados

Corte en x
El corte produce una deformacin similar al deslizamiento de una capa sobre otra. El corte en x se produce por la matriz:
1 SH x 0
y

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

(0,1)

(1,1)

(0,0)

(1,0) (a)

(0,0)

(1,0) (b)

Corte en y
El corte en y se produce por la matriz
1 SH y 1 0 0 0 0 0 1
(1,3) y y (1,2) ( 0 ,1 ) ( 1 ,1 ) ( 0 ,1 )

( 0 ,0 )

( 1 ,0 ) (a)

( 0 ,0 ) (b)

Transformaciones VentanaPuerto de visin


Las transformaciones ventana-puerto de visin, mapean puntos en el mundo real a puntos en la pantalla.

Puerto de visin 2

Puerto de visin 1 Ventana Coordenadas mundiales Coordenadas de pantalla

Transformaciones de visin
(xmax, ymax)

(xmin, ymin) Ventana en coordenadas mundiales Ventana trasladada al origen (umax, vmax)

(umin, vmin) Ventana escalada al tamao del rea de visin. Traslacin hasta la posicin final.

Transformaciones de visin (continuacin)


M WV

umax  u min vmax  vmin ! T  xmin , ymin S x x , y y min max min max
umax  umin x  x min 0 max 0 0 1 0 0 vmax  vmin y max  ymin 0

T umin , vmin

1 ! 0  xmin

0 1  ymin

0 1 0 0 1 umin

0 1 vmin

0 0 1

Transformaciones de visin (continuacin)


!  xmin
umax  umin xmax  xmin 0 u max  u min  u min xmax  xmin 0 vmax  vmin ymax  ymin vmax  vmin  vmin ymax  ymin

MW

 ymin

0 0 1

Ejemplo
Las transformaciones complejas deben ser descritas como composicin de una ms simples. Suponga que queremos derivar una transformacin 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 -Rx Posteriormente se aplica la rotacin. [x, y , 1] = [x, y , 1]

0 0 1 0 Ry 1

cos -sen sen cos 0 0

0 0 1

Finalmente, trasladamos el punto para que el origen sea trasladado (Rx, Ry). [x, y , 1] = [x, y , 1] 1 0 Rx 0 1 Ry 0 0 1

Esto se podra haber realizado mediante una composicin de transformaciones. [x, y , 1] = = [ x, y , 1] 1 0 -Rx cos -sen sen cos 0 0 0 0 1 1 0 Rx 0 1 Ry 0 0 1

0 0 1 0 Ry 1

Si los valores de Rx, Ry y se conocen, las tres matrices se pueden multiplicar para obtener una sola matriz de transformacin. Ejercicio: Obtener la matriz de transformacin final.

También podría gustarte