Está en la página 1de 77

Transformaciones geomtricas

Basado en: Captulo 5

Del Libro: Introduccin a la Graficacin


por Computador

Foley Van Dam Feiner Hughes - Phillips


Resumen del captulo
Transformaciones bidimensionales
Coordenadas homogneas y representacin matricial de
transformaciones bidimensionales
Transformacin ventana-rea de vista
Representacin matricial de transformaciones
tridimensionales
Transformaciones como un cambio en el sistema de
coordenadas
A lo largo de este captulo se presentarn las principales transformaciones
geomtricas bidimensionales y tridimensionales que se emplean en la computacin
grfica por computador.
Transformaciones geomtricas

Conceptos bsicos referentes a las transformaciones


geomtricas afines en 2D y 3D, utilizadas en Computacin
Grfica.

La traslacin, escalamiento, y rotacin.

Dichas transformaciones son utilizadas directamente por


aplicaciones y en muchos paquetes de subrutinas grficas.
Transformaciones
bidimensionales
Traslacin
Se traslada cada punto P(x,y) dx unidades paralelamente al eje x y dy
unidades paralelamente al eje y, hacia el nuevo punto P'(x',y').
Las ecuaciones quedan:
x' = x + d x y' = y + d y Ec. 1

Si se definen los vectores columna queda:


x x' dx
P = , P = y ' , T = d Ec. 2
y y
entonces la ecuacin 1 puede ser expresada como:

P = P + T Ec. 3
Traslacin
Una forma de efectuar la traslacin de un objeto es aplicndole a cada
punto del mismo la ecuacin 1. Para trasladar todos los puntos de una
lnea, simplemente se traslada los puntos extremos.

En la figura se muestra el efecto de trasladar un objeto 3 unidades en x y


-4 unidades en y.
y y

(4,5) (7,5)
(7,1) (10,1)
x x

Traslacin de un objeto

Esto se cumple tambin para el escalamiento y la rotacin.


Escalamiento
El escalamiento se hace con un factor sx en el eje x y en un factor sy
en el eje y.
Escalamiento uniforme sx = sy
Escalamiento diferencial.
La transformacin de escalamiento puede expresarse con las
siguientes multiplicaciones
x' = s x x y ' = s y y Ec. 4

En forma matricial
x ' s x 0 x
y ' = 0 s y
P' = S P Ec. 5
y

Matriz S
Escalamiento
Se escala a en el eje x y a en el eje y .
El escalamiento se efecta con respecto al origen;

y y

(2 , 54)
(72 , 54)
(4,5) (7,5)

x x

Antes del escalamiento Despus del escalamiento

Escalamiento no uniforme de un objeto con respecto al origen (0,0)


Rotacin
Los puntos tambin pueden ser rotados un ngulo con respecto al
origen

x ' = x cos y sen


Ec. 6
y ' = x sen + y cos

En forma matricial

x' cos sen x


y ' = sen cos P' = R P Ec.7
y

Matriz R
Rotacin
En la figura se muestra la rotacin de la casa 45, con respecto al
origen.

y
y

Pregunta 1: Si se desea
rotar la casa alrededor
del punto (5,2), cmo lo
hara, si slo conociera
(4.9 , 7.8) las operaciones de
rotacin y traslacin?
(2.1 , 4.9)
(5,2) (9,2)
x x

Antes de la rotacin Despus de la rotacin


Rotacin
Derivacin de la ecuacin de rotacin (Ec. 6)

La rotacin de un ngulo transforma al punto P(x,y) en P'(x',y')


Por trigonometra tenemos y

x = r cos , y = r sen , Ec. 8

x' = r cos( + ) = r cos cos r sen sen P(x,y)

r P(x,y)
r
y ' = r sen( + ) = r cos sen + r sen cos Ec. 9

x
r cos ( + ) r cos

Sustituyendo las ecuaciones 8 en la ecuacin 9 obtenemos la


ecuacin 6
Coordenadas homogneas y
representacin matricial de
transformaciones
bidimensionales
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
Las representaciones matriciales obtenidas hasta ahora para traslacin,
escalamiento y rotacin son, respectivamente

P' = T + P Ec. 3
P' = S P Ec. 5

