Está en la página 1de 64

Transformaciones

geomtricas
Traslacin, rotacin y escalado
ngel Alejandro Juan Prez
Cristina Steegmann Pascual
PID_00151936

FUOC PID_00151936

Transformaciones geomtricas

ndice

Introduccin ............................................................................................

Objetivos ...................................................................................................

Conocimientos previos ..........................................................................

1. Ejemplo introductorio .....................................................................

2. Traslacin en 2D ................................................................................ 10
2.1. Traslacin de un punto .................................................................. 10
2.2. Traslacin de objetos ...................................................................... 12
3. Rotacin en 2D.................................................................................... 14
3.1. Rotacin de un punto alrededor del origen
de coordenadas ............................................................................... 14
3.2. Rotacin de un objeto alrededor del origen de coordenadas ........ 17
3.3. Rotacin de un objeto alrededor de un punto
de rotacin genrico ....................................................................... 18
4. Escalado en 2D ................................................................................... 21
4.1. Escalado de un punto a partir del origen de coordenadas ............. 21
4.2. Escalado de un objeto a partir del origen
de coordenadas ............................................................................... 22
4.3. Escalado de un objeto a partir de un punto fijo genrico .............. 24
5. Notacin matricial eficiente .......................................................... 26
6. Composicin de transformaciones ............................................... 31
7. Transformaciones afines en 2D ..................................................... 34
8. Transformaciones geomtricas en 3D ......................................... 35
8.1. Traslacin de puntos y objetos ....................................................... 35
8.2. Rotacin de puntos y objetos ......................................................... 37
8.3. Escalado de puntos y objetos .......................................................... 40
Resumen .................................................................................................... 43
Ejercicios de autoevaluacin ............................................................... 44
Solucionario ............................................................................................. 46

FUOC PID_00151936

Glosario ..................................................................................................... 64
Bibliografa .............................................................................................. 64

Transformaciones geomtricas

FUOC PID_00151936

Introduccin

La traslacin, el escalado y la rotacin son transformaciones geomtricas usadas con frecuencia en el campo de la informtica grfica. Estas transformaciones juegan un papel fundamental en la construccin y edicin de todo tipo de
imgenes digitales. Por ello, no es de extraar que opciones como la rotacin
o el zoom, habituales en cualquier software CAD o de edicin de imgenes, se
basen en transformaciones geomtricas. Otras aplicaciones de estas herramientas matemticas estn relacionadas con la creacin de objetos animados,
ya sea en el campo de los vdeo-juegos (movimientos de cmara caractersticos de juegos como Half Life 2) o en el campo cientfico-tcnico, con objeto
de estudiar sus propiedades cinemticas y dinmicas.
Es importante notar que la transformacin de un punto representa el ncleo
central en cualquier transformacin geomtrica. Ello se debe a que el punto es
el elemento geomtrico bsico de cualquier objeto 2D y 3D. As, por ejemplo,
un segmento de lnea recta viene unvocamente determinado por sus puntos
inicial y final. Por su parte, tambin las curvas, superficies y slidos se pueden
representar (de forma exacta o aproximada, segn el caso) mediante una coleccin de puntos. De este modo, la transformacin de un conjunto de puntos
da como resultado la transformacin de una lnea, de una curva, de una superficie o, incluso, de un slido.
En este mdulo se explicar la relacin existente entre la teora de matrices y
las transformaciones geomtricas citadas, y se mostrar cmo es posible aplicar traslaciones, escalados y rotaciones a objetos en 2D y 3D, con solo realizar
productos de matrices.

Transformaciones geomtricas

FUOC PID_00151936

Objetivos

Los objetivos docentes que se pretenden lograr con este mdulo son los siguientes:
1. Entender los conceptos geomtricos de traslacin, escalado y rotacin, tanto en 2D como en 3D.
2. Comprender cmo la teora de matrices permite formalizar los conceptos
anteriores.
3. Aprender a realizar, de una forma eficaz, transformaciones geomtricas mediante operaciones con matrices.
4. Saber que la traslacin, la rotacin y el escalado son casos particulares de
transformaciones afines.
5. Descubrir cmo el software matemtico en general puede ser de utilidad
para automatizar los clculos matriciales y representar las transformaciones.

Transformaciones geomtricas

FUOC PID_00151936

Conocimientos previos

Este mdulo se fundamenta en los conceptos y mtodos desarrollados en los


mdulos Elementos de lgebra lineal y geometra y Sistemas de ecuaciones
lineales. Ambos mdulos son, por tanto, de obligada lectura previa.

Transformaciones geomtricas

FUOC PID_00151936

1. Ejemplo introductorio

En informtica grfica aparece con frecuencia la necesidad de aplicar transformaciones geomtricas a un objeto determinado por sus vrtices.
As, por ejemplo, dado un poliedro en 3D definido por sus vrtices, podramos
estar interesados en hallar las nuevas coordenadas de dichos vrtices tras aplicar una combinacin de traslaciones, rotaciones y escalados (en cualquier orden), ya que a partir de estas nuevas coordenadas nos ser posible re-dibujar
el objeto en la pantalla.
Figura 1

En este mdulo mostraremos cmo la teora de matrices nos permite re-calcular con relativa facilidad y eficiencia las nuevas coordenadas de los vrtices
que definen el objeto y, por consiguiente, facilita la dinamizacin de objetos
en la pantalla (los amantes de los vdeo-juegos tienen, por tanto, mucho que
agradecer al lgebra lineal).

Transformaciones geomtricas

10

FUOC PID_00151936

Transformaciones geomtricas

2. Traslacin en 2D

2.1. Traslacin de un punto


Al aplicar una traslacin sobre un punto P de coordenadas (x, y), la posicin
de ste se modifica, siguiendo una trayectoria recta, hasta convertirse en el
punto P' de coordenadas (x', y') (figura 2).
Figura 2. Traslacin de un punto en 2D

As, para trasladar un punto P a la nueva posicin P', se debern aadir distancias de traslacin, tx y ty a las coordenadas iniciales, i.e.:
x' x tx

y' y ty

(1)

o, dicho de otro modo:


(x', y') (x, y) (tx, ty)

(2)

El vector (tx, ty) se llama vector de traslacin.

Observar que, usando notacin matricial, se puede expresar la traslacin de un punto como:
P' P T

t
x'
x
donde: P ' , P y T x .
y '
y
ty

(3)

FUOC PID_00151936

11

Transformaciones geomtricas

Ejemplo 1. Traslacin de un punto en 2D

El resultado de trasladar el punto P1(3, 1) con vector de traslacin T = (2, 3)


es el punto P2 = (3, 1) + (2, 3) = (1, 4)
Figura 3
Comentario
En este ejemplo (figura 3)
se hace uso del programa
Mathcad para representar la
traslacin del punto (3, 1) aplicando un vector de traslacin
de componentes (2, 3), con
lo que el resultado ser el punto de coordenadas (1, 4).

Figura 4
El ejemplo anterior tambin se
puede realizar usando el programa
Wiris, tal y como se muestra
en la figura 4.

FUOC PID_00151936

12

Transformaciones geomtricas

2.2. Traslacin de objetos

La traslacin es una transformacin que mueve objetos sin causarles deformacin alguna, puesto que cada punto del objeto es trasladado en la misma
direccin y a la misma distancia. Para trasladar un objeto, basta con aplicar
las ecuaciones (3) de traslacin a los puntos clave que lo definen. As, por
ejemplo, para trasladar un segmento rectilneo es suficiente con trasladar
los dos extremos que lo delimitan y, posteriormente, reconstruir el nuevo
segmento a partir de los dos nuevos extremos. Anlogamente, los polgonos pueden trasladarse sin ms que trasladar cada uno de sus vrtices y,
posteriormente, reconstruir el polgono a partir de los nuevos vrtices (figura 5).
Figura 5
Comentario
En la figura 5 se ha hecho
uso del software Mathematica
para definir una funcin,
traslacion2D, que permite trasladar polgonos definidos por
sus vrtices.
En este caso se ha aplicado una
traslacin de vector (10, 7)
a un objeto en forma de E.

FUOC PID_00151936

13

Transformaciones geomtricas

