Você está na página 1de 64

Transformaciones

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

PID_00151936

http://librosysolucionarios.net
http://librosysolucionarios.net
FUOC PID_00151936 Transformaciones geomtricas

ndice

Introduccin ............................................................................................ 5

Objetivos ................................................................................................... 6

Conocimientos previos .......................................................................... 7

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

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

http://librosysolucionarios.net
FUOC PID_00151936 Transformaciones geomtricas

Glosario ..................................................................................................... 64

Bibliografa .............................................................................................. 64

http://librosysolucionarios.net
FUOC PID_00151936 5 Transformaciones geomtricas

Introduccin

La traslacin, el escalado y la rotacin son transformaciones geomtricas usa-


das con frecuencia en el campo de la informtica grfica. Estas transformacio-
nes 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 herra-
mientas matemticas estn relacionadas con la creacin de objetos animados,
ya sea en el campo de los vdeo-juegos (movimientos de cmara caracters-
ticos 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 co-
leccin 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 su-
perficie 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 apli-
car traslaciones, escalados y rotaciones a objetos en 2D y 3D, con solo realizar
productos de matrices.

http://librosysolucionarios.net
FUOC PID_00151936 6 Transformaciones geomtricas

Objetivos

Los objetivos docentes que se pretenden lograr con este mdulo son los si-
guientes:

1. Entender los conceptos geomtricos de traslacin, escalado y rotacin, tan-


to 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 me-


diante 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 transforma-
ciones.

http://librosysolucionarios.net
FUOC PID_00151936 7 Transformaciones geomtricas

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.

http://librosysolucionarios.net
http://librosysolucionarios.net
FUOC PID_00151936 9 Transformaciones geomtricas

1. Ejemplo introductorio

En informtica grfica aparece con frecuencia la necesidad de aplicar transfor-


maciones 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 apli-
car una combinacin de traslaciones, rotaciones y escalados (en cualquier or-
den), 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-cal-


cular 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).

http://librosysolucionarios.net
FUOC PID_00151936 10 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 distan-
cias 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 trasla-


cin de un punto como:

P' P T (3)

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

http://librosysolucionarios.net
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) apli-
cando un vector de traslacin
de componentes (2, 3), con
lo que el resultado ser el pun-
to 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.

http://librosysolucionarios.net
FUOC PID_00151936 12 Transformaciones geomtricas

2.2. Traslacin de objetos

La traslacin es una transformacin que mueve objetos sin causarles defor-


macin 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 polgo-
nos pueden trasladarse sin ms que trasladar cada uno de sus vrtices y,
posteriormente, reconstruir el polgono a partir de los nuevos vrtices (fi-
gura 5).

Figura 5
Comentario

En la figura 5 se ha hecho
uso del software Mathematica
para definir una funcin,
traslacion2D, que permite tras-
ladar polgonos definidos por
sus vrtices.
En este caso se ha aplicado una
traslacin de vector (10, 7)
a un objeto en forma de E.

http://librosysolucionarios.net
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 curvi-
lneos: 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 identifi-


car 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.

http://librosysolucionarios.net
FUOC PID_00151936 14 Transformaciones geomtricas

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 con-
vertirse 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 ori-
gen de coordenadas, es decir, el punto (0, 0).

El ngulo de rotacin, , puede tomar valores reales tanto positivos como ne-
gativos. 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 en-
tre el punto P y el origen de coordenadas (distancia que se mantiene constante
durante la rotacin).

http://librosysolucionarios.net
FUOC PID_00151936 15 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)

x' x cos sin


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

http://librosysolucionarios.net
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 coorde-
nadas. Se aplican dos rotacio-
nes, 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.

http://librosysolucionarios.net
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 caracteri-
zan, aplicar las ecuaciones de rotacin sobre dichos puntos y, posterior-
mente, 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 po-
lgono, se pueden aplicar las ecuaciones de rotacin a los vrtices que lo defi-
nen 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 se-
miejes 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.

http://librosysolucionarios.net
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 coorde-


nadas, 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 ge-
nrico.

http://librosysolucionarios.net
FUOC PID_00151936 19 Transformaciones geomtricas

Figura 13

http://librosysolucionarios.net
FUOC PID_00151936 20 Transformaciones geomtricas

Figura 14
Comentario

En la figura 14, se muestra