P' = R P Ec. 7

Problema: La traslacin es tratada de forma diferente


Solucin: Utilizar un sistema de coordenadas homogneas

En las coordenadas homogneas cada punto se representa siguiendo la


forma (x,y,W).
Dos vectores en coordenadas homogneas (x,y,W) y (x',y',W')
representan al mismo punto si y slo si uno es mltiplo del otro.
Para W 0 se obtiene los puntos x / W, y / W a los cuales se les llama
coordenadas cartesianas del punto homogneo.
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
Las ecuaciones de traslacin (Ec. 1) pueden expresarse como una
matriz 3x3 en coordenadas homogneas.

x ' 1 0 d x x
y ' = 0 1 d y Ec. 10
y

1 0 0 1 1

Esta ecuacin puede ser representada de la siguiente forma:

P ' = T ( d x , d y ) P, Ec. 11

donde
1 0 dx
T (d x , d y ) = 0 1 d y Ec. 12
0 0 1
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
Supngase que un punto P es trasladado por T(dx1,dy1) al punto P' y luego
es trasladado por T(dx2,dy2) al punto P''.
Ec. 13
P = T (d x1 , d y1 ) P,

P = T (d x 2 , d y 2 ) P Ec. 14
Sustituyendo la ecuacin 13 en la ecuacin 14, se obtiene:

P = T (d x 2 , d y 2 ) (T (d x1 , d y1 ) P ) = (T (d x 2 , d y 2 ) T (d x1 , d y1 ) ) P Ec. 15

T (d x 2 , d y 2 ) T (d x1 , d y1 )
El producto matricial es
1 0 d x 2 1 0 d x1 1 0 d x1 + d x 2
0 1 d 0 1 d = 0 1 d + d
y2 y1 y1 y2 Ec. 16
0 0 1 0 0 1 0 0 1
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
Por lo tanto la traslacin neta es T(dx1 + dx2 , dy1 + dy2). El producto
matricial efectuado no es ms que la composicin de T(dx1,dy1) y
T(dx2,dy2).

Por otro lado, puede verificarse con facilidad que la transformacin


inversa de una traslacin T(dx,dy) no es ms que T-1 (dx,dy) = T(-dx,-dy).

Un procedimiento similar al efectuado con la traslacin puede aplicarse al


escalamiento, obteniendo una nueva representacin matricial de la
ecuacin 4, de la forma siguiente:
x' s x 0 0 x
y ' = 0 sy 0 y Ec. 17

1 0 0 1 1
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
sx 0 0
Definiendo S ( s x , s y ) = 0 sy 0 Ec. 17
0 0 1

se tiene que P = S ( s x , s y ) P Ec. 19

Dados P = S ( s x1 , s y1 ) P Ec. 20

P = S ( s x1 , s y1 ) P Ec. 21

podemos sustituir la ecuacin 20 en la ecuacin 21, obtenindose

P = S ( s x 2 , s y 2 ) ( S ( s x1 , s y1 ) P ) = ( S ( s x 2 , s y 2 ) S ( s x1 , s y1 ) ) P Ec. 22
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
el producto matricial S ( s x 2 , s y 2 ) S ( s x1 , s y1 ) es

sx2 0 0 s x1 0 0 s x1 s x 2 0 0
0 s x 0, s y 0 Ec. 23
sy2 0 0 s y1 0 = 0 s y1 s y 2 0
0 0 1 0 0 1 0 0 1

la inversa de un escalamiento S(sx,sy) es S-1(sx,sy)= S(1/sx,1/sy)


Similarmente, las ecuaciones de rotacin (Ec. 6) pueden ser
representadas como

x' cos sen 0 x


y ' = sen cos 0 y Ec. 24

1 0 0 1 1
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
donde cos sen 0
R ( ) = sen 0
Ec. 25
cos
0 0 1
tenindose que
P ' = R( ) P Ec. 26

Puede demostrarse que dos rotaciones sucesivas son aditivas, es


decir, que dados dos ngulos 1 y 2 se cumple la igualdad

R( 1 ) R( 2 ) = R ( 1 + 2 ).

Por otra parte, es comprobable que la inversa de una rotacin R() es


R-1 () = R(-).
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
El producto de una secuencia arbitraria de matrices de rotacin, traslacin y
escalamiento constituyen transformaciones afnes, teniendo la propiedad
de conservar el paralelismo de las lneas, pero no longitudes ni ngulos .

Cubo Unitario 45 Escalado en x,


no escalado en y

Un cubo unitario rotado 45 en sentido horario y luego escalado no uniformemente. El


resultado es una transformacin afn de la figura inicial, donde se mantiene el
paralelismo de las lneas, pero no las longitudes ni ngulos originales.
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
Sesgado (shear).
Existen dos tipos de sesgados en 2D, con respecto al eje x y con
respecto al eje y.

Cubo unitario Cubo unitario


estirado en x estirado en y

Un cubo unitario y el efecto de aplicarle la transformacin de sesgado.


En cada caso la longitud de las lneas oblicuas es mayor a 1.
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
La matriz de transformacin para el sesgado en el eje x se expresa como

1 a 0
SH x = 0 1 0 Ec. 28
0 0 1

Anlogamente, la matriz de transformacin para el sesgado en el eje y se


expresa como

1 0 0
SH y = b 1 0 Ec. 29

0 0 1
Coordenadas homogneas y representacin
matricial de transformaciones bidimensionales
El propsito bsico de componer transformaciones es ganar eficiencia
aplicando una sola transformacin compuesta a un punto, en vez de
aplicar una serie de transformaciones, una tras otra.

Si se considera la rotacin de un objeto con respecto a un punto arbitrario


P1, podemos subdividir el problema aplicando tres transformaciones
fundamentales:

1) Trasladar de forma que P1 coincida con el origen


