Sunteți pe pagina 1din 265

2.2 Coordenadas homogneas y representacin matricial.

Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por


ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

7
-$%&4.


Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7
8

-$%&=.
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.


9



2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.
10

o
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

11
/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7





-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

&. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
,. Eire el objeto con respecto del origen de las coordenadas.
3. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

12
n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.



que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

&. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
,. scale el objeto con respecto del origen de las coordenadas.
3. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7




13


-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
14
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7


15


Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

&. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
,. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
16
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

17
-$%3;.

#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7
18

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.
19

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.
20

Program transform>bject -input, output.K

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
21
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
22
m L&, ,M 7 ) %sin -a.K
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
23
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales
24

#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

25
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
26
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
27
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
&. :raslacin de P
&
al origen.
,. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
3. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
28
D. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
29
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
30
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.


Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
31
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
> como

32
P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.





2.3 Composicin de transformaciones bidimensionales.
33

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

34
que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7



35


-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

D. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
$. Eire el objeto con respecto del origen de las coordenadas.
4. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.



36
que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

D. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
$. scale el objeto con respecto del origen de las coordenadas.
4. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






-$% 33.

37
:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

2.3.$ %ropiedades de concatenacin

38
0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
39
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

3. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
D. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
40
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son

41

'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.

42
Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
43
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K

44
:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
for c 7 ) & to 3 do
45
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
46
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
47
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
48
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7
49


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.
50

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
51
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
$. :raslacin de P
&
al origen.
4. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
8. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
;. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
52
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
53
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
54
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.


55
Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
> como
56

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.





57
2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.
58

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7


59



-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

8. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
;. Eire el objeto con respecto del origen de las coordenadas.
=. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.


60

que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

8. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
;. scale el objeto con respecto del origen de las coordenadas.
=. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






-$% 33.
61

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

2.3.$ %ropiedades de concatenacin
62

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
63
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

$. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
4. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

64
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

65
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
66

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
67
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
68

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
69
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
70
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
71
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

72
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

73
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
74
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
75
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
=. :raslacin de P
&
al origen.
&6. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
&&. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
76
&,. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
77
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

78
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

79

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
80
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




81

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
82
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

83




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

&6. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
&&. Eire el objeto con respecto del origen de las coordenadas.
&,. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

84


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

&6. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
&&. scale el objeto con respecto del origen de las coordenadas.
&,. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






85
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

86
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




87
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

8. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
;. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

88
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

89
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
90

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
91
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
92

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
93
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
94
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
95
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

96
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

97
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
98
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
99
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
&3. :raslacin de P
&
al origen.
&D. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
&$. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
100
&4. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
101
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

102
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

103

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
104
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




105

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
106
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

107




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

&3. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
&D. Eire el objeto con respecto del origen de las coordenadas.
&$. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

108


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

&3. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
&D. scale el objeto con respecto del origen de las coordenadas.
&$. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






109
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

110
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




111
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

=. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
&6. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

112
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

113
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
114

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
115
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
116

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
117
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
118
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
119
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

120
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

121
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
122
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
123
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
&8. :raslacin de P
&
al origen.
&;. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
&=. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
124
,6. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
125
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

126
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

127

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
128
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




129

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
130
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

131




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

&4. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
&8. Eire el objeto con respecto del origen de las coordenadas.
&;. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

132


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

&4. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
&8. scale el objeto con respecto del origen de las coordenadas.
&;. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






133
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

134
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




135
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

&&. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
&,. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

136
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

137
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
138

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
139
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
140

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
141
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
142
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
143
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

144
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

145
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
146
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
147
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
,&. :raslacin de P
&
al origen.
,,. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
,3. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
148
,D. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
149
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

150
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

151

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
152
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




153

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
154
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

155




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

&=. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
,6. Eire el objeto con respecto del origen de las coordenadas.
,&. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

156


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

&=. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
,6. scale el objeto con respecto del origen de las coordenadas.
,&. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






157
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

158
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




159
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

&3. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
&D. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

160
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

161
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
162

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
163
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
164

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
165
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
166
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
167
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

168
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

169
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
170
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
171
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
,$. :raslacin de P
&
al origen.
,4. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
,8. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
172
,;. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
173
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

174
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

175

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
176
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




177

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
178
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

179




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

,,. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
,3. Eire el objeto con respecto del origen de las coordenadas.
,D. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

180


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

,,. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
,3. scale el objeto con respecto del origen de las coordenadas.
,D. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






181
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

182
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




183
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

&$. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
&4. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

184
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

185
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
186

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
187
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
188

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
189
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
190
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
191
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

192
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

193
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
194
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
195
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
,=. :raslacin de P
&
al origen.
36. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
3&. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
196
3,. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
197
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

198
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

199

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
200
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




201

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
202
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

203




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

,$. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
,4. Eire el objeto con respecto del origen de las coordenadas.
,8. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

204


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

,$. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
,4. scale el objeto con respecto del origen de las coordenadas.
,8. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






205
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

206
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




207
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

&8. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
&;. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

208
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

209
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
210

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
211
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
212

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
213
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
214
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
215
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

216
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

217
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
218
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
219
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
33. :raslacin de P
&
al origen.
3D. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
3$. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
220
34. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
221
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

222
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

223

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
224
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




225

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
226
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

227




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

,;. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
,=. Eire el objeto con respecto del origen de las coordenadas.
36. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

228


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

,;. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
,=. scale el objeto con respecto del origen de las coordenadas.
36. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






229
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

230
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




231
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

&=. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
,6. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

232
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

233
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
234

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
235
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
236

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
237
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
238
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
239
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

240
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

241
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
242
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
243
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
38. :raslacin de P
&
al origen.
3;. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
3=. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
244
D6. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
245
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
2.2 Coordenadas homogneas y representacin matricial.

246
Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Por
ejemplo, una animacin podra requerir que se traslade y gire un objeto en cada incremento del
movimiento. n aplicaciones de dise!o y de creacin de imgenes, reali"amos traslaciones,
rotaciones y escalaciones para ajustar los componentes de la imagen en sus posiciones
apropiadas. #qu, consideramos cmo se pueden volver a formular las representaciones de
matri" que anali"amos en las secciones anteriores de modo que se puedan procesar de manera
eficiente esas secuencias de transformacin.