Figura 6
Comentario
En la figura 6, se muestra la
traslacin anterior usando esta
vez el programa Wiris.

Estrategias similares pueden emplearse para trasladar objetos con lados curvilneos: para trasladar una circunferencia, por ejemplo, es suficiente con aplicar
las ecuaciones de traslacin a su punto central y, a continuacin, reconstruirla
usando su radio.

En general, para trasladar cualquier objeto ser suficiente con identificar los puntos y parmetros geomtricos que lo definen, trasladar los
puntos identificados y, despus, reconstruir el objeto a partir de los
puntos trasladados y de los parmetros geomtricos.

FUOC PID_00151936

14

3. Rotacin en 2D

3.1. Rotacin de un punto alrededor del origen


de coordenadas

Al aplicar una rotacin sobre un punto P de coordenadas (x, y), la posicin de


ste se modifica, siguiendo una trayectoria circular en el plano xy, hasta convertirse en el punto P' de coordenadas (x', y') (figura 7).

Figura 7. Rotacin de un punto en 2D

Para generar una rotacin, se debe especificar un ngulo de rotacin y la


posicin (xr, yr) del punto de rotacin o punto pivote, Pr, a partir del cual el
punto P es rotado. Inicialmente, se supondr que el punto de rotacin es el origen de coordenadas, es decir, el punto (0, 0).
El ngulo de rotacin, , puede tomar valores reales tanto positivos como negativos. Cuando es positivo, la rotacin se produce en direccin opuesta al
movimiento de las agujas del reloj; por el contrario, cuando es negativo, la
rotacin se produce en el sentido de las agujas del reloj.
La figura 8 muestra las coordenadas de los puntos P y P', el ngulo de rotacin, ,
el ngulo de posicin inicial con respecto al eje y, , as como la distancia r entre el punto P y el origen de coordenadas (distancia que se mantiene constante
durante la rotacin).

Transformaciones geomtricas

15

FUOC PID_00151936

Transformaciones geomtricas

Figura 8. Rotacin de un punto alrededor del origen

Usando identidades trigonomtricas, es posible expresar las coordenadas


transformadas, (x', y'), en funcin de los ngulos y :
x' r cos( ) r coscos r sinsin
y' r sin( ) r cossin r sincos

(4)

Por otra parte, a partir de la propia figura 8 se observa tambin que:


x r cos

y r sin

(5)

Al sustituir las expresiones (5) en las ecuaciones (4) se obtienen las ecuaciones
de rotacin de un punto alrededor del origen de coordenadas:
x' x cos y sin

y' x sin y cos

(6)

Usando notacin matricial, se puede describir la rotacin de un punto


alrededor del origen de coordenadas como:
P' R P

(7)

cos sin
x'
x
donde: P ' , P , y R =
es la matriz de rota sin cos
y '
y
cin.

FUOC PID_00151936

16

Transformaciones geomtricas

Ejemplo 2. Rotacin de un punto en 2D


Figura 9
Comentario
En este ejemplo (figura 9)
se hace uso del programa
Mathcad para representar la
rotacin del punto (2.5, 1.4)
a partir del origen de coordenadas. Se aplican dos rotaciones, una de ngulo 80 y la
otra de ngulo 185, dando
lugar cada una de ellas a un
nuevo punto.

Figura 10
Comentario
El ejemplo anterior tambin
se puede realizar usando el
programa Wiris, tal y como
se muestra en la figura 10.

FUOC PID_00151936

17

Transformaciones geomtricas

3.2. Rotacin de un objeto alrededor del origen de coordenadas

De forma anloga a lo que ocurra con las traslaciones, las rotaciones tambin
son transformaciones que mueven los objetos sin deformarlos, dado que cada
uno de los puntos es rotado en un mismo ngulo .

Para rotar un objeto alrededor del origen de coordenadas, es suficiente


con identificar los puntos y parmetros geomtricos que lo caracterizan, aplicar las ecuaciones de rotacin sobre dichos puntos y, posteriormente, utilizar los puntos rotados y los parmetros geomtricos para
reconstruir el objeto.

As, por ejemplo, un segmento rectilneo se puede rotar sin ms que aplicar las
ecuaciones de rotacin a cada uno de sus dos extremos para, posteriormente,
reconstruir el segmento a partir de los puntos transformados. Para rotar un polgono, se pueden aplicar las ecuaciones de rotacin a los vrtices que lo definen y usar los puntos transformados para reconstruir el polgono (figuras 11 y
12). De forma similar, una elipse se puede rotar sin ms que rotar sus dos semiejes y proceder a su reconstruccin a partir de los mismos.
Figura 11
Comentario
En la figura 11 se ha hecho
uso del software Mathematica
para definir una funcin,
rotacion2D, que permite rotar
polgonos, definidos por sus
vrtices, alrededor del origen
de coordenadas.
En este caso se ha aplicado una
rotacin de 90 a un objeto.

FUOC PID_00151936

18

Transformaciones geomtricas

Figura 12
Comentario
En la figura 12, se muestra
la rotacin anterior usando
esta vez el programa Wiris.

3.3. Rotacin de un objeto alrededor de un punto de rotacin


genrico

Cuando se desee utilizar un punto de rotacin Pr distinto al origen de coordenadas, se puede hacer lo siguiente (figuras 13 y 14):
1) Aplicar una traslacin al objeto y al punto de rotacin de forma que este
ltimo coincida con el origen de coordenadas.
2) Rotar el objeto alrededor del origen de coordenadas.
3) Deshacer la traslacin inicial, de forma que el punto de rotacin vuelva a
su posicin original.
En la figura 13 se ilustra con un ejemplo estos tres pasos del procedimiento genrico.

FUOC PID_00151936

Figura 13

19

Transformaciones geomtricas

FUOC PID_00151936

20

Transformaciones geomtricas

Figura 14
Comentario
En la figura 14, se muestra
la rotacin anterior usando
esta vez el programa Wiris.

21

FUOC PID_00151936

Transformaciones geomtricas

4. Escalado en 2D

4.1. Escalado de un punto a partir del origen de coordenadas

Aplicar un escalado sobre un punto P de coordenadas (x, y) usando un punto


fijo P0 de coordenadas (x0, y0), implica multiplicar por sendos factores (sx y sy)
las distancias horizontal, dx, y vertical, dy, entre P0 y P, con lo que se obtendr
el nuevo punto P' de coordenadas (x', y') (figura 15).

Figura 15. Escalado de un punto en 2D

Inicialmente, se supondr que el punto fijo es el origen de coordenadas, es decir, el punto (0, 0). En la operacin de escalado, el nuevo punto P' se obtiene
multiplicando las coordenadas del punto inicial P por los llamados factores
de escala sx y sy:
x' = x sx

y' = y sy

(8)

As, el factor de escala sx desplaza el punto inicial P en la direccin del eje x,


mientras que el sy lo hace en la direccin del eje y.

Usando notacin matricial, se puede describir el escalado de un punto


a partir del origen de coordenadas como:
P' S P,
x'
x
s
donde: P ' , P y S = x
y
'
y


0

0
es la matriz de escalado.
sy

(9)

FUOC PID_00151936

22

Transformaciones geomtricas

Los factores de escala, sx y sy, pueden tomar cualquier valor positivo. Factores
de escala superiores a 1 producen un alejamiento, en la direccin horizontal o
vertical segn el factor implicado, de P con respecto al origen de coordenadas.
Por el contrario, factores de escala inferiores a 1 producen un acercamiento,
en la direccin horizontal o vertical segn el caso, de P con respecto al origen.
Obviamente, factores de escala unitarios no modifican la posicin, sobre el eje
correspondiente, del punto P.
Ejemplo 3. Escalado de un punto en 2D
Figura 16
Comentario
En este ejemplo (figura 16)
se hace uso del programa
Mathcad para representar el
escalado del punto (2.2, 1.9) a
partir del origen de coordenadas. Se aplican dos escalados,
uno con factores de escala superiores a la unidad (que aleja
el punto del origen), y el otro
con factores de escala inferiores a la unidad (que acerca
el punto al origen).

4.2. Escalado de un objeto a partir del origen


de coordenadas

