Está en la página 1de 26

TRANSFORMACIONES GEOMETRICAS BASICAS

Las funciones de transformaciones geomtricas que se pueden encontrar en todos los paquetes grficos, son aquellos que se usan para la traslacin , rotacin y escalacin. La reflexin y la inclinacin son incluidas tambin en algunos otros paquetes grficos.
Traslacin: Se aplica a un objeto para cambiar su posicin a lo largo de una trayectoria de una lnea recta de una direccin de coordenadas a otra.

Dos dimensiones: x = x + tx, y = y + ty; P = P + T


Tres dimensiones: x = x + tx, y = y + ty, z = z + tz; P = P + T

Dos dimensiones
x y = x y + tx ty

Tres dimensiones
x y z = x y z P = P + T + tx ty tz

P = P + T

Manuel Acosta Portillo

Graficacin

TRANSFORMACIONES GEOMETRICAS BASICAS TRASLACION

P5

Dos dimensiones
tx
P3 P5

tz
P4

ty tx

P1 P2

P3

ty
P3

P4 P1 P2 P1 P2 P3

P1

P2 x

Tres dimensiones

Manuel Acosta Portillo

Graficacin

TRANSFORMACIONES GEOMETRICAS BASICAS ESCALACION


La transformacin de escalacin altera el tamao del objeto, si el factor de escalacin s es mayor a 1 el objeto crece, si el factor de escalacin s es menor a 1 el objeto decrece. Escalacin uniforme. Esta transformacin conserva las proporciones relativas del objeto para cada uno de los ejes de coordenadas y se produce cuando los factores de escalacin son iguales: sx = sy para dos dimensiones; sx = sy = sz para tres dimensiones. Escalacin diferencial. Esta transformacin no conserva las proporciones relativas del objeto y se debe a que los factores de escalacin son diferentes o al menos uno lo es para el caso de tres dimensiones. Dos dimensiones y tres dimensiones Escalacin con respecto al origen. En esta transformacin el objete crece y se aleja del origen si el factor de escalacin es mayor a uno y, decrece y se acerca al origen si el factor de escalacin es menor a 1. Escalacin con respecto a un punto fijo: En esta transformacin si el factor de escalacin es mayor a uno el objeto crece y se aleja del punto fijo y, si el factor es menor a uno el objeto decrece y se acerca al punto fijo.
Manuel Acosta Portillo Graficacin 3

Transformaciones geomtricas bsicas escalacin en dos dimensiones

y y

(xf, yf) Objeto con factores de escalacin menor a 1 Objeto original

Objeto con factores de escalacin mayor a 1 Objeto con factores de escalacin mayor a 1

Objeto original

x Escalacin con respecto a un punto fijo (xf, yf)

Objeto con factores de escalacin menor a 1 (0, 0) Escalacin con respecto al origen (0, 0)

Manuel Acosta Portillo

Graficacin

Transformaciones geomtricas bsicas escalacin en tres dimensiones

y
Factor de escalacin > 1

(xf, yf, zf)

Objeto original

(0, 0, 0)

Factor de escalacin < 1

Escalacin con respecto a un punto fijo

Escalacin con respecto al origen


Manuel Acosta Portillo Graficacin 5

Transformaciones geomtricas bsicas escalacin en dos dimensiones


x = x sx y = y sy x y P = S*P x y sx

0 sy

x y x = (x - xf)sx + Xf y = (y - yf)sy + yf

sx

Escalacin con respecto al origen

0 sy

x y

xf(1- sx) yf(1- sy)

P = S*P + Pf
Escalacin con respecto a un punto fijo

Manuel Acosta Portillo

Graficacin

Transformaciones geomtricas bsicas escalacin en tres dimensiones

x = (x - xf)sx + xf x = x sx y = y sy z = z sz x y = z sx 0 0 0 sy 0 0 0 sz x y z x = y z y = (y - yf)sy + yf z = (z - zf)sz + zf sx 0 0 sy 0 0 sz x y z xf(1- sx) + yf(1 - sy) zf(1- sz)

P = S*P Escalacin con respecto al origen

P = S*P + Pf
Escalacin con respecto a un punto fijo

Manuel Acosta Portillo

Graficacin

