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