A diferencia de lo que ocurra con las traslaciones y las rotaciones, una transformacin de escalado s que deformar el objeto, puesto que altera el tamao del mismo (excepto, obviamente, en el caso trivial en que ambos factores
de escala sean unitarios). Dicha deformacin puede ser uniforme, cuando sx
sy, o no uniforme, cuando sx sy. En el primero de los casos, aunque el tamao del objeto es alterado, se mantendrn las proporciones relativas del
mismo.
Al aplicar las ecuaciones (9) de escalado sobre los puntos que definen un objeto, no slo se modifica el tamao del mismo, sino que tambin se altera su
posicin con respecto al punto fijo (figura 17).

FUOC PID_00151936

23

Transformaciones geomtricas

Figura 17
Comentario
En la figura 17 se ha hecho
uso del software Mathematica
para definir una funcin,
escala2D, que permite escalar
polgonos, definidos por
sus vrtices, a partir del origen
de coordenadas.
En este caso se ha aplicado
un escalado de factores 1.5
(horizontal) y 3.5 (vertical).

Generalizando lo dicho para el escalado de puntos, se tendr que factores de


escala inferiores a la unidad acercan (horizontal o verticalmente segn el factor) los objetos al origen de coordenadas, mientras que factores de escala superiores a la unidad producirn el efecto contrario.
En la prctica, el escalado de un objeto se lleva a cabo a partir del escalado
de aquellos puntos que lo definen. De esta forma, un polgono puede ser escalado sin ms que aplicar las ecuaciones de escalado a cada uno de sus vrtices y, posteriormente, regenerar el polgono a partir de los nuevos vrtices
resultantes.

En general, para escalar un objeto a partir del origen de coordenadas, es


suficiente con identificar los puntos y parmetros geomtricos que lo
definen, aplicar las ecuaciones de escalado sobre dichos puntos y, posteriormente, utilizar los puntos escalados y los parmetros geomtricos
para reconstruir el objeto.

FUOC PID_00151936

24

4.3. Escalado de un objeto a partir de un punto fijo genrico

Cuando se desee escalar un objeto utilizando para ello un punto fijo P0 distinto del origen de coordenadas, se puede hacer lo siguiente (figura 18):
1) Aplicar una traslacin al objeto y al punto fijo de forma que este ltimo coincida con el origen de coordenadas.
2) Escalar el objeto a partir del origen de coordenadas.
3) Deshacer la traslacin inicial, de forma que el punto fijo vuelva a su posicin original.
Figura 18

Transformaciones geomtricas

FUOC PID_00151936

25

Transformaciones geomtricas

26

FUOC PID_00151936

Transformaciones geomtricas

5. Notacin matricial eficiente

Las aplicaciones grficas suelen hacer uso de transformaciones geomtricas sucesivas o encadenadas. As por ejemplo, para realizar una animacin puede resultar necesario a fin de lograr una sensacin de movimiento, trasladar y
rotar un objeto a cada incremento temporal. Por su parte, en el tratamiento de
imgenes es habitual realizar traslaciones, rotaciones y escalados de forma secuencial sobre la misma imagen. En ambos casos, resultar fundamental utilizar una notacin matricial que permita concatenar de forma eficiente una
sucesin de transformaciones.
De las ecuaciones (3), (7) y (9) se deduce que las transformaciones discutidas
(traslacin, rotacin y escalado) presentan expresiones de la forma general:
P M1 P M2,

(10)

x'
x
donde: P ' , P , M1 es una matriz 22 compuesta por factores muly
'

y
1 0
tiplicativos (M1 ser la matriz identidad, I2
, en el caso de traslacio0
1

nes) y M2 es un vector columna que contiene trminos de traslacin (M2 ser

0
el vector nulo, 0 , en el caso de rotaciones y escalados).
0
Pero la expresin (10) tiene un gran inconveniente: usando dicha notacin
matricial, cuando se trate de producir una secuencia de transformaciones, resultar necesario calcular las coordenadas transformadas en cada paso de la secuencia. En efecto: supongamos, por ejemplo, que sobre un punto se desea
aplicar primero un escalado, luego una rotacin y, finalmente, una traslacin.
En tal caso, ser necesario realizar los siguientes pasos:
1) Aplicar las ecuaciones de escalado sobre las coordenadas iniciales del punto, P.
2) Sobre las nuevas coordenadas, P', obtenidas en el paso anterior, aplicar rotacin para obtener las coordenadas P''.
3) Sobre las coordenadas P'' aplicar traslacin a fin de obtener las coordenadas
finales P'''.
Una forma ms eficiente (desde el punto de vista computacional) de llevar a
cabo la secuencia anterior de transformaciones consiste en combinarlas de forma que las coordenadas finales P''' se obtengan directamente de las iniciales P,
eliminando as el clculo de coordenadas intermedias.

27

FUOC PID_00151936

Transformaciones geomtricas

Es posible lograr dicho objetivo integrando el trmino matricial aditivo de la


ecuacin (10), M2, con el trmino multiplicativo, M1. En efecto: como se ver
a continuacin, para cada transformacin se pueden combinar los trminos
multiplicativo y aditivo usando matrices de tamao 33, lo cual posibilita expresar cualquier transformacin como producto de matrices.
Obviamente, tambin ser necesario expandir a vectores columnas de tres elementos las coordenadas de cualquier punto, para lo cual se hace uso de las llamadas coordenadas homogneas, de forma que un punto P de coordenadas
(x, y) pasar a tener como coordenadas (x, y, 1).

En el caso de la traslacin de un punto, la expresin (3) se puede rescribir como:


x ' 1 0 tx x


y ' 0 1 ty y
1 0 0 1 1

(10)

P' = T(tx, ty) P

(11)

o, dicho de otro modo:

La inversa de la matriz de traslacin se puede obtener reemplazando los parmetros tx y ty por sus opuestos tx y ty.
Ejemplo 4. Traslacin de un objeto en 2D
Figura 19
Comentario
En este ejemplo (figura 19)
se hace uso del programa
Mathcad para representar la
traslacin de un polgono O1,
definido por sus vrtices, aplicando un vector de traslacin
de componentes (2.5, 2), con
lo que el resultado ser el nuevo polgono O2.

28

FUOC PID_00151936

Transformaciones geomtricas

Figura 20
Comentario
El ejemplo anterior tambin
se puede realizar usando el
programa Wiris, tal y como
se muestra en la figura 20.

En el caso de la rotacin de un punto alrededor del origen de coordenadas, la expresin (7) se puede rescribir como:
x ' cos sin 0 x


y ' sin cos 0 y
1 0
0
1 1

(12)

o, dicho de otro modo:

P' = R() P

(13)

La inversa de la matriz de rotacin se obtiene solo con reemplazar el parmetro por .

FUOC PID_00151936

29

Transformaciones geomtricas

Ejemplo 5. Rotacin de un objeto en 2D


Figura 21
Comentario
En este ejemplo (figura 21)
se hace uso del programa
Mathcad para representar la
rotacin de un polgono O1,
definido por sus vrtices, aplicando una rotacin de ngulo
180, con lo que el resultado
ser el nuevo polgono O2.

Figura 22
Comentario
El ejemplo anterior tambin
se puede realizar usando el
programa Wiris, tal y como
se muestra en la figura 22.

30

FUOC PID_00151936

Transformaciones geomtricas

Finalmente, en el caso del escalado de un punto a partir del origen de


coordenadas, la expresin (9) se puede rescribir como:

x ' sx

y ' 0
1 0

0
sy
0

0 x

0 y
1 1

(14)

o, dicho de otro modo:

P' = S(sx, sy) P

(15)

La inversa de la matriz de escalado se obtiene sin ms que reemplazar los pa1


.
rmetros sx y sy por sus inversos 1 ,
sx sy
Ejemplo 6. Escalado de un objeto en 2D
Figura 23
Comentario
En este ejemplo (figura 23)
se hace uso del programa
Mathcad para representar
el escalado, a partir del origen
de coordenadas, de un polgono O1, definido por sus
vrtices.

31

FUOC PID_00151936

6. Composicin de transformaciones

Antes de comenzar este apartado, conviene recordar que el producto de ma-