n la seccin $%& vimos que es posible e'presar cada una de las transformaciones
bsicas en la forma de matri" general

P( ) M
&
* P + M
,
-$%&$.

/on las posiciones de coordenadas P y P( representadas como columnas de vector. 0a
matri" M
&
, es una matri" de , por , que contiene factores de multiplicacin y M
&
, es una matri"
de columnas de dos elementos que contiene trminos de traslacin. Para la traslacin, M
&
es la
matri" de identidad. Para la rotacin o la escalacin, M
,
contiene los trminos de traslacin
asociados con el punto pivote o el punto fijo de escalacin. /on el fin de producir una secuencia
de transformaciones con estas ecuaciones, como escalacin seguida por rotacin y luego
traslacin, debemos calcular las coordenadas transformadas un paso a 0a ve". Primero, se
escalan las posiciones de coordenadas, despus se giran estas coordenadas escaladas y, por
1ltimo, se trasladan las coordenadas giradas. 2n planteamiento ms eficiente combinara las
transformaciones de manera que se obtienen las posiciones de coordenadas finales
directamente a partir de las coordenadas iniciales para eliminar as el clculo de valores de
coordenadas intermedias. Para poder efectuar esto, necesitamos formular de nuevo la ecuacin
$%&$ con el propsito de eliminar la adicin de la matri" asociada con los trminos de traslacin
en M
,
.

Podemos combinar los trminos de multiplicacin y de adicin para transformaciones
geomtricas bidimensionales en una sola representacin de matri" al ampliar las
representaciones de matri" de , por , a matrices de 3 por 3. sto nos permite e'presar todas
las ecuaciones de matri" como multiplicaciones de matri", si tambin ampliamos las
representaciones de matri" para las posiciones de coordenadas. Para e'presar cualquier
transformacin bidimensional como una multiplicacin de matri", representamos cada posicin
de coordenadas cartesianas -', y. con la tres coordenadas homogneas -'
h
, y
h
, h., donde

-$%&4.

247

Por tanto, una representacin general de coordenadas homogneas se puede e'presar
tambin como -h*', h*y, h.. Para transformaciones geomtricas bidimensionales, seleccionamos
el parmetro homogneo h como cualquier valor no cero. #s, e'iste un n1mero finito de
representaciones homogneas equivalentes para cada punto de coordenadas -', y.. 2na opcin
conveniente consiste en slo establecer h ) &. ntonces, se representa cada posicin
bidimensional con las coordenadas homogneas -', y, &.. 5e requieren otros valores para el
parmetro h, por ejemplo, en las formulaciones de matri" de transformaciones de vista
tridimensionales.

n matemticas, se utili"a el trmino coordenadas homogneas para referirse al efecto
de esta representacin de ecuaciones cartesianas. /uando se convierte un punto cartesiano
-',y. a una representacin homognea -'
h
, y
h
, h. las ecuaciones que contienen ' y y, como f-',y.
) 6, se convierten en ecuaciones homogneas en los tres parmetros '
h
, y
h
y h. sto slo
significa que si se sustituye cada uno de los tres parmetros con cualquier valor v veces ese
parmetro, el valor v se puede factori"ar fuera de las ecuaciones.

'presar posiciones en coordenadas homogneas nos permite representar todas las
ecuaciones de transformacin geomtrica nos permite representar todas las ecuaciones de
transformacin geomtrica como multiplicaciones de matri". 5e representan las coordenadas
con vectores de columna de tres elementos y las operaciones de transformacin se e'presan
como matrices de 3 por 3. Para la traslacin, tenemos7
-$%&8.

9ue podemos e'presar en la forma abreviada

P( ) :-t
'
, t
y
. * P -$%&;.

/on :-t
'
, t
y
. como la matri" de traslacin de 3 por 3 en la ecuacin $%&8. 5e obtiene el inverso
de la matri" de traslacin al reempla"ar los parmetros de traslacin t
'
y t
y
con sus valores
negativos %t
'
y %t
y
.
<e modo similar, ahora se e'presan las ecuaciones de transformacin de rotacin con respecto
del origen de las coordenadas como7

-$%&=.
248
> como

P( ) ?-@. * P -$%,6.

l operador de transformacin de rotacin ?-@. es la matri" de 3 por 3 en la ecuacin $%&= con
el parmetro de rotacin @. >btenemos la matri" de rotacin inversa cuando se sustituye @ con
%@.
Por 1ltimo, ahora se e'presa una transformacin de escalacin con respecto del origen de las
coordenadas como la multiplicacin de matri"
-$%,&.

o
P( ) 5-s
'
, s
y
. * P -$%,,.

<onde 5-s
'
, s
y
. es la matri" de 3 por 3 en la ecuacin $%,& con los parmetros s
'
y s
y
.
#l sustituir sus inversos multiplicativos -&As
'
, &As
y
. se obtiene la matri" de esacalacin
inversa.

0as representaciones de matri" son mtodos estndar para implementar transformaciones en
sistemas de grficas. n muchos sistemas, las funciones de rotacin y escalacin producen
transformaciones con respecto del origen de las coordenadas, como en las ecuaciones $%&= y
$%,&. #s se manejan las rotaciones y escalaciones con respecto de otras posiciones de
referencia como una sucesin de operaciones de transformacin. 2n planteamiento alternativo
en un paquete de grficas consiste en dar los parmetros en las funciones de transformacin
para las coordenadas del punto fijo de esacalacin y las coordenadas del punto pivote. 0as
matrices generales de rotacin y escalacin que incluyen el punto pivote o fijo se establecen
entonces en forma directa sin necesidad de invocar una sucesin de funciones de
transformacin.




249

2.3 Composicin de transformaciones bidimensionales.