2) Rotar
3) Trasladar de forma que el punto en el origen retorne a P1

La secuencia propuesta se ilustra en la siguiente figura, en donde el


objeto es rotado con respecto al punto P1(x1,y1). La primera traslacin es
T(-x1,-y1), hacindose por ltimo la traslacin inversa T(x1,y1).
Composicin de
transformaciones
bidimensionales
Composicin de transformaciones
bidimensionales
y y

P1

x x

y y

P1


x x

Rotacin de un objeto en un ngulo q con respecto al punto P1


Composicin de transformaciones
bidimensionales
La transformacin neta aplicada es

1 0 x1 cos sen 0 1 0 x1
T ( x1 , y1 ) R( ) T ( x1 , y1 ) = 0 1 y1 sen cos 0 0 1 y1
0 0 1 0 0 1 0 0 1

cos sen x1 (1 cos ) + y1sen


= sen cos y1 (1 cos ) x1sen Ec. 30
0 0 1

Un enfoque similar puede usarse para escalar un objeto con respecto a


un punto arbitrario P1.
Ahora tenemos la respuesta
a la pregunta 1
Composicin de transformaciones
bidimensionales

1 0 x1 sx 0 0 1 0 x1
T ( x1 , y1 ) S ( s x , s y ) T ( x1 , y1 ) = 0 1 y1 0 sy 0 0 1 y1
0 0 1 0 0 1 0 0 1

sx 0 x1 (1 s x )
= 0 sy y1 (1 s y ) Ec. 31
0 0 1

Es frecuente el deseo de realizar un escalamiento o rotacin con respecto


al centro geomtrico de una figura. Para lograr este propsito se puede
aplicar el mtodo recientemente expuesto de forma que el punto arbitrario
P1 corresponda ahora a las coordenadas del centro Pc(xc,yc). As el
escalamiento in-situ no sera ms que aplicar T ( xc , yc ) S ( sx , s y ) T ( xc , yc )
y la rotacin in-situ correspondera a T ( xc , yc ) R( ) T ( xc , yc ). La siguiente
figura muestra un escalamiento aplicado a un objeto que se asemeja a un
OVNI.
Composicin de transformaciones
bidimensionales

y y

x x
Composicin de transformaciones
bidimensionales
Puede darse el caso de querer escalar, rotar y luego posicionar un
objeto como la casa mostrada en la figura siguiente, con P 1 como centro
de la rotacin y el escalamiento.

Trasladar P1 al origen, efectuar el escalamiento y la rotacin, y luego