trices es asociativo, pero no es, en general, conmutativo. Sin embargo, en


casos excepcionales, como el producto de matrices correspondiente al mismo
tipo de transformacin, el producto de matrices s ser conmutativo.

Utilizando la notacin matricial introducida en el apartado anterior, y


en particular las expresiones (10) a (15), es posible representar con una
nica matriz cualquier combinacin de transformaciones, siendo dicha
matriz el producto ordenado de las matrices asociadas a cada una de las
transformaciones.

As, por ejemplo, en el caso de la traslacin, si consideramos dos traslaciones


consecutivas de vectores respectivos (tx1, ty1) y (tx2, ty2), se pueden calcular
(aplicando asociatividad) las coordenadas finales como:

P' T(tx2, ty2) [T(tx1, ty1) P] [T(tx2, ty2) T(tx1, ty1)] P


Observar que:

1 0 t x 2 1 0 t x1 1 0 t x1 t x 2

0 1 t y 2 0 1 t y1 0 1 t y1 t y 2
0 0 1 0 0 1 0 0
1

Es decir:

T(tx2, ty2) T(tx1, ty1) T(tx1 tx2, ty1 ty2)


O, en otras palabras, es equivalente aplicar dos traslaciones sucesivas que aplicar una cuyo vector de traslacin sea la suma de los respectivos vectores de
traslacin.

En el caso de rotaciones alrededor del origen de coordenadas, si se consideran dos rotaciones consecutivas de ngulos respectivos 1 y 2, se pueden calcular (aplicando asociatividad) las coordenadas finales como:

P' = R(2) [R(1) P] = [R(2) R(1)] P

Transformaciones geomtricas

32

FUOC PID_00151936

Transformaciones geomtricas

Las rotaciones tambin tienen un carcter aditivo (es decir, es equivalente


concatenar dos rotaciones que una nica cuyo ngulo de rotacin sea la suma
de los respectivos ngulos). En efecto:

cos 2

sin 2
0

sin 2
cos 2
0

0 cos 1

0 sin 1
1 0

sin 1 0 cos(1 2 ) sin(1 2 ) 0


cos 1 0 sin(1 2 ) cos(1 2 ) 0


0
1
0
0
1

Es decir:

R(2) R(1) = R(1 2)


Finalmente, en el caso del escalado a partir del origen coordenadas, si se consideran dos escalados consecutivos con vectores (sx1, sy1) y (sx2, sy2), se pueden
calcular (aplicando asociatividad) las coordenadas finales como:

P' S(sx2, sy2) [S(sx1, sy1) P] = [S(sx2, sy2) S(sx1, sy1)] P


Los escalados tienen carcter multiplicativo (i.e., si multiplicamos en dos ocasiones el tamao de un objeto primero por dos y despus por tres, el resultado
final ser que hemos incrementado el tamao original en un factor de seis):

sx 2

0
0

0
sy 2
0

0 sx1

0 0
1 0

0
sy 1
0

0 sx 2 sx1

0 0
1 0

0
sy 2 sy 1
0

O, en otras palabras:

S(sx2, sy2) S(sx1, sy1) S(sx1 sx2, sy1 sy2)

0
1

FUOC PID_00151936

33

Transformaciones geomtricas

Ejemplo 7. Rotacin alrededor de un punto genrico


Figura 24
Comentario
En este ejemplo (figura 21)
se hace uso del programa
Mathcad para representar la
rotacin de un polgono O1,
definido por sus vrtices, aplicando una rotacin de ngulo
180, con lo que el resultado
ser el nuevo polgono O2.

Figura 25
Comentario
El ejemplo anterior tambin
se puede realizar usando el
programa Wiris, tal y como
se muestra en la figura 25.

34

FUOC PID_00151936

Transformaciones geomtricas

7. Transformaciones afines en 2D

Una transformacin afn en 2D es una transformacin de coordenadas de la forma:


x' a11x a12y b1

y' a21x a22y b2

(15)

Observar que, en una transformacin afn, cada una de las coordenadas transformadas x' e y' es una funcin lineal de las coordenadas originales x e y, as
como de una serie de parmetros aij y bk.
La traslacin, la rotacin y el escalado son ejemplos de transformaciones afines en 2D. Las transformaciones afines tienen la interesante propiedad de que
las lneas paralelas son transformadas en lneas paralelas y un nmero finito
de puntos se transforma siempre en un nmero finito de puntos.

35

FUOC PID_00151936

Transformaciones geomtricas

8. Transformaciones geomtricas en 3D

La teora expuesta para las transformaciones geomtricas en 2D se puede extender a 3D mediante la incorporacin de la coordenada espacial z. En el caso
de la traslacin, el vector de traslacin tendr ahora tres componentes en lugar
de dos. En el caso del escalado, deberemos considerar tres factores de escala
(uno por cada eje de coordenadas). Finalmente, el concepto de rotacin tambin se puede generalizar a 3D, si bien ste presenta algunos aspectos tcnicos
que requieren de especial atencin: en 2D las rotaciones se producen slo en
el plano xy (i.e., el eje de rotacin siempre es paralelo al eje z); por su parte, en
3D las rotaciones se podrn efectuar tomando como eje de rotacin cualquier
recta del espacio tridimensional (no necesariamente paralela a alguno de los
tres ejes coordenados).

De forma anloga a lo que ocurra en 2D, tambin en 3D es posible


utilizar notacin matricial para expresar las transformaciones
geomtricas. As, cualquier combinacin de transformaciones podr
ser representada por una matriz que se obtendr al realizar el producto de las respectivas matrices asociadas a cada una de las transformaciones individuales.

8.1. Traslacin de puntos y objetos

Las ecuaciones (10) y (11), referentes a la traslacin de un punto en 2D, se pueden generalizar para el caso tridimensional como sigue:

La expresin matricial de la traslacin de un punto P de coordenadas


(x, y, z) es:

x' 1

y ' 0
z' 0

1 0

0 0 tx x

1 0 ty y
0 1 tz z

0 0 1 1

(16)

o, dicho de otro modo:

P' = T(tx, ty, tz) P


siendo (tx, ty, tz) el vector de traslacin.

(17)

36

FUOC PID_00151936

Transformaciones geomtricas

En la expresin anterior, los parmetros tx, ty y tz especifican las distancias de


traslacin con respecto a cada uno de los tres ejes coordenados (figura 26).
Como resulta evidente, la expresin matricial anterior es equivalente al siguiente sistema de ecuaciones:
x' x tx

y' y ty

z' z tz

(18)

Figura 26. Traslacin de un punto en 3D

La matriz inversa de la matriz de traslacin T(tx, ty, tz) se obtiene sin ms que
sustituir las componentes del vector de traslacin por otras de igual valor absoluto pero de signo contrario.
De forma anloga a lo que ocurra en 2D, la clave para trasladar un objeto en
3D consiste en aplicar las ecuaciones de traslacin a cada uno de los puntos
que caracterizan el objeto para, posteriormente, reconstruir el objeto a partir
de los puntos trasladados y de sus propiedades geomtricas (figura 27).
En la figura 27 se ha hecho uso del software Mathematica para definir una
funcin, traslacion3D, que permite trasladar poliedros definidos por sus caras. En este caso se ha aplicado una traslacin de vector (0, 2,1) a una pirmide.

FUOC PID_00151936

37

Figura 27

8.2. Rotacin de puntos y objetos

Cuando se trata de rotar un punto y, en general, cualquier objeto en 3D, resulta necesario especificar tanto el ngulo como el eje de rotacin er. A diferencia de lo que ocurra con las rotaciones en 2D, que se limitaban al plano xy
(es decir, el eje de rotacin era siempre una recta paralela al eje z, la cual cortaba al plano xy en el llamado punto de rotacin), una rotacin en 3D puede
usar como eje de rotacin cualquier recta del espacio tridimensional, la cual
puede o no ser paralela a alguno de los ejes de coordenadas (figura 28).

Transformaciones geomtricas

38

FUOC PID_00151936

Transformaciones geomtricas

Figura 28. Rotacin de un punto en 3D