/on las representaciones de matri" de la seccin anterior, podemos establecer una matri" para
cualquier secuencia de transformaciones con una matriz de transformacin compuesta al
calcular el producto de la matri" de las transformaciones individuales. 0a creacin de productos
de matrices de transformacin a menudo se conoce como concatenacin o composicin de
matrices. Para la representacin de la matri" de columnas de las posiciones de coordenadas,
formamos transformaciones compuestas al multiplicar las matrices de derecha a i"quierda. s
decir, cada matri" de transformacin premultiplica el producto de las matrices de transformacin
previas.

2.3.1 Translaciones, rotaciones y escalaciones bidimensionales.

Traslaciones

5i se aplican dos vectores de traslacin sucesivos -t
'&
, t
y&
. y -t
',
, t
y,
. en la posicin de
coordenadas P, la locali"acin transformada final P( se calcula como7

P( ) :-t
',
, t
y,
. * B:-t
'&
, t
y&
. * PC

) B:-t
',
, t
y,
. * :-t
'&
, t
y&
. C * P -$%,3.

donde se representan P y P( como vectores de columna de coordenadas homogneas.
Podemos verificar este resultado al calcular el producto de la matri" para las dos agrupaciones
asociativas. #simismo, la matri" de transformacin compuesta para esta secuencia de
transformacin es7

-$%,D.

o
250
: -t
',
,t
y,
. * :-t
'&
,t
y&
. ) :-t
'&
+ t
',
, t
y&
+ t
y,
. -$%,$.

que demuestra que dos transformaciones sucesivas son aditivas.

otaciones

<os rotaciones sucesivas que se aplican en el punto P producen la posicin transformada7

P( ) ?-@
,
. * B?-@
&
. * PC

) B?-@
,
. * ?-@
&
.C * P -$%,4.

#l multiplicar las dos matrices de rotacin, podemos verificar que dos rotaciones sucesivas son
aditivas7

?-@
,
. * ?-@
&
. ) ?-@
,
+ @
&
. -$%,8.

de modo que es posible calcular las coordenadas giradas finales con la matri" de rotacin
compuesta como7

P() ?-@
,
+ @
&
. * P -$%,;.

!scalaciones

/oncatenar matrices de transformacin para dos operaciones de escalacin sucesivas produce
la siguiente matri" de escalacin compuesta7

251




-$%,=.

o

5-s
',
,s
y,
. * 5-s
'&
,s
y&
. ) 5-s
'&
* s
',
, s
y&
* s
y,
. -$%36.

0a matri" resultante en este caso indica que las operaciones de escalacin sucesivas son
multiplicativas. s decir, si debiramos triplicar el tama!o de un objeto dos veces en una
sucesin, el tama!o final sera de nueve veces el tama!o original.

2.3.2 otacin de punto de pivote general.

/on un paquete de grficas que solo ofrece una funcin de rotacin para girar objetos con
respecto del origen de las coordenadas, podemos generar casi cualquier punto pivote
seleccionado -'
r
,y
r
. al reali"ar la siguiente secuencia de operaciones de traslacin%rotacin%
traslacin7

3&. :raslade el objeto de modo que se mueva la posicin del punto pivote al origen de las
coordenadas.
3,. Eire el objeto con respecto del origen de las coordenadas.
33. :raslade el objeto de manera que se regrese el punto pivote a su posicin original.

n la figura $%= se ilustra esta secuencia de transformacin. 0a matri" de transformacin
compuesta para esta secuencia se obtiene con la concatenacin.

252


que se puede e'presar en la forma7

:-'
r
,y
r
. * ?-@. * :-%'
r
, %y
r
. ) -'
t
, y
r
, @. -$%3,.

donde :-%'
r
,%y
r
. ) :
%&
-'
r
, y
r
.. n general, es posible determinar una funcin de rotacin para
aceptar parmetros para las coordenadas del punto pivote, as como el ngulo de rotacin, y
generar en forma automtica la matri" de rotacin de la ecuacin $%3&.

2.3.3 !scalacin del punto fi"o general.

0a figura $%&6 ilustra una secuencia de transformacin para producir escalacin con respecto de
una posicin fija seleccionada -'
f
, y
f
. al utili"ar una funcin de escalacin que slo puede
escalar en relacin con el origen de las coordenadas.

3&. :raslade el objeto de modo que el punto fijo conincida con el origen de las coordenadas.
3,. scale el objeto con respecto del origen de las coordenadas.
33. 2tilice la traslacin inversa del paso & para regresar el objeto a su posicin original.

0a concatenacin de las matrices para estas tres operaciones produce la matri" de
escalacin requerida7






253
-$% 33.

:-'
f
, y
f
. * 5-s
'
, s
y
. * :-%'
f
, %y
f
. ) 5-'
f
, y
f
, s
'
, s
y
. -$%3D.

sta transformacin se genera de manera automtica en sistemas que ofrecen una funcin de
escalacin que acepta las coordenadas para el punto fijo.

#irecciones de escalacin general

0os parmetros s
'
y s
y
escalan objetos a l largo de las direcciones de ' y de y. Podemos escalar
un objeto en otras direcciones al girar el objeto para alinear las direcciones de escalacin
deseadas con los ejes de las coordenadas antes de aplicar la transformacin de escalacin.

5uponga que queremos aplicar factores de escalacin con valores que se especifican con los
parmetros s
&
y s
,
en las direcciones se representan en la figura $%&&. Para llevar a cabo la
escalacin sin cambiar la orientacin del objeto, primero reali"amos una rotacin de modo que
las direcciones de s
&
y s
,
coincidan con los ejes de ' y de y, en forma respectiva. ntonces se
aplica la transformacin de escalacin, seguida por una rotacin opuesta para asegurar los
puntos a sus orientaciones originales. 0a matri" compuesta resultante del producto de estas
tres transformaciones es7

?
%&
-@. * 5 -s
&
, s
,
. * ? -@.
-$%3$.