Transformaciones geomtricas bsicas Rotaciones


Se genera una transformacin de rotacin de un objeto mediante la especificacin de un eje de rotacin y un ngulo de rotacin. Todos los puntos del objeto son entonces transformados a la nueva posicin , mediante la rotacin de puntos con el ngulo especificado sobre el eje de rotacin, Una rotacin de un objeto bidimensional de un objeto se obtiene mediante la recolocacin del objeto a lo largo de una trayectoria circular sobre el plano xy . En este caso, se est rotando el objeto sobre el eje de rotacin que es perpendicular al plano (paralelo al eje de coordenadas z). Rotacin con respecto al origen. Esta transformacin permite que el objeto sea rotado o girado con respecto al origen Rotacin con respecto a un punto fijo (xr, yr). En esta transformacin los parmetros para la rotacin bidimensional son el ngulo de rotacin , y la posicin (xr, yr) llamado punto de rotacin (o punto pivote) sobre los cuales el objeto va a ser rotado.
(x, y) y (x, y) (x, y)

(x, y)

yr
x (xr, yr)

x xr

Rotacin con respecto al origen


Manuel Acosta Portillo Graficacin

Rotacin con respecto a un punto fijo


8

Rotaciones con respecto al origen

(x, y)

Hacemos uso de las siguientes identidades trigonomtricas cos(A + B) cosA cosB - senA senB cosA senB + senA cosB
(x, y) x

sen(A + B)

x = r cos( + ) y = r sen( + )

x = r cos cos - r sen sen y = r cos sen + r sen cos

r = x/cos r = y/sen

x = (x/cos) cos cos (y/sen) sen sen y = (x/cos) cos sen + (y/sen) sen cos
x y cos sen sen + cos

x = x cos y sen y = x sen + y cos

x y

P = R P

Manuel Acosta Portillo

Graficacin

Rotaciones con respecto a un punto fijo


(x, y)

yr (xr, yr)

(x, y)

x xr

x = xr + r cos( + ) y = yr + r sen( + )

x = xr + r cos cos - r sen sen y = yr + r cos sen + r sen cos

r = (x xr)/cos r = (y yr)/sen

x = xr + [(x xr)/cos] cos cos [(y yr)/sen] sen sen y = yr + [(x xr)/cos] cos sen + [(y yr)/sen] sen cos x = xr + (x xr) cos (y yr) sen y = yr + (x xr) sen + (y yr) cos x y x = xr + x cos xr cos y sen + yr sen y = yr + x sen xr sen + y sen yr cos x y

cos sen

sen + cos

xr(1 cos) + yr sen yr(1 cos) - yr sen

P = R P + Pr
Manuel Acosta Portillo Graficacin 10

Rotaciones en tres dimensiones con respecto a cada uno de los ejes

Rotaciones positivas con respecto a los ejes a) z b) x y c) y

Manuel Acosta Portillo

Graficacin

11

Rotacin con respecto al eje x

x = x y = y cos z sen z = y sen + z cos

1 0

0 cos sen

0 sen cos

x y z

y = 0 z

P = Rx P

Manuel Acosta Portillo

Graficacin

12

Rotacin con respecto al eje z

x = x cos y sen y = x sen + y cos z = z

cos

sen cos 0

0 0 1

x y z

y = sen z 0

P = Rz P

Manuel Acosta Portillo

Graficacin

13

Rotacin con respecto al eje y

z = z cos x sen y = y x = z sen + x cos

x y = z

sen

cor

x y z

0
-sen

1
0

0
cos

P = Ry P

Manuel Acosta Portillo

Graficacin

14

Representacin matricial y coordenadas homogneas