Por lo que al ngulo de rotacin se refiere, siempre que ste sea positivo indicar rotaciones en el sentido contrario al que siguen las agujas del reloj (se supondr que siempre se contempla el objeto desde el correspondiente semieje
positivo). Por el contrario, valores negativos del ngulo de rotacin indican
movimientos en el sentido de las agujas del reloj.
Las ecuaciones (12) y (13), referentes a la rotacin de un punto en 2D alrededor del origen de coordenadas (i.e., usando como eje de rotacin el eje z), se
pueden generalizar para el caso tridimensional como sigue:

La expresin matricial para la rotacin de un punto P, de coordenadas


(x, y, z), alrededor del eje z es:

x ' cos sin



y ' sin cos
z' 0
0

1
0
0

0 0 x

0 0 y
1 0 z

0 11

(18)

o, dicho de otro modo:


P' = Rz() P

(19)

Como resulta evidente, la expresin matricial anterior es equivalente al siguiente sistema de ecuaciones:
x' x cos y sin

y' x sin y cos

z' z

(20)

Por simetra, resulta sencillo comprobar que las expresiones matriciales asociadas a la rotacin de un punto P alrededor de los ejes x e y sern, respectivamente:

Nota
Otra forma de dar el ngulo
en 3D es considerar el sentido
contrario al del giro de avance
de un sacacorchos (para
diestros).

39

FUOC PID_00151936

Rotacin sobre eje x:

0
0
x' 1

y
'
0
cos

sin


z ' 0 sin cos

0
0
1 0

Rotacin sobre eje y:

x ' cos

y ' 0
z ' sin

1 0

Transformaciones geomtricas

0 x

0 y
0 z

11

(21)

0 sin 0 x

1
0
0 y
0 cos 0 z

0
0
11

(22)

La matriz inversa de cualquiera de las matrices anteriores se obtiene sin ms


que sustituir el valor del parmetro por su opuesto .
Como ya ocurra en 2D, la clave para rotar un objeto en 3D consiste en aplicar
las ecuaciones de rotacin a cada uno de los puntos que caracterizan el objeto
para, posteriormente, reconstruir el objeto a partir de los puntos rotados y de
sus propiedades geomtricas (figura 29).
Figura 29
Comentario
En la figura 29 se ha hecho uso
del software Mathematica para
definir una funcin,
rotacion3Dx, que permite
rotar poliedros, definidos por
sus caras, alrededor del eje x.
En este caso se ha aplicado
una rotacin de ngulo 180
a una pirmide.

40

FUOC PID_00151936

Transformaciones geomtricas

Finalmente, aadir que cuando lo que se desee sea aplicar una rotacin de ngulo
a un objeto alrededor de un eje cualquiera er (no necesariamente paralelo a ninguno de los ejes coordenados), ser suficiente con usar la siguiente metodologa:
1) Aplicar una traslacin de vector (tx, ty, tz) al objeto y a er de forma que este

ltimo pase por el origen de coordenadas.


2) Lograr que el eje de rotacin coincida con alguno de los ejes de coordena-

das, para lo cual pueden necesitarse dos rotaciones de ngulos y , respectivamente, (tanto al objeto como a er) para primero llevar e, sobre un plano
coordenado (por ejemplo el yz rotando alrededor del eje y) y despus sobre el eje
coordenado elegido (por ejemplo el z rotando alrededor del eje x).
3) Aplicar al objeto la rotacin de ngulo alrededor de la nueva posicin del

eje de rotacin er' (observar que er' ser alguno de los ejes coordenados).
4) Deshacer la rotacin de ngulo (i.e.: aplicar una rotacin de ngulo ).
5) Deshacer la traslacin inicial (i.e.: aplicar una traslacin de vector (

t x, t y, tz)).

8.3. Escalado de puntos y objetos

Las ecuaciones (14) y (15), referentes al escalado de un punto en 2D a partir


del origen de coordenadas, se pueden generalizar para el caso tridimensional
como sigue:

La expresin matricial para el escalado de un punto P, de coordenadas


(x, y, z), a partir del origen de coordenadas es:

x ' sx
y ' 0

z ' 0

1 0

sy
0

0
sz

0 x
0 y
0 z

1 1

(23)

o, dicho de otro modo:


P' = S(sx, sy, sz) P

(24)

En la expresin anterior, donde se considera que el punto fijo coincide con el


origen de coordenadas, los parmetros sx, sy y sz son nmeros positivos que especifican los valores de escalado con respecto a cada uno de los tres ejes coordenados (figura 30). Como resulta evidente, la expresin matricial anterior es
equivalente al siguiente sistema de ecuaciones:
x' = x sx

y' = y sy

z' = z sz

(25)

FUOC PID_00151936

41

Transformaciones geomtricas

Figura 30. Escalado de un punto en 3D

La inversa de la matriz de escalado S(sx, sy, sz) se obtiene solo con sustituir las
componentes del vector de escalado por sus respectivos inversos.
Nuevamente, la clave para escalar un objeto en 3D consiste en aplicar las ecuaciones de escalado a cada uno de los puntos que caracterizan el objeto para,
posteriormente, reconstruir el objeto a partir de los nuevos puntos (figura 31).
Observar que al escalar un objeto en 3D ste no slo cambiar de tamao, sino
tambin de posicin con respecto al punto fijo. Adems, el objeto sufrir deformaciones (variarn sus proporciones relativas) a menos que el escalado
aplicado sea uniforme (i.e.: a menos que sx sy sz).
Figura 31
Comentario
En la figura 31 se ha hecho
uso del software Mathematica
para definir una funcin,
escalado3D, que permite
escalar, a partir del origen
de coordenadas, poliedros definidos por sus caras.
En este caso se ha aplicado un
escalado de vector (1.5, 2, 2)
a una pirmide.

FUOC PID_00151936

42

Transformaciones geomtricas

Por ltimo, cabe recordar que de forma anloga a lo explicado para el caso
2D, cuando se desee escalar un objeto a partir de un punto fijo genrico (no
necesariamente el origen de coordenadas), ser suficiente con seguir la siguiente metodologa:
1) Aplicar una traslacin al objeto y al punto fijo de modo que este ltimo co-

incida con el origen de coordenadas.


2) Aplicar el escalado al objeto usando como punto fijo el origen de coorde-

nadas.
3) Deshacer la traslacin inicial.
Ejemplo 8. Composicin de transformaciones en 3D
Figura 32
Comentario
En este ejemplo (figura 32)
se hace uso del programa
Mathcad para llevar a cabo
una composicin de tranformaciones en 3D y mostrar
el resultado grfico.

FUOC PID_00151936

43

Resumen

En este mdulo hemos presentado las tres transformaciones geomtricas ms


habituales, tanto en 2D como en 3D: la traslacin, la rotacin y el escalado.
Hemos visto que cada una de estas transformaciones puede asociarse a una
matriz (de tamao 3 3 en el caso de 2D y de tamao 4 4 en el caso de 3D),
y que las nuevas coordenadas de los puntos transformados se calculan sin ms
que multiplicar la matriz correspondiente por las coordenadas iniciales de
cada punto. Tambin hemos visto que la clave para transformar objetos consiste en transformar cada uno de los puntos que los definen.
Finalmente, se ha explicado cmo aplicar varias transformaciones sucesivas
sobre un punto u objeto: basta con obtener la matriz resultante de la composicin de transformaciones, que es el producto de las matrices asociadas a cada
una de las transformaciones (en el orden adecuado, puesto que el producto de
matrices no es conmutativo).

Transformaciones geomtricas

FUOC PID_00151936

44

Ejercicios de autoevaluacin
1. Considerad el polgono definido por los siguientes vrtices: (1, 1), (3, 2),

(3, 5) y (1, 4). Calculad las nuevas coordenadas del polgono tras haber aplicado sobre el mismo las transformaciones que se indican a continuacin (en
el orden establecido):
Una rotacin de 90 alrededor del punto (2, 3).
Un escalado, a partir del origen, con factores de escala 3 (eje x) y 2 (eje y).
2. Repetid el ejercicio anterior pero, esta vez, invirtiendo el orden de las transfor-

maciones, i.e.: aplicar primero el escalado y luego la rotacin. Qu observis?