la rotacin anterior usando
esta vez el programa Wiris.

http://librosysolucionarios.net
FUOC PID_00151936 21 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 de-


cir, 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, (9)

x' x s 0
donde: P ' , P y S = x es la matriz de escalado.
y
' y
0 sy

http://librosysolucionarios.net
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 coordena-
das. Se aplican dos escalados,
uno con factores de escala su-
periores a la unidad (que aleja
el punto del origen), y el otro
con factores de escala inferio-
res 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 trans-
formacin de escalado s que deformar el objeto, puesto que altera el tama-
o 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 ta-
mao del objeto es alterado, se mantendrn las proporciones relativas del
mismo.

Al aplicar las ecuaciones (9) de escalado sobre los puntos que definen un ob-
jeto, no slo se modifica el tamao del mismo, sino que tambin se altera su
posicin con respecto al punto fijo (figura 17).

http://librosysolucionarios.net
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 fac-
tor) los objetos al origen de coordenadas, mientras que factores de escala su-
periores 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 es-
calado sin ms que aplicar las ecuaciones de escalado a cada uno de sus vr-
tices 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, pos-
teriormente, utilizar los puntos escalados y los parmetros geomtricos
para reconstruir el objeto.

http://librosysolucionarios.net
FUOC PID_00151936 24 Transformaciones geomtricas

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 distin-
to 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 co-
incida 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 posi-
cin original.

Figura 18

http://librosysolucionarios.net
FUOC PID_00151936 25 Transformaciones geomtricas

http://librosysolucionarios.net
FUOC PID_00151936 26 Transformaciones geomtricas

5. Notacin matricial eficiente

Las aplicaciones grficas suelen hacer uso de transformaciones geomtricas su-


cesivas o encadenadas. As por ejemplo, para realizar una animacin puede re-
sultar 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 se-
cuencial sobre la misma imagen. En ambos casos, resultar fundamental utili-
zar 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 mul-
y
' y