Muchas aplicaciones grficas implican secuencias de transformaciones geomtricas. Una animacin deber requerir que un objeto fuese trasladado y rotado tras cada incremento de movimiento. En diseo y aplicaciones de construccin de dibujos se llevan a cabo traslaciones, rotaciones y cambios de escala para acoplar los componentes del dibujo dentro de sus propias posiciones. 1. Para poder procesar la informacin especficamente es necesario volver a formar las representaciones matriciales vistas anteriormente. 2. Podemos expresar cada una de las transformaciones como P = 1P + 2 donde P y P son posiciones de coordenadas representadas como vector columna; 1 es la matriz de 2 x 2 con factores de multiplicacin, 2 es una matriz columna con los elementos que contienen trminos de traslacin. Para la traslacin 1 es la matriz identidad, para la rotacin y escalacin 1 contiene los trminos de traslacin asociados con el punto pivote o punto fijo, respectivamente. 3. Para una secuencia de transformacin, se deben colocar las transformaciones un paso a la vez. Escalar las posiciones coordenadas, rotar las coordenadas escaladas y trasladar las coordenadas rotadas. 4. Una manera diferente, ser la combinacin de las transformaciones de forma tal que se obtengan las coordenadas finales a partir de las coordenadas iniciales, sin necesidad de pasos intermedios. 5. Para hacer esto tenemos que eliminar 2 formando nuevamente la ecuacin P = P1 + 2. 6. Podemos cambiar los trminos de 1 y agregar por transformaciones geomtricas de 3 dimensiones en una sola matriz .
Manuel Acosta Portillo Graficacin 15

Para poder hacer varias transformaciones en un clculos, se logra por medio de transformaciones homogneas, lo cual consiste en agregar una dimensin y colocar los trminos de la transformacin en su lugar correcto todo en una sola matriz. La base de las transformaciones homogneas se logra de la siguiente manera: xh = x/h, yh = y/h zh = z/h, donde h es cualquier nmero real diferente de 0, por comodidad nuestra h ser igual a 1

Las transformaciones homogneas para dos dimensiones son:


Traslacin
x y = h 1 0 0 0 1 0 tx ty 1 x y h

Escalamiento con respecto al origen sx x 0 0 x y = 0 sy 0 y


h 0 0 1 h

Escalamiento con respecto a un punto fijo x sx 0 0 0 sy 0 xf(1- sx) yf(1- sy) 1 x y h

y = h

Manuel Acosta Portillo

Graficacin

16

Rotacin con respecto al origen


x y = h
cos sen 0 sen cos 0 0 0 1

Rotacin con respecto a un punto fijo


x y = h
cos sen 0 sen xf(1- sx) cos yf(1 - sy) 0 1

x y h

x
y h

Las transformaciones homogneas para tres dimensiones son:


Traslacin x y = z h

1
0 0 0

0
1 0 0

0
0 1 0

tx
ty tz 1

x y z h

Manuel Acosta Portillo

Graficacin

17

Escalacin con respecto al origen x sx 0 sy 0 0 0 0 sz 0 0 0 0 1 x y z h

Escalacin con respecto a un punto fijo x sx 0 sy 0 0 0 0 0 xf(1 sx) yf(1 sy) 1 x y z h

y = 0 0 z h 0

y = 0 0 z h 0

sz zf(1 - sz)

Rotacin con respecto al eje x


x 1 0 cos 0 sen 0 0 x y y = 0 z h

Rotacin con respecto al eje y


x y = cos 0 0 1 sen 0 0 0 x y

0
0

sen
0

cos
0

0
1

z
h

z
h

sen
0 0

cos
0

0
1

z
h

Rotacin con respecto al eje z


x sen cos 0 0 1 0 0 Graficacin 0 0 0 1 x y z h 18 y = cos sen z h Manuel Acosta Portillo 0 0 0

Reflexin
Reflexin es una transformacin que produce la imagen de un objeto en espejo, es equivalente a una rotacin de 180 con respecto del eje de reflexin. Reflexiones en dos dimensiones:
X y h X y = -1 0 0 1 0 0 x y X y h = 1 0 0 0 -1 0 0 0 1 x y h = -1 0 0 0 -1 0 0 0 1 x y h

Reflexin con respecto al origen


y

Reflexin con respecto al eje x

Reflexin con respecto al eje y

x y y

yref

x xref

Manuel Acosta Portillo

Graficacin

19

Reflexiones en dos dimensiones:

X y h =

0 1 0

1 0 0

0 0 1

x y h y = -x

Reflexin con respecto a la lnea y = x


x y

Reflexin con respecto a la lnea y = -x


y=x X y x h = 0 -1 0 -1 0 0 0 0 1 x y h