3. Considerad el polgono definido por los siguientes vrtices: (2, 1), (5, 1),

(5, 2), (3, 2), (3, 4), (5, 4), (5, 5) y (2, 5). Calculad las nuevas coordenadas del
polgono tras haber aplicado sobre el mismo las transformaciones que se indican a continuacin (en el orden establecido):
Una rotacin de 180 grados alrededor del punto (0, 1).
Un escalado, a partir de punto (1, 1), con factores de escala 2 (eje x) y 3 del
(eje y).
4. Considerad el poliedro definido por los vrtices: (0, 0, 2). (1, 1, 0), (1, 1, 0),

(1, 1, 0), (1, 1, 0). Calculad sus nuevas coordenadas tras aplicarle cada una de
las siguientes transformaciones:
a) Una traslacin de vector (2, 1, 3)
b) Una rotacin de 180 alrededor del eje x
c) Una rotacin de 180 alrededor del eje y
d) Una rotacin de 180 alrededor del eje z
e) Un escalado uniforme de factor 2 a partir del origen
f) Un escalado uniforme de factor 2 a partir del punto (1, 2, 1)

5. Considerad el tringulo T de vrtices A = (1, 1), B = (2, 1) y C = (2, 2).

a) Calculad las nuevas coordenadas de los vrtices de T despus de aplicar un

escalado uniforme a partir del origen, de manera que su rea sea cuatro veces
mayor.
b) Calculad las coordenadas del triangulo T despus de aplicar un giro de n-

gulo /2 al rededor del punto (1, 0).


c) Ahora aplicad a T un giro de centro en el origen y despus una traslacin. Fi-

nalmente, las coordenadas de los vrtices del tringulo han quedado A3 = (1, 0)
B3 = (2, 0) y C3 = (2, 1). Determinad la matriz que transforma los vrtices

originales en los finales.

Transformaciones geomtricas

45

FUOC PID_00151936

6. Se considera el paralelogramo P de vrtices P1(0, 8), P2 ( 4,0), P3 (0,8), P4 (4,0) .

Aplicamos a P una traslacin T de vector (7, 9), despus una rotacin R de ngulo
45 y centro el punto (6, 5). Se pide:
a) Escribid las matrices de la traslacin T, la rotacin R y la composicin R T
b) Calculad las coordenadas de P tras aplicarle la composicin R T
c) Utilizad la Wiris para comprobar los resultados obtenidos en el apartado b)

y para representar grficamente el paralelogramo P y su trasformado por R T.


d) Calculad el rea del trasformado del paralelogramo P por un escalado uni-

forme a partir del origen de factor 9.


7. En el plano XY, un giro de ngulo

transforma el punto (2, 0) en el punto

(2, 2). Hallad el punto de rotacin sobre el cual se hace la transformacin. Utilizad coordenadas homogneas.
8. Considerad el polgono definido por los vrtices: (1, 1), (3, 1), (3, 4), y (0, 3).

Se pide:
a) Calculad las nuevas coordenadas del polgono despus de haberle aplicado

las transformaciones que se indican a continuacin (en el orden establecido):


Una rotacin de 180 alrededor del punto (2, 1).
Un escalado, a partir del origen, con factores de escala 2 (eje x) y 3 (eje y).
b) Representad grficamente con la Wiris los dos polgonos (el original y el re-

sultante despus de haber aplicado todas las transformaciones).

Transformaciones geomtricas

46

FUOC PID_00151936

Solucionario
Ejercicios de autoevaluacin

1. En primer lugar, hallaremos la matriz de rotacin, R:

cos() sin() 0

R sin() cos() 0
0
0
1

donde:

, i.e.:
2
0 1 0

R 1 0 0
0 0 1

Ahora bien, dado que se trata de una rotacin genrica (no sobre el origen),
ser necesario: a) aplicar una traslacin antes de la rotacin (la traslacin que
desplace el punto de rotacin hasta el origen), y b) tras aplicar la rotacin, deshacer la traslacin.
Puesto que el punto de rotacin es el (2, 3), la matriz de traslacin ser:

1 0 2

T 0 1 3
0 0 1

As pues, la matriz compuesta traslacin-rotacin-traslacin ser:

A T1 R T

0 1 5

A 1 0 1
0 0 1

El siguiente paso es determinar la matriz de escalado, que ser:

3 0 0

S 0 2 0
0 0 1

Por tanto, la matriz resultante de aplicar la rotacin ms el escalado (en ese orden) ser:

0 3 15

S A 2 0 2
0 0 1

Transformaciones geomtricas

47

FUOC PID_00151936

(observar que el orden de las matrices es el inverso al orden de las transformaciones asociadas, siendo la situada en el extremo derecho la primera en aplicarse y la situada en el extremo izquierdo la ltima).
Al multiplicar dicha matriz por cada uno de los vectores columna que contienen las coordenadas del polgono original, obtenemos las coordenadas del polgono resultante:

1 12
S A 1 4
1 1

3 9
S A 2 8
1 1

3 0
S A 5 8
1 1

1 3
S A 4 4
1 1

En la figura 33, generada con Mathcad, se muestra el polgono original y el polgono resultante tras la doble transformacin:
Figura 33

2. Las matrices de rotacin y escalado son las mismas que en el ejercicio an-

terior. Lo que cambia ahora es el orden en que dichas matrices se aplican. Ahora, la matriz resultante de aplicar el escalado ms la rotacin (en ese orden)
ser:

0 2 5

A S 3 0 1
0 0 1

Transformaciones geomtricas

48

FUOC PID_00151936

Con lo que las coordenadas del polgono resultante sern:

1 3
A S 1 4
1 1

3 1
A S 2 10
1 1

3 5
A S 5 10
1 1

1 3
A S 4 4
1 1

Queda claro, pues, que el orden en que se aplique cada transformacin es relevante para el resultado final (o, visto de otra forma, el producto de matrices
no es conmutativo).
La figura 34, obtenida con Mathcad, nos permite comprobarlo visualmente:
Figura 34

3. En primer lugar, hallaremos la matriz de rotacin R:

cos() sin() 0

R sin() cos() 0
0
0
1

donde: , i.e.:
1 0 0

R 1 1 0
0 0 1

Transformaciones geomtricas

49

FUOC PID_00151936

Ahora bien, dado que se trata de una rotacin genrica (no sobre el origen),
ser necesario: a) aplicar una traslacin antes de la rotacin (la traslacin que
desplace el punto de rotacin hasta el origen), y b) tras aplicar la rotacin, deshacer la traslacin.
Puesto que el punto de rotacin es el (0, 1), la matriz de traslacin ser:
1 0 0

T 0 1 1
0 0 1

As pues, la matriz compuesta traslacin-rotacin-traslacin ser:

T1

RT

1 0 0

A 0 1 2
0 0 1

El siguiente paso es determinar la matriz de escalado. Si se tratase de un escalado a partir del origen, la matriz sera:
2 0 0

S 0 3 0
0 0 1

Ahora bien, puesto que se trata de un escalado a partir de un punto genrico,


resultar necesario aplicar una traslacin antes de aplicar el escalado y, tras
aplicar ste, deshacer la traslacin. La matriz de traslacin ser:
1 0 1

U 0 1 1
0 0 1

As que la matriz resultante de aplicar traslacin-escalado-traslacin (es decir,


la matriz de escalado a partir del punto dado) ser:

EU

SU

2 0 1

E 0 3 2
0 0 1

Por tanto, la matriz resultante de aplicar la rotacin ms el escalado (en ese orden) ser:
2 0 1

E A 0 3 4
0 0 1

Transformaciones geomtricas

50

FUOC PID_00151936

Transformaciones geomtricas

Al multiplicar dicha matriz por cada uno de los vectores columna que contienen las coordenadas del polgono original, obtenemos las coordenadas del polgono resultante:
2 5
E A 1 1 E A
1 1

5 11

1 1 E A
1 1

5 11

2 2
1 1

3 7
E A 2 2
1 1

3 7
E A 4 8 E A
1 1

5 11

4 8 E A
1 1

5 11

5 8
1 1

2 5
E A 5 11
1 1

En la figura 35, generada con Mathcad, se muestra el polgono original y el polgono resultante tras la doble transformacin:
Figura 35