/omo un ejemplo de esta transformacin de escalacin, convertimos un cuadro unitario
en un paralelogramo -figura $%&,. al e'tenderlo a lo largo de la diagonal de -6, 6. a -&, &..
Eiramos la diagonal sobre el eje de las y y duplicamos su longitud con los parmetros de
transformacin @ ) D$
6
, s
&
) & y s
,
) ,.
n la ecuacin $%3$, suponemos que se debi reali"ar la escalacin con respecto del origen.
Podramos reali"ar un paso ms con esta operacin de escalacin y concatenar la matri" con
operadores de traslacin, de modo que la matri" compuesta incluir los parmetros para la
especificacin de una posicin fija de escalacin.

254
2.3.$ %ropiedades de concatenacin

0a multiplicacin de matrices es asociativa. Para tres matrices cualesquiera, #, F y /, el
producto matricial # * F * / se puede llevar a cabo al multiplicar primero # por F o multiplicar F
por /7

# * F * / ) -# * F. * ) # * -F * /. -$%34.

Por tanto, podemos evaluar los productos matriciales al utili"ar una agrupacin asociativa ya
sea de i"quierda a derecha o de derecha a i"quierda.
Por otro lado, los productos de la transformacin tal ve" no sean conmutativos en general, el
producto matricial # * F no es igual que F * #. sto significa que si queremos trasladar y girar un
objeto, debemos tener cuidado sobre el sentido en que se eval1a la matri" compuesta -figura $%
&3.. Para algunos casos especiales, como una secuencia de transformaciones todas de la
misma clase, la multiplicacin de las matrices de transformacin es conmutativa. /omo por
ejemplo, se podran reali"ar dos rotaciones sucesivas en cualquier sentido y la posicin final
sera la misma. sta propiedad conmutativa se aplica tambin para dos traslaciones sucesivas
o dos escalaciones sucesivas. >tro par conmutativo de operaciones es la rotacin y la
escalacin uniforme -s
'
,s
y
..




2.$ Transformacin ventana&'rea de vista

/uando se transfieren las descripciones del objeto al marco de referencia de vista,
seleccionamos la e'tensin de la ventana en coordenadas de vista y los lmites del7




255
Puerto de vista en coordenadas normali"adas. ?eali"amos esto al utili"ar una transformacin
que mantiene la misma locali"acin relativa que los objetos en un espacio normali"ado tenan
en coordenadas de vista. 5i una posicin de coordenadas se locali"a, por ejemplo, en el centro
de la ventana de vista, se desplegar en el centro del puerto de vista.
0a figura 4%$ ilustra el mapeo de ventana a puerto de vista. 2n punto en la posicin -'G, yG. en
el puerto de vista asociado. /on objeto de conservar la misma posicin relativa en el puerto de
vista que en la ventana, es necesario que7

-4%,.
#l despejar estas e'presiones para la posicin del puerto de vista -'v, yv., tenemos7
'v ) 'v
mn
+ -'G % 'G
mn
. s'

yv ) yv
mn
+ -yG H yG
mn
. sy -4%3.

donde los factores de escalacin son7
-4%D.
:ambin es posible derivar las ecuaciones 4%3 con un conjunto de transformaciones que
convierte el rea de la ventana en el rea del puerto de vista. 5e efect1a esta conversin con la
siguiente secuencia de transformaciones7

,&. 5e reali"a una transformacin de escalacin al utili"ar una posicin de punto fijo de
-'G
mn
, yG
mn
. que escala el rea de la ventana al tama!o del puerto de vista.
,,. 5e traslada el rea escalada de la ventana a la posicin del puerto de vista.

5i los factores de escalacin son los mismos -s' ) sy., se mantienen las proporciones
relativas de los objetos. <e otro modo, los objetos mundiales se dilatarn o contraern ya sea
en la direccin de ' o de y al desplegarse en el dispositivo de salida. s posible manejar de dos
maneras las cadenas de caracteres al efectuar su mapeo al puerto de vista. l mapeo mapeo
ms sencillo mantiene un tama!o de carcter constante, aunque el rea del puerto de vista
puede aumentar o reducir con respecto de la ventana. 5e podra emplear este mtodo cuando
el te'to se forma con fuentes de carcter estndar que no es posible cambiar. n sistemas que
permiten cambiar el tama!o de los caracteres, se pueden reali"ar las transformaciones de
ventanas de las definiciones de cadena del mismo modo que los dems primitivos.

256
n el caso de los caracteres que se forman con segmentos de lnea, se puede llevar acabo el
mapeo al puerto de vista como una secuencia de transformaciones lineales. # partir de las
coordenadas normali"adas, las descripciones de los objetos se mapean en los diversos
dispositivos de salida. 5e puede activar cualquier cantidad de dispositivos en una aplicacin
particular y reali"ar otra transformacin de ventana a puerto de vista para cada dispositivo de
salida. 5e reali"a este mapeo, llamado transformacin de estacin de traba"o, al seleccionar
un rea de la ventana en un espacio normali"ado y un rea del puerto de vista en las
coordenadas del dispositivo de despliegue. /on la transformacin de estacin de trabajo,
logramos cierto control adicional en la disposicin de las partes de una escena en dispositivos
de salida individuales. /omo se ilustra en la figura 4%4, podemos utili"ar transformaciones de
estacin de trabajo para dividir una vista de modo que se puedan desplegar distintas partes del
espacio normali"ado en diferentes dispositivos de salida.