Estudiar modelos de recorte (inclinacin) Reflexiones en tres dimensiones: Es una transformacin de rotacin de 180 con respecto al eje de reflexin. No existen modelos prcticos, ya que dependen del eje de reflexin
Manuel Acosta Portillo Graficacin 20

Rotaciones tridimensionales generales


Los dos casos tpicos de modelado son: Rotaciones alrededor de un eje paralelo al de las coordenadas y, rotaciones alrededor de un eje arbitrario.
Los pasos que se requieren para efectuar una rotacin alrededor de un eje paralelo con el de las coordenadas son: 1. Trasladar el objeto de manera tal que el eje de rotacin coincida con el eje de las coordenadas al cual es paralelo. 2. Realizar la rotacin especifica sobre ese eje. 3. Trasladar el objeto de forma tal que el eje de rotacin se coloque en su posicin original. P = T-1Rx()T P R() = T-1Rx() T

a) Objeto original

b) Trasladar objeto y eje al eje de las coordenadas

c) Efectuar la transformacin

b) Regresar eje y objeto a su posicin original

Manuel Acosta Portillo

Graficacin

21

1. 2. 3. 4. 5.

Los pasos que se requieren para efectuar una rotacin alrededor de un eje que no es paralelo a uno de los ejes de las coordenadas son: Trasladar el objeto de forma tal que el eje de rotacin pase a travs del origen de las coordenadas. Rotar el objeto de forma tal que el eje de rotacin coincida con uno de los ejes de coordenadas. Realizar la rotacin especfica sobre el eje de coordenadas seleccionado. Aplicar las rotaciones inversas para devolver el eje de rotacin a su orientacin original. Aplicar la traslacin inversa para devolver el eje de rotacin a su posicin original.

a) Objeto original

b) Trasladar P1 al origen

c) Rotar P2 sobre el eje z

d) Rotar el objeto alrededor del eje z

e) Rotar el eje hasta su orientacin original

f) Trasladar el eje de rotacin a su posicin original

Manuel Acosta Portillo

Graficacin

22

y u

P2

T a = (x2-x1)/lvl b = (y2-y1)/lvl y x y = Z h 1 0 0 0 0 1 0 0 0 0 1 0 -x1 -y1 -z1 1 x y z h y

P1

u x z

u z x

c = (z2-z1)/lvl u = (V)/lvl = (a, b, c)

Eje de rotacin definido por p1 y p2

Trasladar eje de rotacin al origen de las coordenadas

El vector unitario u se gira sobre el eje x para dejarlo en el plano xz

u = (0, b, c) u = (a, b, c) u x uz = (0, 0, 1)

u u z

x
z

uz

Cos() = (u . uz)/(lulluzl) = c/d


Iul = d = (b2 + c2)1/2 u x uz = ux lulluzl sen

El vector u se gira alrededor del eje z y se alinea con este

L rotacin de u alrededor del eje x dentro del plano xz se lleva acabo rotando u (que es la proyeccin de u en el plano yz) a travs del ngulo sobre el eje z
1 0 0

i 0 0

j b 0

k c 1 = bi b = d sen sen = b/d

0 0 0 1

0 0 0 1

Rx() =

0 0 0

c/d b/d b/d 0 c/d 0

0 0 0

cos sen sen cos 0 0

Manuel Acosta Portillo

Graficacin

23

u = (a, 0, d) uz = (0, 0, 1)
x u

cos = ( u . uz)/( |u||uz|) = d

u X uz = uy|u||uz|sen i a 0 j 0 0 k d 1 sen cos Rz() = cos sen 0 0 0 0 0 0 1 0 0 0 0 1

Rotacin de un vector unitario u (el vector u despus de la rotacin dentro del plano xz) sobre el eje y. un ngulo positivo alinea u con uz d Ry() = 0 0 1 a 0 0 0 = cos 0 0 1

= -aj

-a = sen

sen 0

0 0

a
0

0
0

d
0

0
1

sen
0

0
0

cos
0

0
1

R() = T-1 Rx-1() Ry-1() Rz() Ry() Rx() T

Manuel Acosta Portillo

Graficacin

24

Manuel Acosta Portillo

Graficacin

25

Manuel Acosta Portillo

Graficacin

26