4.
a) La matriz con las coordenadas de los vrtices y la matriz de traslacin sern,

respectivamente:

0 1 1

0 1 1
O
2 0 0

1 1 1

1 1

1 1
0 0

1 1

0
T
0

Por tanto, las nuevas coordenadas sern:

3
2 1

1 2 2
OT
5 3
3

1
1
1

3 1

0 0
3 3

1 1

0 0 2

1 0 1
0 1 3

0 0 1

51

FUOC PID_00151936

Transformaciones geomtricas

Figura 36

b) La matriz asociada a una rotacin de = 180 alrededor del eje x es:

0
0
1

0
cos(

sin(
)
R
0 sin() cos()

0
0
0

0
0

1 0 0

0 1 0
R
0 0 1

0 0 0

Por tanto, las nuevas coordenadas sern:


0 1

0 1
RO
2 0

1 1
Figura 37

1 1 1

1 1 1
0 0 0

1 1 1

0
0

52

FUOC PID_00151936

Transformaciones geomtricas

c) La matriz asociada a una rotacin de 180 alrededor del eje y es:

cos()

0
R
sin()

0 sin() 0

1
0
0
0 cos() 0

0
0
1

0
R
0

0
0 1 0

0 0 1
0
1

0
0

Por tanto, las nuevas coordenadas sern:

0 1 1 1

0 1 1 1
RO
2 0 0 0

1 1 1 1

1
0

Figura 38

d) La matriz asociada a una rotacin de = 180 alrededor del eje z es:

cos() sin()

sin() cos()
R
0
0

0
0

0 0

0 0
1 0

0 1

1 0

0 1
R
0 0

0 0

Por tanto, las nuevas coordenadas sern:


0

0
RO
2

1 1 1 1

1 1 1 1
0 0 0 0

1 1 1 1

0 0

0 0
1 0

0 1

53

FUOC PID_00151936

Figura 39

e) La matriz asociada a un escalado uniforme de factor 2 es:

0
S
0

0 0 0

2 0 0
0 2 0

0 0 1

Por tanto, las nuevas coordenadas sern:


0 2 2

0 2 2
SO
4 0
0

1
1
1

Figura 40

2 2

2 2
0 0

1 1

Transformaciones geomtricas

54

FUOC PID_00151936

f) Ya hemos visto que la matriz asociada a un escalado uniforme de factor 2

a partir del origen es:


2

0
S
0

0 0 0

2 0 0
0 2 0

0 0 1

Ahora bien, en este caso el punto fijo no es el origen de coordenadas, sino el


(1,2,1). Esto significa que antes de poder aplicar el escalado anterior habr que
realizar una traslacin para llevar el punto fijo al origen y que, una vez realizado el escalado, habr que deshacer la traslacin anterior.
La matriz de traslacin que desplaza el punto fijo (1,2,1) al origen es:

0
T
0

0 0 1

1 0 2
0 1 1

0 0 1

As que la matriz resultante de aplicar traslacin-escalado-traslacin y las nuevas coordenadas del objeto sern, respectivamente:
2

0
T1 S T O
0

0
Figura 41

0 0 1

2 0 2
0 2 1

0 0 1

1 3 1 1 3

2 4 4 0 0
T1 S T O
3 1 1 1 1

1 1 1 1 1

Transformaciones geomtricas

55

FUOC PID_00151936

5.
a) El rea del triangulo inicial se calcula fcilmente, comprobando que se trata

de un triangulo rectngulo. El ngulo recto lo tenemos situado en el vrtice A,


y los lados sobre este vrtice miden una unidad, por tanto su rea es 1/2.
Tal como hemos visto en los apuntes, tenemos que la expresin matricial de
un escalado a partir del origen es del tipo:

k 0 0

0 k 0
0 0 1

donde k es el factor de escala que desconocemos.


Ahora aplicaremos el escalado al triangulo, es decir, a los vrtices del triangulo:

k 0 0 1 k


0 k 0 1 k
0 0 1 1 1


k 0 0 2 2k


0 k 01 k
0 0 11 1


k 0 0 2 2k


0 k 0 2 2k
0 0 11 1


De manera que el triangulo que nos resulta, despus de aplicar el escalado, es:
T de vrtice A (k, k), B (2k, k) i C (2k, 2k).
El rea del triangulo final la podemos calcular, usando que T es un triangulo
rectngulo donde el ngulo recto est situado en A y las aristas de T en A miden k.
Por tanto, el rea de T es (k k)/2.
Finalmente, el enunciado nos dice que el rea de T ha de ser cuatro veces la
de T, es decir, 2. Por tanto, ha de verificarse que:
(k k)/2 2
De manera que, resolviendo la ecuacin, tenemos que k 2.
b) Para hacer un giro sobre un punto que no sea el origen, procederemos tal

y como hemos visto en el subapartado 3.3 y en los ejercicios 1, 2 y 3. En primer

Transformaciones geomtricas

56

FUOC PID_00151936

lugar, buscaremos la traslacin que nos convierta el punto (1, 0) en el origen


de coordenadas, despus haremos el giro que nos piden y finalmente devolveremos el origen al punto (1, 0).
La matriz de traslacin que nos convierte el punto (1, 0) en el origen de
coordenadas es:

1 0 1
T 0 1 0
0 0 1

Ahora, dado que la matriz de giro genrica de centro en el origen es:

cos() sin() 0

sin() cos() 0
0
0
1

y como el ngulo de nuestro giro es /2, tenemos que la matriz de rotacin es:

0 1 0
R 1 0 0

0 0 1

La matriz de traslacin que nos convierte el origen de coordenadas en el punto


(1, 0) es:

1 0 1
T 1 0 1 0

0 0 1

As, la composicin traslacin-rotacin-traslacin ser


A T1 R T

1 0 1 0 1 0 1 0 1 0 1 1

A 0 1 0 1 0 0 0 1 0 1 0 1
0 0 1 0 0 1 0 0 1 0 0 1

Ahora aplicaremos la transformacin al tringulo, es decir, a los vrtices del


tringulo:

0 1 1 1 2


1 0 1 1 2
0 0 1 1 1

Transformaciones geomtricas

57

FUOC PID_00151936

0 1 1 2 2


1 0 1 1 3
0 0 1 1 1


0 1 1 2 3


1 0 1 2 3
0 0 1 1 1


De manera que las nuevas coordenadas de T son:
A2 (2, 2) B2 (2, 3) y C2 (3, 3).
c) En primer lugar consideramos que una matriz de translacin es de la forma:

1 0 x

T 0 1 y
0 0 1

Ahora, dado que la matriz de giro genrica de centro en el origen es:

cos() sin() 0
R sin() cos() 0
0
0
1

Nos dicen que aplicamos la rotacin y luego la traslacin, de manera que la


transformacin que nos resulta es:
ATR

1 0 x cos() sin() 0 cos() sin() x

A 0 1 y sin() cos() 0 sin() cos() y


0 0 1 0
0
1 0
0
1


Ahora imponemos que el vrtice A se convierta en A3 , el B, en B3 y el C, en el
C3:

cos() sin() x 1 cos() sin() x 1



sin() cos() y 1 sin() cos() y 0
0
1
0
1 1
1


cos() sin() x 2 2 cos() sin() x 2



sin() cos() y 1 2 sin() cos() y 0
0
1
0
1 1
1


cos() sin() x 2 2 cos() 2 sin() x 2



sin() cos() y 2 2 sin() 2 cos() y 1
0
1
0
1 1
1

Transformaciones geomtricas

58

FUOC PID_00151936

Transformaciones geomtricas

De manera que tenemos 6 ecuaciones tiles a verificar:


cos() sin() x 1
sin() cos() y 0
2 cos() sin() x 2
2 sin() cos() y 0
2 cos() 2 sin() x 2
2 sin() 2 cos() y 1

Ahora tenemos que de la primera y la tercera sin() 1 y de la segunda y la


cuarta cos() 0, ahora usamos esta informacin en la primera y segunda
ecuacin y tenemos que x 0 y que y 1.
cos() sin() x 1 0 0

A sin() cos() y 0 1 1
0
0
1 0 0 1