2.( Transformaciones de la composicin

2na transformacin bidimensional general, que representa una combinacin de traslaciones,
rotaciones y escalaciones, se puede e'presar como7




0os cuatro elementos rs
ij
son los trminos multiplicativos de rotacin%escalacin en la
transformacin que implican slo ngulos de rotacin y factores de escalacin. 0os elementos
trs
'
y trs
y
son los trminos de traslacin que contienen combinaciones de distancias de
traslacin, coordenadas de punto pivote y de punto fijo, as como de ngulos de rotacin y
parmetros de escalacin. Por ejemplo, si se debe escalar y girar un objeto con respecto de las
coordenadas de su centroide -'
c
, y
c
. y despus trasladarlo, los valores para los elementos de la
matri" de transformacin compuesta son7


: -t
'
, t
y
. * ? -'c, yc, @. * 5 -'
c
, y
c
, s
'
, s
y
.

-$%3;.

257
#unque la ecuacin de matri" $%38 requiere nueve multiplicaciones y seis adiciones, los
clculos e'plcitos para las coordenadas transformadas son


'( ) ' * rs
''
+ y * rs
'y
+ trs
'
, y( ) y * rs
y'
+ y * rs
yy
+ trs
y
-$%3=.

#s en realidad, slo necesitamos efectuar cuatro multiplicaciones y cuatro adiciones
para transformar las posiciones de coordenadas. ste es el n1mero m'imo de clculos que se
requieren para cualquier secuencia de transformacin, una ve" que se han concatenado las
matrices individuales y evaluando los elementos de la matri" compuesta. 5in concatenacin, se
aplicarn las transformaciones individuales una a la ve" y se podra reducir en forma
considerable el n1mero de clculos. <e esta manera, una implementacin eficiente de las
operaciones de transformacin consiste en formular matrices de transformacin, concatenar
cualquier secuencia de transformacin y calcular las coordenadas transformadas al utili"ar la
ecuacin $%3=. n sistemas paralelos, las multiplicaciones matriciales directas con la matri" de
transformacin compuesta de la ecuacin $%38 pueden ser igual de eficientes.

5e puede e'presar una matri" de transformacin de cuerpo general que slo implica
traslaciones y rotaciones en la forma7

-$%D6.

donde los cuatro elementos r
ij
son los trminos de rotacin multiplicativos y los elementos tr
'
y tr
y
son los trminos de traslacin. n ocasiones, un cambio de cuerpo rgido en la posicin de
coordenadas se denomina transformacin de movimiento r)gido. :odos los ngulos y
distancias entre las posiciones de coordenadas permanecen sin cambio al reali"ar la
transformacin. #dems, la matri" $%D6 tiene la propiedad de que su submatri" superior
i"quierda de , por , est en una matri" como un vector, entonces los dos vectores -r
''
, r
'y
. y -r
y'
,
r
yy
. forman un conjunto ortogonal de vectores unitarios7 cada vector tiene longitud unitaria

r
,
''
+ r
,
'y
) r
,
y'
+ r
,
yy
) & -$%D&.
y los vectores son perpendiculares -su producto de punto es 6.7

r
''
r
y'
+ r
'y
r
yy
) 6 -$%D,.
258

Por tanto, si estos vectores unitarios se transforman por la submatri" de rotacin, -r
''
, r
'y
. se
convierte en un vector unitario a lo largo del eje de ', y -r
y'
, r
yy
. se transforma en un vector
unitario a lo largo del eje y del sistema de coordenadas7
/omo un ejemplo, la siguiente transformacin de cuerpo rgido primero gira un objeto a travs
de un ngulo @ con respecto del punto pivote -'
r
, y
r
. y luego lo traslada7

: -t
'
, t
y
. * ? -'
r
, y
r
, @.

-$%D$.

#qu, los vectores ortogonales en la submatri" superior i"quierda de , por , son -cos @, %sin@. y
-sin @, cos @., y

-$%D4.

<e modo similar, el vector unitario -sin @, cos @. se convierte por la matri" de
transformacin de la ecuacin $%D4 en el vector unitario en la direccin de y.
0a propiedad ortogonal de las matrices de rotacin es 1til para reali"ar una matri" de
rotacin cuando conocemos la orientacin final de un objeto en lugar de la cantidad de rotacin
angular necesaria para colocar el objeto en esa posicin. 0as direcciones para la orientacin
deseada de un objeto se podran determinar mediante la alineacin de ciertos objetos en una
escena o mediante posiciones seleccionadas en la escena. 0a figura $%&D ilustra un objeto que
se debe alinear con los vectores de direccin de unidad u( y y(. #l suponer que la orientacin
original del objeto, como se muestra en la figura $%&D-a., est alineada con los ejes de las
coordenadas, reali"amos la transformacin deseada al asignar los elementos de u( al primer
rengln de la matri" de rotacin y los elementos de v( al segundo rengln. ste puede ser un
mtodo conveniente para obtener la matri" de transformacin para la rotacin en un sistema de
coordenadas local -u IobjetoJ. cuando conocemos los vectores de orientacin finales. 2na
transformacin similar es la conversin de descripciones de objetos de un sistema de
coordenadas a otro, y en los temas anteriores, consideramos cmo establecer transformaciones
para efectuar esta conversin de coordenadas.

<ado que los clculos de la rotacin requieren evaluaciones trigonomtricas y varias
multiplicaciones para cada punto que se transforma, la eficiencia computacional puede tornarse
259
en una consideracin importante en las transformaciones de rotacin. n animaciones y otras
aplicaciones que implican muchas transformaciones repetidas y ngulos de rotacin peque!os,
podemos utili"ar apro'imaciones y clculos repetitivos para reducir los clculos en las
ecuaciones de transformacin compuesta. /uando el ngulo de rotacin es peque!o, se
pueden sustituir las funciones trigonomtricas con valores de apro'imacin con base en los
primeros trminos de sus e'pansiones de series de potencia. Para ngulos bastante peque!os
-de menos de l6
6
., cos @ es de alrededor de &y sen @ tiene un valor muy cercano al valor de @
en radianes. Por ejemplo, si giramos en pasos angulares peque!os alrededor del origen,
podemos establecer cos @ como & y reducir los clculos de la transformacin en cada paso a
dos multiplicaciones y dos adiciones para cada conjunto de coordenadas que se deben girar7


'( ) ' H y sen @ y( ) y sen @ + y


donde se eval1a sen * una ve" para todos los pasos, si se supone que el ngulo de rotacin
no cambia. l error que implica esta apro'imacin en cada paso disminuye conforme el ngulo
de rotacin es menor. Pero incluso con ngulos de rotacin peque!os, el error acumulado sobre
muchos pasos puede tornarse muy grande. Podemos controlar el error acumulado al estimar el
error en '( y y( en cada paso y volver a especificar las posiciones del objeto cuando la
acumulacin del error es muy grande.

0as transformaciones compuestas a menudo implican clculos de la matri" inversa. Por
ejemplo, las secuencias de transformacin para las refle'iones y recortes, se pueden describir
con componentes de rotacin inversa. /omo hemos se!alado, se pueden generar formaciones
geomtricas bsicas. 5e obtiene una matri" de traslacin inversa al reali"ar una transposicin
de matri" -o cambiar el signo de los trminos del seno.. stas operaciones son ms sencillas
que los clculos de matri" inversa.

n el procedimiento siguiente se da una implementacin de transformaciones compuestas. 5e
iniciali"a la matri" + para la matri" de identidad. /onforme se especifica cada transformacin
individual, sta se concatena con la matri" de transformacin total +. /uando se han
especificado todas las transformaciones, se aplica esta transformacin compuesta en un objeto
determinado. Para este ejemplo, se escala y gira un polgono con respecto de un punto de
referencia determinado y luego se traslada el objeto. n la figura $%&$ se ilustran las posiciones
original y final del polgono que se transforma mediante esta secuencia.

Program transform>bject -input, output.K
260

:ype
Matri'3'3 ) array L&.. 3, &..3M of realK
var
theMatri' 7 Matri'3'3K
pts 7 GcPts,K
refPt 7 GcPt,K

Procedure matri'3'35etNdenty -var m 7 Matri'3'3.K
var
r, c 7 integerK
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
if r ) c then m Lr,cM 7 ) & else m Lr,cM 7 ) 6
endK