tiplicativos (M1 ser la matriz identidad, I2


1 0
, en el caso de traslacio-
0 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, re-
sultar necesario calcular las coordenadas transformadas en cada paso de la se-
cuencia. 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 pun-
to, P.

2) Sobre las nuevas coordenadas, P', obtenidas en el paso anterior, aplicar ro-
tacin 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 for-
ma que las coordenadas finales P''' se obtengan directamente de las iniciales P,
eliminando as el clculo de coordenadas intermedias.

http://librosysolucionarios.net
FUOC PID_00151936 27 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 ex-
presar cualquier transformacin como producto de matrices.

Obviamente, tambin ser necesario expandir a vectores columnas de tres ele-


mentos las coordenadas de cualquier punto, para lo cual se hace uso de las lla-
madas 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 res-


cribir como:

x ' 1 0 tx x

y ' 0 1 ty y (10)
1 0 0 1 1

o, dicho de otro modo:

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

La inversa de la matriz de traslacin se puede obtener reemplazando los par-


metros 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, apli-
cando un vector de traslacin
de componentes (2.5, 2), con
lo que el resultado ser el nue-
vo polgono O2.

http://librosysolucionarios.net
FUOC PID_00151936 28 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 coorde-


nadas, la expresin (7) se puede rescribir como:

x ' cos sin 0 x



y ' sin cos 0 y (12)
1 0 0 1 1

o, dicho de otro modo:

P' = R() P (13)

La inversa de la matriz de rotacin se obtiene solo con reemplazar el parme-


tro por .

http://librosysolucionarios.net
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, apli-
cando 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.

http://librosysolucionarios.net
FUOC PID_00151936 30 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 0 0 x
(14)
y ' 0 sy 0 y
1 0 0 1 1

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 pa-


1
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 polgo-
no O1, definido por sus
vrtices.

http://librosysolucionarios.net
FUOC PID_00151936 31 Transformaciones geomtricas

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 apli-


car 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 conside-


ran dos rotaciones consecutivas de ngulos respectivos 1 y 2, se pueden cal-
cular (aplicando asociatividad) las coordenadas finales como:

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

http://librosysolucionarios.net
FUOC PID_00151936 32 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 cos 1 sin 1 0 cos(1 2 ) sin(1 2 ) 0



sin 2 cos 2 0 sin 1 cos 1 0 sin(1 2 ) cos(1 2 ) 0
0 0 1 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 con-


sideran 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 oca-


siones 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 sx1 0 0 sx 2 sx1 0 0

0 sy 2 0 0 sy 1 0 0 sy 2 sy 1 0
0 0 1 0 0 1 0 0 1

O, en otras palabras:

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

http://librosysolucionarios.net
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, apli-
cando 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.

http://librosysolucionarios.net
FUOC PID_00151936 34 Transformaciones geomtricas

7. Transformaciones afines en 2D

Una transformacin afn en 2D es una transformacin de coordena-


das de la forma:

x' a11x a12y b1 y' a21x a22y b2 (15)

Observar que, en una transformacin afn, cada una de las coordenadas trans-
formadas 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 afi-


nes 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.

http://librosysolucionarios.net
FUOC PID_00151936 35 Transformaciones geomtricas

8. Transformaciones geomtricas en 3D

La teora expuesta para las transformaciones geomtricas en 2D se puede ex-


tender 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 tam-
bin 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 produc-
to de las respectivas matrices asociadas a cada una de las transforma-
ciones individuales.

8.1. Traslacin de puntos y objetos

Las ecuaciones (10) y (11), referentes a la traslacin de un punto en 2D, se pue-


den 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 0 0 tx x

y ' 0 1 0 ty y
(16)
z' 0 0 1 tz z

1 0 0 0 1 1

o, dicho de otro modo:

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

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

http://librosysolucionarios.net
FUOC PID_00151936 36 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 si-
guiente 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 ab-
soluto 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 ca-
ras. En este caso se ha aplicado una traslacin de vector (0, 2,1) a una pir-
mide.

http://librosysolucionarios.net
FUOC PID_00151936 37 Transformaciones geomtricas

Figura 27

8.2. Rotacin de puntos y objetos

Cuando se trata de rotar un punto y, en general, cualquier objeto en 3D, re-


sulta necesario especificar tanto el ngulo como el eje de rotacin er. A dife-
rencia 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 cor-
taba 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).

http://librosysolucionarios.net
FUOC PID_00151936 38 Transformaciones geomtricas

Figura 28. Rotacin de un punto en 3D

Por lo que al ngulo de rotacin se refiere, siempre que ste sea positivo indi- Nota
car rotaciones en el sentido contrario al que siguen las agujas del reloj (se su-
Otra forma de dar el ngulo
pondr que siempre se contempla el objeto desde el correspondiente semieje en 3D es considerar el sentido
contrario al del giro de avance
positivo). Por el contrario, valores negativos del ngulo de rotacin indican de un sacacorchos (para
diestros).
movimientos en el sentido de las agujas del reloj.

Las ecuaciones (12) y (13), referentes a la rotacin de un punto en 2D alrede-


dor 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 0 0 x



y ' sin cos 0 0 y
z' 0 0 1 0 z (18)

1
0 0 0 11

o, dicho de otro modo:

P' = Rz() P (19)

Como resulta evidente, la expresin matricial anterior es equivalente al si-


guiente 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 asocia-
das a la rotacin de un punto P alrededor de los ejes x e y sern, respectiva-
mente:

http://librosysolucionarios.net
FUOC PID_00151936 39 Transformaciones geomtricas

x' 1 0 0 0 x

y '
0 cos sin 0 y
Rotacin sobre eje x: (21)
z ' 0 sin cos 0 z

1 0 0 0 11

x ' cos 0 sin 0 x



Rotacin sobre eje y: y ' 0 1 0 0 y (22)
z ' sin 0 cos 0 z

1 0 0 0 11

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.

http://librosysolucionarios.net
FUOC PID_00151936 40 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 nin-
guno 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 , respectiva-
mente, (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 0 0 0 x
y ' 0 sy 0 0 y
(23)
z ' 0 0 sz 0 z

1 0 0 0 1 1

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 es-
pecifican los valores de escalado con respecto a cada uno de los tres ejes coor-
denados (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)

http://librosysolucionarios.net
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 ecua-


ciones 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 de-
formaciones (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 de-
finidos por sus caras.
En este caso se ha aplicado un
escalado de vector (1.5, 2, 2)
a una pirmide.

http://librosysolucionarios.net
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 si-
guiente 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 tranfor-
maciones en 3D y mostrar
el resultado grfico.

http://librosysolucionarios.net
FUOC PID_00151936 43 Transformaciones geomtricas

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 con-
siste 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 compo-
sicin 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).

http://librosysolucionarios.net
FUOC PID_00151936 44 Transformaciones geomtricas

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 apli-
cado 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 indi-
can 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.

http://librosysolucionarios.net
FUOC PID_00151936 45 Transformaciones geomtricas

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


2 transforma el punto (2, 0) en el punto
(2, 2). Hallad el punto de rotacin sobre el cual se hace la transformacin. Uti-
lizad 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).

http://librosysolucionarios.net
FUOC PID_00151936 46 Transformaciones geomtricas

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, des-
hacer 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:

0 1 5

A T1 R T 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 or-
den) ser:

0 3 15

S A 2 0 2
0 0 1

http://librosysolucionarios.net
FUOC PID_00151936 47 Transformaciones geomtricas

(observar que el orden de las matrices es el inverso al orden de las transforma-


ciones asociadas, siendo la situada en el extremo derecho la primera en apli-
carse y la situada en el extremo izquierdo la ltima).

Al multiplicar dicha matriz por cada uno de los vectores columna que contie-
nen las coordenadas del polgono original, obtenemos las coordenadas del po-
lgono resultante:

1 12 3 9
S A 1 4 S A 2 8
1 1 1 1

3 0 1 3
S A 5 8 S A 4 4
1 1 1 1

En la figura 33, generada con Mathcad, se muestra el polgono original y el po-


lgono 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. Aho-
ra, 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

http://librosysolucionarios.net
FUOC PID_00151936 48 Transformaciones geomtricas

Con lo que las coordenadas del polgono resultante sern:

1 3 3 1
A S 1 4 A S 2 10
1 1 1 1

3 5 1 3
A S 5 10 A S 4 4
1 1 1 1

Queda claro, pues, que el orden en que se aplique cada transformacin es re-
levante 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

http://librosysolucionarios.net
FUOC PID_00151936 49 Transformaciones geomtricas

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, des-
hacer 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:

1 0 0

A T1 RT A 0 1 2
0 0 1

El siguiente paso es determinar la matriz de escalado. Si se tratase de un esca-


lado 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:

2 0 1

EU 1
SU E 0 3 2
0 0 1

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

2 0 1

E A 0 3 4
0 0 1

http://librosysolucionarios.net
FUOC PID_00151936 50 Transformaciones geomtricas

Al multiplicar dicha matriz por cada uno de los vectores columna que contie-
nen las coordenadas del polgono original, obtenemos las coordenadas del po-
lgono resultante:

2 5 5 11 5 11 3 7
E A 1 1 E A
1 1 E A

2 2 E A 2 2
1 1 1 1 1 1 1 1

3 7 5 11 5 11 2 5
E A 4 8 E A
4 8 E A

5 8 E A 5 11
1 1 1 1 1 1 1 1

En la figura 35, generada con Mathcad, se muestra el polgono original y el po-


lgono 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 1 1 1 0 0 2

0 1 1 1 1 0 1 0 1
O T
2 0 0 0 0 0 0 1 3

1 1 1 1 1 0 0 0 1

Por tanto, las nuevas coordenadas sern:

2 1 3 3 1

1 2 2 0 0
OT
5 3 3 3 3

1 1 1 1 1

http://librosysolucionarios.net
FUOC PID_00151936 51 Transformaciones geomtricas

Figura 36

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

1 0 0 0 1 0 0 0

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

0 0 0 1 0 0 0 1

Por tanto, las nuevas coordenadas sern:

0 1 1 1 1

0 1 1 1 1
RO
2 0 0 0 0

1 1 1 1 1

Figura 37

http://librosysolucionarios.net
FUOC PID_00151936 52 Transformaciones geomtricas

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

cos() 0 sin() 0 1 0 00

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

0 0 0 1 0 0 0 1

Por tanto, las nuevas coordenadas sern:

0 1 1 1 1

0 1 1 1 1
RO
2 0 0 0 0

1 1 1 1 1

Figura 38

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

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

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

0 0 0 1 0 0 0 1

Por tanto, las nuevas coordenadas sern:

0 1 1 1 1

0 1 1 1 1
RO
2 0 0 0 0

1 1 1 1 1

http://librosysolucionarios.net
FUOC PID_00151936 53 Transformaciones geomtricas

Figura 39

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

2 0 0 0

0 2 0 0
S
0 0 2 0

0 0 0 1

Por tanto, las nuevas coordenadas sern:

0 2 2 2 2

0 2 2 2 2
SO
4 0 0 0 0

1 1 1 1 1

Figura 40

http://librosysolucionarios.net
FUOC PID_00151936 54 Transformaciones geomtricas

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


a partir del origen es:

2 0 0 0

0 2 0 0
S
0 0 2 0

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 reali-
zado el escalado, habr que deshacer la traslacin anterior.

La matriz de traslacin que desplaza el punto fijo (1,2,1) al origen es:

1 0 0 1

0 1 0 2
T
0 0 1 1

0 0 0 1

As que la matriz resultante de aplicar traslacin-escalado-traslacin y las nue-


vas coordenadas del objeto sern, respectivamente:

2 0 0 1 1 3 1 1 3

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

0 0 0 1 1 1 1 1 1

Figura 41

http://librosysolucionarios.net
FUOC PID_00151936 55 Transformaciones geomtricas

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 mi-
den 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

http://librosysolucionarios.net
FUOC PID_00151936 56 Transformaciones geomtricas

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 devolve-
remos 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

http://librosysolucionarios.net
FUOC PID_00151936 57 Transformaciones geomtricas

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 0 1 1 1 1

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



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

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



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

http://librosysolucionarios.net
FUOC PID_00151936 58 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:

2 2 2 2 11 2
0 6
2 2 2 2 2
1 0 6 1 0 6
2 2 2 2 2
0 1 5 0 0 1 5 5
0 0 1 2 2 0 0 1 2 2 2
0 0 1 0 0 1


Matriz de la composicin R T:

2 2 11 2 2 2 9 2
6 6
2 2 2 1 0 7 2 2 2
2 2 2 2 2 17 2
5 0 1 9 5
2 2 2 2 2 2
0 0 1 0 0 1 0 0 1



b) Trasformado de P1(0, 8)

2 2 9 2 17 2
6 6
2 2 2 0 2
2 2 17 2 9 2
5 8 5
2 2 2 1 2
0 0 1 1


http://librosysolucionarios.net
FUOC PID_00151936 59 Transformaciones geomtricas

Trasformado de P2(4, 0)

2 2 9 2 5 2
6 6
2 2 2 4 2
2 2 17 2 13 2
5 0 5
2 2 2 1 2
0 0 1 1


Trasformado de P3(0, 8)

2 2 9 2 2
6 6
2 2 2 0 2
2 2 17 2 25 2
5 8 5
2 2 2 1 2
0 0 1 1


Trasformado de P4(4, 0)

2 2 9 2 13 2
6 6
2 2 2 4 2
2 2 17 2 21 2
5 0 5
2 2 2 1 2
0 0 1 1


c) y d) Ved la pantalla Wiris:

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


2
), hallamos la
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 1 0 0 1

http://librosysolucionarios.net
FUOC PID_00151936 60 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 Observacin

Observad que el orden de las


Con la ayuda de la Wiris, realizamos estos clculos: matrices es inverso al orden de
las transformaciones asociadas,
siendo la situada en el extremo
derecho la primera transforma-
cin en aplicarse, y la situada en
el extremo izquierdo, la ltima.

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:

http://librosysolucionarios.net
FUOC PID_00151936 61 Transformaciones geomtricas

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:

1 0 4
A T 1 R T A 0 1 2
0 0 1

La matriz de escalado:

2 0 0
S 0 3 0
0 0 1

http://librosysolucionarios.net
FUOC PID_00151936 62 Transformaciones geomtricas

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 polgo-
no resultante:

1 6 3 2
S A 1 3 S A 1 3
1 1 1 1

3 2 0 8
S A 4 6 S A 3 3
1 1 1 1

b) A continuacin se muestra un grfico que contiene los dos polgonos, el ori-


ginal el pequeo y el resultante el grande despus de aplicar las trans-
formaciones 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:

http://librosysolucionarios.net
FUOC PID_00151936 63 Transformaciones geomtricas

http://librosysolucionarios.net
FUOC PID_00151936 64 Transformaciones geomtricas

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 ho-
mogneas 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 ha-
ya. 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 alrede-
dor 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 despla-


zamiento 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 dedica-
dos 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. Addison-
Wesley.

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.

http://librosysolucionarios.net

Você também pode gostar