6.
a) Matriz de la traslacin T:
1 0 7

0 1 9
0 0 1

Matriz de la rotacin R:

1 0 6

0 1 5
0 0 1

2
2
2
2
0

1 0 6


0 0 1 5
0 0 1

1

2
2
2
2
0

2
2
2
2
0

2
2
2
2
0

11 2
6
2

2
5
2

Matriz de la composicin R T:

2
2
2
2
0

11 2
6

2
1 0 7

2

5 0 1 9
2


0 0 1
1

2
2
2
2
0

2
2
2
2
0

2
2
2
2
0

9 2
6
2

17 2
5
2

b) Trasformado de P1(0, 8)

2
2
2
2
0

2
2
2
2
0

17 2

9 2
6
6

2
0 2

9 2

17 2
5 8
5
2
1 2

1
1

59

FUOC PID_00151936

Transformaciones geomtricas

Trasformado de P2(4, 0)

2
2
2
2
0

2
2
2
2
0

5 2

9 2
6
6

2
4 2

17 2
13 2
5 0
5
2
1 2

1
1

2
2
2
2
0

9 2
6
6

2
0 2

25 2

17 2
5 8
5
2
1 2

1
1

2
2
2
2
0

13 2

9 2
6
6

2
2
4

21 2

17 2
5 0
5
2
1 2

1
1

Trasformado de P3(0, 8)

2
2
2
2
0

Trasformado de P4(4, 0)

2
2
2
2
0

c) y d) Ved la pantalla Wiris:

7. Una vez ya sabemos cul es el ngulo de rotacin (que es


matriz de rotacin:

cos( 2 ) sin( 2 ) 0
0 1 0

R sin( 2 ) cos( 2 ) 0 esto es: R 1 0 0


0
0 0 1
0
1

), hallamos la

60

FUOC PID_00151936

Transformaciones geomtricas

Puesto que se trata de una rotacin genrica (no sobre el origen) ser necesario
aplicar una traslacin (la traslacin que desplace el punto de rotacin hasta el
origen) y, despus de aplicar la rotacin, deshacer la traslacin.

Dado que lo que queremos hallar es el punto de rotacin, lo llamaremos (x, y)


y la matriz de traslacin ser:

1 0 x

T 0 1 y
0 0 1

As, pues, la matriz compuesta traslacin-rotacin- deshacer traslacin ser:

A T 1 R T

Con la ayuda de la Wiris, realizamos estos clculos:

Por tanto, la matriz resultante de aplicar la rotacin inicial (la que se indica en
el enunciado del ejercicio) es:

0 1 x y

A 1 0 x y
0 0
1

Y, al multiplicar esta matriz por el punto inicial se obtiene las coordenadas del
punto transformado. Si aplicamos esto obtenemos el punto de rotacin y lo
igualamos al punto transformado, tenemos la solucin al ejercicio:

Por tanto, el punto de rotacin es el punto (1, 1).


Grficamente, con la Wiris, podemos comprobar los resultados:

Observacin
Observad que el orden de las
matrices es inverso al orden de
las transformaciones asociadas,
siendo la situada en el extremo
derecho la primera transformacin en aplicarse, y la situada en
el extremo izquierdo, la ltima.

61

FUOC PID_00151936

8.
a) En primer lugar, encontraremos la matriz de rotacin R. Como , se tiene:
cos() sin() 0 1 0 0
R sin() cos() 0 0 1 0
0
0
1 0 0 1
Ahora bien, como se trata de una rotacin genrica, ser necesario: a) aplicar
una traslacin antes de la rotacin (para desplazar el punto de rotacin hasta
el origen), y b) despus de aplicar la rotacin, deshacer la traslacin anterior.

Como el punto de rotacin es el (2, 1), la matriz de traslacin ser:

1 0 2
T 0 1 1
0 0 1
Por lo tanto, la matriz compuesta traslacin-rotacin-traslacin ser:

A T 1 R T

La matriz de escalado:

2 0 0
S 0 3 0
0 0 1

1 0 4
A 0 1 2
0 0 1

Transformaciones geomtricas

62

FUOC PID_00151936

Por lo tanto, la matriz resultante de aplicar la rotacin ms el escalado (en este


orden) ser:

2 0 8
S A 0 3 6
0 0 1
Al multiplicar esta matriz por cada un de los vectores columna que contienden
las coordenadas del polgono original, obtenemos las coordenadas del polgono resultante:

1 6
S A 1 3
1 1

3 2
S A 1 3
1 1

3 2
S A 4 6
1 1

0 8
S A 3 3
1 1

b) A continuacin se muestra un grfico que contiene los dos polgonos, el original el pequeo y el resultante el grande despus de aplicar las transformaciones pedidas (primero se muestran las intrucciones Wiris utilizadas y
posteriormente aparece el grfico que es el que se pide en el ejercicio; como
ya debis saber, la Wiris permite realizar rotaciones automticamente, con una
sola instruccin, sin embargo no se pueden hacer escalados si no se indican
las instrucciones que hay que seguir:

Transformaciones geomtricas

FUOC PID_00151936

63

Transformaciones geomtricas

FUOC PID_00151936

64

Glosario
ngulo de rotacin m ngulo que determina la magnitud de la rotacin alrededor del eje
de rotacin.
coordenadas homogneas f Dado un punto P(x, y) del plano, se llaman coordenadas homogneas del mismo a las coordenadas (xw, yw, w), siendo w un escalar no nulo (es frecuente
usar w 1 para simplificar). La idea se puede generalizar a ms dimensiones.
eje de rotacin m Eje alrededor del cual se produce el giro del punto u objeto.
escalado m Aplicar un escalado sobre un punto P consiste en multiplicar por factores de
escala (uno por eje) la distancia entre P y el punto fijo del escalado P0. El resultado ser un
nuevo punto P = S P, siendo S la matriz de escalado.
factores de escala m En un escalado, se consideran tantos factores de escala como ejes haya. Cada factor de escala se multiplica por la distancia, medida sobre cada eje, entre el punto
fijo y el punto a escalar.
punto fijo m Punto a partir del cual se produce el escalado (los factores de escala afectan a
la distancia existente entre el punto al que se le desea aplicar el escalado y el punto fijo).
rotacin f Aplicar una rotacin sobre un punto P consiste en hacer girar dicho punto alrededor de un eje de rotacin, tras lo cual se convertir en el punto P = R P, siendo R la matriz
de rotacin.
transformacin afn en 2D f Una transformacin afn en 2D sobre un punto P(x, y) es
una transformacin de coordenadas de la forma:
x = a11x + a12y + b1
y = a21x + a22y + b2
trasladar v tr Aplicar una traslacin sobre un punto P consiste en desplazarlo en lnea recta,
tras lo cual se convertir en el punto P = P + T, siendo T el vector de traslacin.
vector de traslacin m Vector que indica la direccin, el sentido y la distancia de desplazamiento asociada a una traslacin.

Bibliografa
Bibliografa bsica
Foley, J. y otros (1994). Introduction to Computer Graphics. Addison-Wesley
Considerado por muchos como uno de los mejores libros para introducirse en el mundo de
la programacin de grficos 3D. Presenta bastantes ejemplos realizados en C.
Hearn, D.; Pauline, M. (1996). Computer Graphics. C version. Prentice Hall.
Completo libro sobre generacin de grficos con ordenador. Incluye varios captulos dedicados a los fundamentos matemticos de la Informtica Grfica. Utiliza C en muchos ejemplos.
Schneider, P.; Everly, D. (2003). Geometric Tools for Computer Graphics. Morgan Kaufmann
Publishers.
Libro completo que trata con profundidad los conceptos desarrollados en este mdulo y
otros ms avanzados. Incluye cdigo en C de muchos ejemplos.

Bibliografa complementaria
Angel, E. (1996). Interactive Computer Graphics: A top-down approach with OpenGL. AddisonWesley.
Berg, M. y otros (2000). Computational Geometry. Springer.
Mortenson, M. (1999). Mathematics for Computer Graphics Applications. Industrial Press.
Watt, A. (1999). 3D Computer Graphics. Addison Wesley.

Transformaciones geomtricas

También podría gustarte