procedure matri'3'3PreMultiply -m 7 Matri'3'3K var t 7 Matri'3'3.K
var
r, c 7 integerK
tmp 7 Matri'3'3K
begin
for r 7 ) & to 3 do
for c 7 ) & to 3 do
tmp Lr, cM 7 m Lr, &MO tL&, cM + mLr, ,MO tL,, cM + mLr, 3MO tL3, cMK
for r 7 ) & to 3 do
261
for c 7 ) & to 3 do
tLr, cM 7 ) tmpLr, cM
endK

procedure scale -s', sy 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, &M 7 ) s'K
m L&, 3M 7 ) -& H s'. O refPt.'K
m L,, ,M 7 ) syK
m L,, 3M 7 ) -& H y. O refPt.yK
matri'3'3Premultiply -m, theMatri'.K
endK

procedure rotate -a 7 realK refPt 7 GcPt,.K
var
m 7 Matri'3'3K
function to?adians -a 7 real. K realK
begin to?adians 7 ) a O 3.&D&4&$= A &;6 endK
begin
matri'3'35etNdentity -m.K
a 7 ) to?adians -a.K
m L&, &M 7 ) cos -a.K
m L&, ,M 7 ) %sin -a.K
262
m L&, 3M 7 ) refPt.' O -&% cos -a.. ) refPt.y O sin -a.K
m L,, &M 7 ) sin -a.K
m L,, ,M 7 ) cos -a.K
m L,, 3M 7 ) refPt.y O -& H cos -a.. H refPt.' O sin -a.K
matri'3'3Premultiply -m, theMatri'.
endK

procedure translate -t', ty 7 integer.K
var
m 7 Matri'3'3K
begin
matri'3'35etNdentity -m.K
m L&, 3M 7 ) t'K
mL,, 3M 7 ) tyK
matri'3'3Premultiply -m, theMatri'.
endK

procedure transformPoints -npts 7 integerK var pts 7 GcPts,.K
var
P 7 integerK
tmp 7 realK
begin
for P 7 ) & to npts do
Gith pts LPM do
begin
tmp 7 ) theMatri'3'3L&, &M O ' + theMatri'L&, ,M O y + theMatri' L&, 3MK
263
y 7 ) theMatri'L,, &M O ' + theMatri'L,, ,M O y + theMatri' L,, 3MK
' 7 ) tmpK
end
endK

begin
pts L&M . ' 7 ) $6.6K pts L&M . y 7 ) $6.6K
pts L,M . ' 7 ) &$6.6K pts L,M . y 7 ) &$6.6K
pts L3M . ' 7 ) &66.6K pts L3M . y 7 ) &66.6K
refPt.Matri'3'35etNdentity -theMatri'.K
pQill#rea -3, pts.K
scale -6.$, 6.$, refPt.K
rotate -=6, refPt.K
translate -6, 8$.K
transformPoints -3, pts.K
pQill#rea -3, pts.K
endK






2., epresentacin matricial de transformaciones tridimensionales

264
#s como las transformaciones bidimensionales se pueden representar con matrices de 3 R 3
usando coordenadas homogneas, las transformaciones tridimensionales se pueden
representar con matrices de D R D, siempre y cuando usemos representaciones de coordenadas
homogneas de los puntos en el espacio tridimensional. #s, en lugar de representar un punto
como -', y, "., lo hacemos como -', y, ", G., donde dos de estos cudruplos representan el
mismo punto si uno es multiplicador distinto de cero del otroK no se permite el cudruplo -6, 6, 6,
6.. /omo sucede en el espacio bidimensional, la representacin estndar de un punto -', y, ",
G. con G S 6 se indica con -'AG, yAG, "AG, &.. 0a transformacin de un punto a esta forma se
denomina homogeneizacin, igual que antes. #dems, los puntos cuya coordenada G es cero
se llaman puntos en el infinito. :ambin e'iste una interpretacin geomtrica. /ada punto en el
espacio tridimensional se representa con una lnea que pasa por el origen en el espacio de
cuatro dimensiones, y las representaciones homogenei"adas de estos puntos forman un
subespacio tridimensional de un espacio de cuatro dimensiones definido por la ecuacin G) &.
l sistema de coordenadas tridimensionales que se emplea en este tema es de mano
derecha, como se ilustra en la figura $. &4. Por convencin, las rotaciones positivas en el
sistema de mano derecha son tales que, al ver hacia un eje positivo desde el origen, una
rotacin de =6
6
en sentido contrario al giro del las manecillas del reloj transformar un eje
positivo en otro. 0a tabla siguiente se desprende de esta convencin7
je de rotacin <ireccin de la rotacin positiva