trasladar desde el origen a la nueva posicin P2. La matriz que
represente dichas transformaciones corresponde a:

T ( x2 , y2 ) R ( ) S ( s x , s y ) T ( x1 , y1 ) Ec. 32
Composicin de transformaciones
bidimensionales
y y

1 2

P1
x x

y y
y
P2

3 4 5
x x
x
Rotacin

Escalamiento y rotacin de un objeto con respecto al punto P1 y posterior


posicionamiento llevando P1 al punto final P2
Composicin de transformaciones
bidimensionales
Se sabe que, en general, la multiplicacin de matrices no es
conmutativa. Sin embargo, al aplicar transformaciones fundamentales
de traslacin, escalamiento y rotacin se dan casos especiales donde
el producto de matrices es conmutativo.
Una matriz de traslacin seguida de otra matriz de traslacin pueden
conmutarse sin afectar el resultado. De forma semejante, una matriz de
escalamiento seguida de otra matriz de escalamiento pueden
multiplicarse en cualquier orden, as como una matriz de rotacin
seguida de otra matriz de rotacin.
Otro caso donde la multiplicacin de este tipo de matrices es
conmutativa corresponde a tener una matriz de rotacin y otra de
escalamiento uniforme (sx = sy).

En estos casos no es necesario preocuparse por el orden en la


manipulacin de las matrices.
Transformacin ventana-rea de
vista
Transformacin ventana-rea de vista

Dadas las primitivas de salida especificadas en coordenadas del mundo


debe especificarse como llevar dichas coordenadas a coordenadas de
pantalla para que puedan ser mostradas.

Se debe especificar una regin rectangular (ventana) en coordenadas de


mundo y una correspondiente regin rectangular en coordenadas de la
pantalla (viewport), en la cual se efectuar el mapeo de la ventana del
mundo.
Transformacin ventana-rea de vista
Rango Mximo de
Coordenadas de la
Pantalla

Ventana Viewport
Coordenadas del Mundo Coordenadas de la Pantalla

La ventana en coordenadas del mundo y el viewport en


coordenadas de pantalla determinan el mapeo que es aplicado
a todas las primitivas en coordenadas del mundo
Transformacin ventana-rea de vista

Dados:
- la ventana (en coordenadas del mundo)
- el viewport,

la matriz de transformacin que mapea la ventana a coordenadas


de pantalla puede ser desarrollada mediante la composicin de tres
transformaciones simples sugeridas en la figura siguiente:
Transformacin ventana-rea de vista

y y
(xmax , ymax)

(xmin , ymin)
x x
Ventana en Coordenadas del Mundo Ventana trasladada al origen
Transformacin ventana-rea de vista
v Rango Mximo de
v Coordenadas de la
Pantalla

(umax , vmax)

u (umin , vmin)
u
Ventana Escalada al tamao Trasladada en (umin , vmin) a la
del Viewport posicin final

Pasos para transformar una ventana en coordenadas del


mundo al Viewport en coordenadas de pantalla
Transformacin ventana-rea de vista
Como se puede apreciar en lo anterior, la ventana, especificada por su
esquina inferior izquierda y su esquina superior derecha, es primero
trasladada al origen de las coordenadas del mundo. Luego, la ventana es
escalada para coincidir con las dimensiones del viewport.

Posteriormente, se utiliza una traslacin para posicionar el viewport. La


matriz que corresponde a estas transformaciones Mwv es:

u u min vmax vmin


M wv = T (u min , vmin ) S max , T ( xmin , ymin )
xmax xmin ymax ymin

u max u min
x x 0 0
1 0 u min max min 1 0 xmin
vmax vmin
= 0 1 vmin 0 0 0 1 ymin Ec. 33
ymax ymin
0 0 1 0 0 1
0 0 1


Transformacin ventana-rea de vista

umax umin umax umin


x x 0 xmin + umin
xmax xmin
max min
vmax vmin vmax vmin
= 0 ymin + vmin Ec. 33
ymax ymin ymax ymin
0 0 1


Transformacin ventana-rea de vista

Multiplicando P = Mwv [x y 1] T se consigue el resultado esperado:

umax u min vmax vmin


P = ( x xmin ) + u min , ( y ymin ) + vmin , 1 Ec. 34
xmax xmin ymax ymin

Este resultado corresponde al punto P expresado en coordenadas


de la pantalla.
Transformacin ventana-rea de vista
La transformacin ventana-viewport tambin puede combinarse con
rutinas de recorte (clipping) en relacin al tamao de la ventana.

Rango Mximo de
y v Coordenadas de la
Ventana Pantalla

Viewport

x u
Coordenadas del Mundo Coordenadas de la Pantalla

Las primitivas de salida en coordenadas del mundo son recortadas en


relacin al marco de la ventana. El remanente es mostrado en el
viewport
Representacin matricial de
transformaciones
tridimensionales
Representacin matricial de transformaciones
tridimensionales
La representacin de transformaciones bidimensionales como
matrices de 3x3 tiene un equivalente para las
transformaciones tridimensionales, las cuales son
representadas como matrices de 4x4.

Para permitir esto, el punto (x,y,z) ser representado en


coordenadas homogneas como (W.x, W.y, W.z, W), con W 0.
Si W 1, entonces W es dividido dentro de las tres primeras
coordenadas homogneas para as obtener el punto
cartesiano tridimensional (x,y,z).

Esto implica, que dos puntos homogneos H1 y H2 son el


mismo punto tridimensional s y solo s H1 = c.H2, para
cualquier constante c 0.
Representacin matricial de transformaciones
tridimensionales
Este tipo de sistema es el ms conveniente cuando se piensa en grficos
tridimensionales, ya que se puede dar una interpretacin natural de los
aquellos valores de z que se encuentran muy distantes del observador.
Adems, es ms lgico superponer este tipo de sistema sobre la cara del
plano de visualizacin (display).
Traslacin:
La matriz de traslacin tridimensional es una simple extensin de la
bidimensional:

1 0 0 Dx
0 1 0 Dy
T ( Dx, Dy, Dz ) =
0 0 1 Dz
0 0 0 1
Representacin matricial de transformaciones
tridimensionales

Al multiplicar esta matriz por el vector de puntos [x, y, z,1] queda:

x x + Dx
y y + Dy
T ( Dx, Dy, Dz ) =
z z + Dz
1 1
Representacin matricial de transformaciones
tridimensionales
Escalamiento:
La matriz de escalamiento es similarmente extendida:

Sx 0 0 0
0 Sy 0 0
S ( Sx, Sy, Sz ) =
0 0 Sz 0
0 0 0 1

y al multiplicarla por el vector de puntos, queda:

x x Sx
y y Sy
S ( Sx, Sy, Sz ) =
z z Sz
1 1
Representacin matricial de transformaciones
tridimensionales
Rotacin:
La rotacin bidimensional es justo una rotacin con respecto al eje z. En
tres dimensiones, una rotacin con respecto al eje z es:
cos sin 0 0
sin cos 0 0
Rz ( ) =
0 0 1 0
0 0 0 1

Esto es fcilmente verificable: una rotacin de 90 grados del vector


unitario x, produce el vector unitario y. Al multiplicar R z(), con =90, por
el vector unitario x :
0 1 0 0 1 0
1 0 0 0 0 1
= = y
0 0 1 0 0 0
0 0 0 1 1 1
Rz (90) x y
Representacin matricial de transformaciones
tridimensionales

se obtiene el vector unitario y.


La matriz de rotacin con respecto al eje x es:

1 0 0 0
0 cos sin 0
Rx( ) =
0 sin cos 0
0 0 0 1

La matriz de rotacin con respecto al eje y es


cos 0 sin 0
0 1 0 0
Ry ( ) =
sin 0 cos 0
0 0 0 1
Representacin matricial de transformaciones
tridimensionales

Las columnas (y las filas) de la submatriz superior de 3 x 3 de R x(),


Ry() y Rz() son vectores unitarios mutuamente perpendiculares con
la misma interpretacin de los bidimensionales.

Todas estas matrices de transformacin tridimensionales tienen


inversas.

La inversa de T es obtenida negando Dx, Dy y Dz; para S,