' y a "
y " a '
" ' a y


stas direcciones positivas tambin se ilustran en la figura $.&4. :enga presente que no
todos los libros sobre graficacin siguen esta convencin.
2samos el sistema de mano derecha porque se trata de una convencin matemtica
estndar, aunque en la graficacin tridimensional es conveniente pensar en un sistema de
mano i"quierda sobrepuesta a la pantalla -vase la fig. $.&8., ya que un sistema de mano
i"quierda da la interpretacin natural de que los valores mayores de " se encuentran ms lejos
del observador. >bserve que en un sistema de mano i"quierda, las rotaciones positivas son el
sentido del giro de las manecillas del reloj cuando se observa desde un eje positivo hacia el
origen. sta definicin de las rotaciones positivas permite que las matrices de rotacin que se
presentan en esta seccin puedan usarse para sistemas de coordenadas de mano derecha o
i"quierda.

265
0a traslacin en el espacio tridimensional es una simple e'tensin de la que se lleva a
cabo en el espacio bidimensional7


s decir, : -d
'
, d
y
, d
"
. * L' y " &M
:
) L' + d
'
y + d
y
" + d
"
&M
:
.
l escalamiento se e'tiende en forma similar7
#l revisar se observa que 5-s
'
, s
y
, s
"
. * L' y " &M: ) Ls
'
* ' s
y
* y s
"
* " &M
:
.
0a rotacin bidimensional de la ecuacin -$. ,4. es simplemente una rotacin tridimensional con
respecto al eje ", que es

s fcil verificar esta observacin7 una rotacin de =6
6
de L& 6 &M
:
, que es el vector unidad sobre
el eje ', debe producir el vector unidad L6 & 6 &M
:
sobre el eje y. #l evaluar el producto.





5e obtiene el resultado previsto de L6 & 6 &M
:
.
0a matri" de rotacin del eje ' es


0a matri" de rotacin del eje y es

0as columnas -y filas. de la submatri" superior i"quierda de 3 R 3 de ?
"
-@., ?
'
-@. y ?
y
-@. son
vectores unidad mutuamente perpendiculares y el determinante de la submatri" es &, lo que
quiere decir que las tres matrices son ortogonales especiales, adems, la submatri" superior
i"quierda de 3 R 3 formada por una secuencia arbitraria de rotaciones es ortogonal especial.
?ecuerde que las transformaciones ortogonales conservan las distancias y los ngulos.
266
:odas estas matrices de transformacin tienen inversas. 0a inversa de : se obtiene cambiando
el signo de d
'
, d
y
, d
"
K la de 5, reempla"ando s
'
, s
y
y s
"
por sus recprocosK y la inversa de cada
una de las tres matrices de rotacin, negando el ngulo de rotacin.

0a inversa de una matri" ortogonal F es la transpuesta de F7 F
%&
) F:. <e hecho, para tomar la
transpuesta no es intercambiar los elementos del arreglo que contiene a la matri"7 basta
intercambiar los ndices de las filas y las columnas al acceder a la matri". >bserve que este
mtodo para hallar la inversa es consistente con el resultado del cambio de signo de @ para
hallar la inversa de ?
'
, ?
y
y ?
"
.

s posible multiplicar juntas cualquier cantidad de matrices de rotacin, escalamiento y
traslacin. l resultado siempre tiene la forma


/omo en el caso bidimensional, la submatri" superior i"quierda de 3 R 3 ? nos da la rotacin y
el escalamiento combinados, mientras que : nos da la traslacin subsecuente. Podemos
obtener mayor eficiencia computacional si efectuamos la transformacin en forma e'plicita,
como



<onde ? y : son submatrices de la ecuacin -$.D3..
'isten tres matrices de sesgo tridimensional correspondientes a las matrices de sesgo
bidimensional, el sesgo -', y. es