reemplazando Sx, Sy, Sz por sus recprocos; para cada una de las
matrices de rotacin, negando el ngulo de rotacin.
Representacin matricial de transformaciones
tridimensionales

Haciendo la composicin de una secuencia arbitraria de rotaciones con


respecto a los ejes x, y, z, se crear una matriz A de la forma:

r11 r12 r13 0


r 21 r 22 r 23 0
A=
r 31 r 32 r 33 0
0 0 0 1
Representacin matricial de transformaciones
tridimensionales

La submatriz de rotacin de 3 x 3 de la matriz A, se dice que es


ortogonal, porque sus columnas son vectores unitarios mutuamente
ortogonales. Estos vectores son rotados por la matriz con respecto a los
ejes x, y, z.

Las matrices de rotacin conservan las longitudes y los ngulos,


mientras que las de traslacin y escalamiento no.

Para cualquier matriz ortogonal B, su inversa es justo su transpuesta:


B-1 = BT.
Representacin matricial de transformaciones
tridimensionales

Un arbitrario nmero de matrices de rotacin, escalamiento y traslacin


pueden ser multiplicadas en conjunto. El resultado siempre ser de la
forma:

r11 r12 r13 tx


r 21 r 22 r 23 ty
r 31 r 32 r 33 tz
0 0 0 1
Composicin de
transformaciones
tridimensionales
Composicin de transformaciones
tridimensionales
La composicin de las tres transformaciones bsicas tridimensionales
pueden generar diferentes resultados.

El objetivo es transformar los segmentos de recta P1P2 y P1P3 de la


figura que se encuentra a continuacin, desde la posicin inicial a la
posicin final.
Y
Y

P Z Z
P
3

P 1

P X X
2
P 1

-Z -Z P 2

Posicin inicial Posicin final


Composicin de transformaciones
tridimensionales
El punto P1 ha sido trasladado al origen, P1P2 se encuentra en el lado
positivo del eje z, P1P3 se encuentra en el plano (y,z). Las longitudes de
las rectas no son afectadas por la transformacin.

La transformacin puede ser hecha en 4 pasos:

Paso 1: Trasladar P1 al origen.

1 0 0 x1
0 1 0 y1
T ( x1, y1, z1) =
0 0 1 z1
0 0 0 1

Aplicando la matriz de transformacin T a P1, P2 y P3 se obtiene


Composicin de transformaciones
tridimensionales

0
0
T ( x1, y1, z1) P1 = = P1 ' (1)
0
1

x 2 x1
y 2 y1
T ( x1, y1, z1) P2 = = P2 ' (2)
z 2 z1
1

x3 x1
y3 y1
T ( x1, y1, z1) P3 = = P3 ' (3)
z 3 z1
1
Composicin de transformaciones
tridimensionales

Paso 2: Rotar con respecto al eje y. La rotacin es con el ngulo positivo


, por lo cual

z 2' ( z 2 z1)
sen = =
D1 D1

x 2' x 2 x1
cos = =
D1 D1

donde D1 = ( z 2 z1) 2 + ( x 2 x1) 2


Composicin de transformaciones
tridimensionales

Sustituyendo estos valores en la matriz Ry y multiplicndola por el vector P2'


se obtiene el vector:

0
y 2 y1
P2 ' ' = Ry ( 90) P2 ' =
D1
1
Composicin de transformaciones
tridimensionales

Paso 3: Rotar con respecto al eje x. La rotacin es con el ngulo , para


el cual

z 2' '
cos( ) = cos =
|| P1 ' ' P2 ' ' ||

y 2' '
sin( ) = sin =
|| P1 ' ' P2 ' ' ||

donde || P1 ' ' P2 ' ' ||= ( x 2 x1) 2 + ( y 2 y1) 2 + ( z 2 z1) 2 .


Composicin de transformaciones
tridimensionales

Sustituyendo la matriz de rotacin Rx y multiplicndola por el vector


P2'' se obtiene el vector:

P2''' = Rx( ) P2 ' ' y sustituyendo P2 ' ' por su valor,


P2''' = Rx( ) Ry ( 90) P2 ' , al sustituir P2 ' por su valor, resulta :
0
0
P2''' = Rx( ) Ry ( 90) T ( x1, y1, z1) P2 =
|| P1 P2 ||
1

De esta forma, el segmento de recta P1P2 coincide con el eje z


positivo.
Composicin de transformaciones
tridimensionales
Para el segmento de recta P1P3 sera algo similar:

x3' ' '


y 3' ' '
P3''' = Rx( ) Ry ( 90) T ( x1, y1, z1) P3 =
z 3' ' '
1

Paso 4: Rotar con respecto al eje z. La rotacin es con el ngulo positivo


, con:
y3' ' '
cos =
D2
x3' ' '
sin =
D2
donde D 2 = ( x3' ' ' ) + ( y3' ' ' ) .
2 2
Composicin de transformaciones
tridimensionales

Sustituyendo la matriz de rotacin Rz por los valores de cos y sin


obtenidos anteriormente y multiplicndola por las matrices compuestas
anteriores se obtiene la matriz compuesta de transformacin final:

Rz ( ) Rx ( ) R y ( 90) T ( x1 , y1 , z1 )

Al aplicar esta transformacin a cada uno de los puntos P1, P2 y P3 , hace


que:

P1 se traslade al origen,
P2 es transformado al eje positivo z y
P3 es transformado al plano yz.
Composicin de transformaciones
tridimensionales

Una forma ms simple para obtener la misma matriz Rz().Ry().Rx(-90)


es usando las propiedades de las matrices ortogonales. Definimos los
vectores unitarios Rx y Rz, como se ve a continuacin:

r1z
P1 P2
Rz = = r2 z
|| P1 P2 ||
r3z

r1x
P1 P2 P1 P3
Rx = = r2 x
|| P1 P2 P1 P3 ||
r3x
Composicin de transformaciones
tridimensionales
El vector unitario Rz (perteneciente al segmento de recta P1P2) rotar
hacia el eje positivo z. El vector unitario Rx (ortogonal al plano P1,P2,P3)
rotar hacia el eje positivo x. Finalmente, para obtener el vector unitario
Ry, se hace el producto cartesiano de los vectores Rz y Rx, como sigue:

r1y
R y = Rz Rx = r2 y
r3 y

Este vector resultante, rotar hacia el eje positivo y. Entonces, la matriz


compuesta de transformacin viene dada por:
Composicin de transformaciones
tridimensionales

r1x r2 x r3x 0
r1y r2 y r3 y 0
T ( x1 , y1 , z1 ) = Rz ( ) Rx ( ) R y ( 90) T ( x1 , y1 , z1 ).
r1z r2 z r3z 0
0 0 0 1

y se lleg al mismo resultado que con el mtodo de los cuatro pasos.


Por lo tanto este ltimo es ms rpido y ms sencillo.
Las transformaciones como un
cambio en el sistema de
coordenadas
Composicin de transformaciones
tridimensionales
Se ha visto transformar un conjunto de puntos de un objeto en otro
conjunto de puntos, con ambos conjuntos en el mismo sistema de
coordenadas.

El sistema de coordenadas permanece inalterado y el objeto es


transformado con respecto al origen del sistema para obtener el tamao
apropiado.

Alternativa: hacer un cambio en el sistema de coordenadas.

Este tipo de transformacin es til cuando se tienen mltiples objetos,


cada uno definido con su propio (local) sistema de coordenadas, y se
desea expresar las coordenadas de cada objeto en un simple y global
sistema de coordenadas.
Las transformaciones como un cambio en el
sistema de coordenadas

Por ejemplo: el punto de la siguiente figura tiene coordenadas (10,8), (6,6),


(8,6) y (4,2) en los sistemas de coordenadas 1,2,3 y 4 respectivamente.

P
4
3
2
1
Las transformaciones como un cambio en el
sistema de coordenadas
La transformacin desde el sistema de coordenadas 1 al 2 es T12=T(-4,-
2); del sistema 2 al 3, T23=T(-2,-3).S(2,2); del sistema 3 al 4, T34=T(-6.7,-
1.8).R(-45). En general, la transformacin Tij transforma los ejes del
sistema de coordenadas j al del sistema de coordenadas i, con respecto
al sistema i.