#l aplicar 5T
'y
al punto L' y " &M
:
se obtiene L' + s
h'
* " y + s
hy
* " &M:. 0os sesgos sobre los ejes
- y y tienen forma similar.
Tasta ahora hemos centrado nuestra atencin en la transformacin de puntos individuales. 0a
transformacin de lneas, definidas stas por dos puntos, se obtiene transformando los puntos
e'tremos. 0os planos, si estn definidos por tres puntos, se pueden manejar de la misma forma,
pero por lo general se definen con una ecuacin del plano y los coeficientes de esta ecuacin
267
debe transformarse de manera distinta. :ambin puede ser necesario transformar la normal al
plano U ) L# F / <M
:
. ntonces, un plano est definido por todos los puntos P tales que U * P )
6, donde el smbolo I*J es el producto punto vectorial y P ) L' y " &M
:
. ste producto punto da
lugar a la conocida ecuacin del plano #' + Fy + /" + < ) 6, que tambin se puede e'presar
como el producto del vector columna P7 U
:
* P ) 6. 5uponga ahora que transformamos todos los
puntos P en el plano con una matri" M7 Para mantener U
:
* P ) 6 para todos los puntos
transformados, quisiramos transformar U por una matri" 9 -por determinarse. que de lugar a la
ecuacin -9 * U.
:
* M ) 6. # su ve", esta ecuacin se puede reescribir como U
:
* 9
:
* M * P ) 6
usando la identidad -9 * U.
:
) U
:
* 9
:
. 0a ecuacin ser verdadera si 9
:
* M es m1ltiplo de la
matri" identidad. 5i el multiplicador es &, esta situacin nos lleva a 9
:
) M
%&
o 9 ) -M
%&
.. Por lo
tanto, el vector columna U( de coeficientes de un plano transformado por M se e'presa como


U( ) -M
%&
.
:
* U -$. D4.

Por lo general no es necesario que e'ista la matri" -M
%&
.
:
, ya que el determinante de M puede
ser cero. sta situacin ocurrira si M incluye una proyeccin. 5i slo se transformar la normal
al plano y si M slo consiste en una composicin de matrices de traslacin, rotacin y
escalamiento uniforme, entonces se simplifican las matemticas. 0a U( de la ecuacin -$. D4. se
puede simplificar a L#( F( /( 6M
:
. -con un componente V igual a cero, un punto homogneo
representa un punto en el infinito, lo cual se puede considerar como una direccin..

2.. Composicin de transformaciones tridimensionales
#nali"aremos la forma de componer matrices de transformacin tridimensionales usando
un ejemplo que ser de utilidad. l objetivo es transformar los segmentos de 0nea dirigida P
&
y
P
,
y P
&
P
3
en la fig. $.&; de su posicin inicial en la parte -a. a su posicin final en 0a parte -b..
<e esta manera, el punto P
&
se trasladar al origen, P
&
P
,
, quedar en el eje " positivo y P
&
P
3

quedar en la mitad del eje y positivo del plano -y, z). 0as longitudes de las lneas no se vern
afectadas por la transformacin.

Para trabajar con las transformadas primitivas, de nuevo dividimos un problema difcil en
varios ms sencillos. n este caso, la transformacin deseada se puede reali"ar en cuatro
pasos7
D&. :raslacin de P
&
al origen.
D,. ?otacin sobre el eje y para que P
&
P
,
est en el plano -y, "..
D3. ?otacin sobre el eje ' para que P
&
P
,
est en el eje ".
268
DD. ?otacin sobre el eje " para que P
&
P
3
est en el plano -y, "..
%aso 1/ Traslacin %1 al origen. 0a traslacin es
-$.D8.
#l aplicar : a P&, P, y P3 se obtiene
-$.D;.

-$.D=.
-$.$6.
%aso 2/ otacin sobre e"e y. n la figura $.&= se muestra P
&
P
,
despus del paso &, as
como la proyeccin de P
&
P
,
sobre el plano -', ".. l ngulo de rotacin es H -=6 % @. ) @ % =6.
ntonces,

-$.$&.
donde #l sustituir estos valores en la ecuacin -$.D,. se obtiene
/omo era de esperar, el componente ' de P((
,
. s cero y el componente " es la longitud
<
&
.
%aso 3/ otacin sobre el e"e -. n la figura $. ,6 se muestra P
&
P
,
despus del paso ,.
l ngulo de rotacin es W, para el cual
donde <, ) XP
&
(( P
,
((X, la longitud de la lnea P
&
(( P
,
((. 5in embargo, la longitud de la lnea P
&
(( P
,
((
es igual a la longitud de la lnea P
&
P
,
, ya que las transformaciones de rotacin traslacin
conservan la longitudK por lo tanto, l resultado de la rotacin en el paso 3 es
s decir, P
&
P
,
coincide ahora con el eje " positivo.
%aso $/ otacin sobre el e"e z. n la figura $. ,& se muestran P
&
P
,
y P
&
P
3
despus del paso
3, con P
,
((( en el eje " y P
3
((( en la posicin
/on la rotacin a travs del ngulo positivo Y, con
cos Y ) y
3
((( A<
3
, sen Y ) '
3
((( A<
3
<
3
Z '
3
(((
,
+ y
3
(((
,
-$.$;.
/on el paso D se obtiene el resultado que se presenta en la figura $.&; -b.. 0a matri"
compuesta
?
"
-Y. * ?
'
-W. * ?
y
-@ % =6. * : -%'
&
, %y
&
, %"
&
. ) ? * :. -$.$=.
269
es la transformacin requerida, con ?) ?
"
-Y. * ?
'
-W. * ?
y
-@ % =6.. <ejaremos que usted aplique
esta transformacin a P
&
, P
,
y P
3
para verificar que P
&
se transforme al origen, P
,
se transforme
al al eje z positivo y que P
3
se transforma a la mitad y positiva del plano -y, ".. 0a segunda
manera de obtener la matri" ? es usar las propiedades de las matrices ortogonales.
?
"
) Lr
&'
r
,'
r
3'
M
:
)
-$. 4&.
/omo ?
"
es el vector unidad sobre P
&
P
,
que rotar hacia el eje " positivo,
XP
&
P
,
X

#dems, el vector unidad ?
'
es perpendicular al plano de P
&
, P
,
y P
3
y rotar hacia el eje '
positivo, de manera que ?
'
debe ser el producto cru" normali"ado de dos vectores en el plano
Qinalmente,
?
'
) Lr
&'
, r
,'
, r
3'
M
:
) ?
"
R ?
'
-$. 43.
rotar hacia el eje y positivo. 0a matri" compuesta se e'presa como

<onde ? y : son como en la ecuacin -$.$=.. n la figura $.,, se muestran los vectores
individuales ?
'
, ?
y
y ?
"
. /onsidere otro ejemplo. n la figura $.,3 se muestra un aeroplano
definido en el sistema de coordenadas '
p
, y
p
, "
p
y centrado en el origen. 9ueremos transformar
el aeroplano para que apunte en la direccin indicada por el vector <<[ -direccin de vuelo.,
est centrado en p y no est inclinado, como se muestra en la figura $.,D. 0a transformacin
necesaria para llevar a cabo esta reorientacin consiste en una rotacin para apuntar el
aeroplano en la direccin correcta, seguida por una traslacin del origen a P. para hallar la
matri" de rotacin slo hay que determinar en qu direccin apuntan los ejes '
p
, y
p
y "
p
en la
figura $.,D, asegurarse de que las direcciones estn normali"adas y luego usar estas
direcciones como vectores columna en una matri" de rotacin.
l eje "
p
debe transformarse a la direccin <<[, mientras que el eje 'p debe transformarse a un
vector hori"ontal perpendicular a <<[, o sea, en la direccin y R <<[, el producto cru" de y y
<<[. 0a direccin y
p
est indicada por "
p
R '
p
) <<[ R -y R <<[., el producto cru" de "
p
y '
p
K
por lo tanto, las tres columnas de la matri" de rotacin son los vectores normali"ados Xy R <<[X,
X<<[ R -y R <<[.X y X<<[X7
270
271

S-ar putea să vă placă și