Si Pi representa un punto cuyas coordenadas vienen dadas por el sistema


de coordenadas i, entonces podemos escribir Pi= Pj.Tij. Por ejemplo, la
transformacin T21, es T12-1 = T(4,2). Similarmente para T32 se tiene que:
Las transformaciones como un cambio en el
sistema de coordenadas

T32=T23-1 = (T(-2,-3).S(2,2))-1 = S-1(2,2).T-1(-2,-3) = S(0.5,0.5).T(2,3).

Adems se tiene que T13=T12 .T23

Cuando ensamblamos varios objetos en un solo objeto de alto nivel,


pensamos en dos tipos de transformaciones, una consiste en definir los
objetos de acuerdo a un sistema de coordenadas de mundo determinado,
luego los transformamos a nuevas posiciones y orientaciones en el
mismo sistema de coordenadas:
Las transformaciones como un cambio en el
sistema de coordenadas

Emplear el enfoque de definir todos los objetos en el sistema de


coordenadas de mundo y luego transformarlos, da una vista irreal de
todos los objetos que se encuentran en dicho sistema.

Una forma ms natural es pensar que cada objeto tiene su propio sistema
de coordenadas y que cada uno de ellos puede ser rotado, escalado,
trasladado, con su propio sistema de coordenadas redefinido en el nuevo
sistema de coordenadas de mundo. Matemticamente, ambos enfoques
son exactamente iguales.

El empleo de diversos puntos de vista es muy til cuando se especifica


una informacin particular a cada uno de los subobjetos que se
encuentran dentro del mundo. Veamos la siguiente bicicleta:
Las transformaciones como un cambio en el
sistema de coordenadas
Las transformaciones como un cambio en el
sistema de coordenadas

Por ejemplo, si se aplica un torque a la rueda delantera de la bicicleta, la


rueda trasera tiene que rotar apropiadamente y debemos encontrar como
se mueve la bicicleta como un todo dentro de las coordenadas del
mundo.

Primero, la bicicleta y el sistema de coordenadas de la rueda delantera


tienen posiciones iniciales en el sistema de coordenadas del mundo.

Como la bicicleta se mueve hacia adelante, la rueda delantera gira con


respecto al eje z de su sistema de coordenadas local, mientras
simultneamente los sistemas de coordenadas de la rueda trasera y la
bicicleta se mueven relativos al sistema de coordenadas del mundo.
Las transformaciones como un cambio en el
sistema de coordenadas

Asumamos que el sistema de coordenadas de las ruedas y la bicicleta


son paralelas al sistema de coordenadas del mundo, y que la rueda
delantera se mueve en una lnea recta paralela al eje x del mundo.

Como la rueda delantera rota con un ngulo , un punto sobre esta rueda,
denotado como Prueda, rota a lo largo de una distancia r, donde r es el
radio de la rueda. Como la rueda esta sobre el suelo, la bicicleta se
mueve igualmente r unidades.

De esta forma, Prueda tiene dentro del original sistema de coordenadas de


la rueda, las siguientes coordenadas: Prueda = T(r,0,0) . Rz() . Prueda y
dentro del nuevo sistema de coordenadas (despus de la traslacin) de la
rueda:
Las transformaciones como un cambio en el
sistema de coordenadas
P'rueda' = Rz() . Prueda

Para encontrar los puntos anteriores dentro del sistema original de


coordenadas del mundo, transformamos las coordenadas de la rueda en
coordenadas del mundo:

Pworld = Tworld,rueda . Prueda = Tworld,bicicleta . Tbicicleta,rueda . Prueda

y dentro del nuevo sistema de coordenadas (despus de la traslacin) de


la rueda:
Las transformaciones como un cambio en el
sistema de coordenadas

P'world = Tworld,rueda . P'rueda = Tworld,rueda . T(r,0,0) . Rz() . Prueda

Adems Tworld,rueda ha cambiado a Tworld,rueda' debido a la traslacin del


sistema de coordenadas de la rueda, por lo tanto tenemos:

P'world = Tworld,rueda' . P'rueda' = Tworld,rueda . T(r,0,0) . Rz() . Prueda

obtenindose el mismo resultado.


FIN

También podría gustarte