Vous êtes sur la page 1sur 34

Transformaciones

Geomtricas

Definicin
Conceptos bsicos referentes a las
transformaciones geomtricas afines en
2D y 3D
Traslacin
Escalamiento
Rotacin

Las transformaciones se utilizan en las


aplicaciones o como subrutinas grficas
2

Transformaciones 2D
Traslacin
Cada punto P(x,y) se traslada dx unidades
paralelas al eje x y dy unidades paralelas al
eje y, se obtiene un nuevo punto P'(x',y') K
Las ecuaciones de la transformacin son:
x' x d x

y' y d y

Vectorialmente:
d x
x
x'
P , P ' , T ,
y
y '
d y

P' P T
3

Transformaciones 2D
Traslacin
Se puede aplicar la frmula de traslacin a
todos los puntos de un objeto
Se puede aplicar a los puntos extremos
(vlido tambin para rotaciones y escalados)
y

(4,5) (7,5)
x

(7,1)

(10,1)

Transformaciones 2D
Escalado
Afecta a las dimensiones de los objetos
Un vector paralelo al eje x se escala una
cantidad sx y paralelo al eje y una cantidad sy
Cuando sx=sy entonces es un escalado
uniforme

x ' sx x

Matricialmente

x' s x
y ' 0

y ' sy y

0 x
P' S P

sy y

Transformaciones 2D
Escalado
Ejemplo
y

Se escala 1/2 en el eje x y 1/4 en el eje y


El escalado se efecta conyrespecto al origen

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

Antes del escalamiento

Despus del escalamiento


6

Transformaciones 2D
Rotacin
Giro de los puntos, un
ngulo respecto del
origen
x' x cos y sen
y' x sen y cos

Matricialmente

x' cos
y ' sen

sen x
P' R P

cos y
7

Transformaciones 2D
Rotacin
Ejemplo; rotar 45 respecto del origen
y

(4.9 , 7.8)

(2.1 , 4.9)
(5,2)

(9,2)
x

Transformaciones 2D
Rotacin
Ecuaciones de
transformacin:

Sea el punto P(x,y) y el


transformado P(x,y)

x r cos f

P(x,y)

y r sen f

P(x,y)

x' r cos( f ) r cos f cos r senf sen


y' r sen( f ) r cos f sen r senf cos

x
r cos ( + f)

x ' x cos y sen x ' cos


y ' sen
y ' x sen y cos

r cos f

sen x

cos y
9

Transformaciones 2D
PovRay
cone { <0, 1, 0>, 0.0, <0, -1, 0>, 1.0
pigment { color rgb <0.2,0.6,0.9> }

Traslacin
translate <-2.0, 1.0, -0.5>
translate 1*y

// <dX, dY, dZ>

Escalado
scale <1.0,
scale 2.0

2.0,

3.0> // <dX, dY, dZ>

Rotacin
rotate <30, 0, -45> // <dX, dY, dZ> (grados)
rotate 30*x
10

Transformaciones 2D
PovRay
Sistemas de coordenadas

11

Transformaciones 2D
Coordenadas homogneas
Las representaciones matriciales obtenidas hasta ahora son:
Traslacin

P' T P

Escala

P' S P

Rotacin

P' R P

Problema: La traslacin es tratada de forma diferente


Solucin: Utilizar un sistema de coordenadas homogneas
Cada punto se representa siguiendo la forma (x,y,W)
Dos conjuntos de coordenadas homogneas (x,y,W) y (x',y',W')
representan al mismo punto si y slo si una es mltiplo de la otra
Para W 0 se obtiene los puntos x/W, y/W a los cuales se les llama
coordenadas Cartesianas del punto homogneo
12

Transformaciones 2D
Homogneas
Las ecuaciones de
traslacin pasan a
ser una matriz 3x3 en
coordenadas
homogneas
Esta ecuacin puede
ser representada de
la siguiente forma:
Donde

x' 1 0 d x x
y ' 0 1 d y
y

1 0 0 1 1

P ' T (d x , d y ) P
1 0 d x
T (d x , d y ) 0 1 d y
0 0 1
13

Transformaciones 2D
Homogneas
Composicin de traslaciones
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''
P' ' T ( d x 2 , d y 2 ) P'

P' T (d x1 , d y1 ) P,

Sustituyendo 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

El producto matricial

T (d x 2 , d y 2 ) T (d x1 , d y1 )

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

0 0 1 0 0 1 0 0
1

es:

14

Transformaciones 2D
Homogneas
Composicin de traslaciones
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)
15

Transformaciones 2D
Homogneas
Escalado en coordenadas homogneas
Un procedimiento similar al efectuado con la
traslacin puede aplicarse al escalado,
obteniendo una nueva representacin
matricial: x' sx 0 0 x
sx 0
y ' 0

1 0

sy
0

0 y
1 1

S ( s x , s y ) 0
0

sy
0

0
0
1

El escalado resulta:

P' S ( s x , s y ) P
16

Transformaciones 2D
Homogneas
Composicin de escalados
Supngase que un punto P es escalado por S(sx1,sy1)
al punto P' y luego es trasladado por S(sx2,sy2) al
punto P''
P '' S ( sx 2 , s y 2 ) P '

P ' S ( sx1, s y1 ) P,

Sustituyendo se obtiene:
P '' S ( sx 2 , s y 2 ) S ( sx1, s y1 ) P S ( sx 2 , s y 2 ) S ( sx1, s y1 ) P

El producto matricial
sx 2
0

0
sy2
0

0 s x1
0 0
1 0

S ( sx 2 , s y 2 ) S ( sx1, s y1 )

0
s y1
0

0 s x1 s x 2
0 0
1 0

es:
0

s y1 s y 2
0

0
0
1

17

Transformaciones 2D
Homogneas
Rotacin en coordenadas homogneas
x' cos
y ' sen

1 0

Si

sen

cos
R( ) sen
0

cos
0
sen
cos
0

0 x
0 y
1 1
0
0
1

La rotacin resulta:
P' R( ) P
Y la composicin de rotaciones se realiza:
R(1 ) R( 2 ) R(1 2 ).

18

Transformaciones 2D
Homogneas
Transformaciones inversas
De una traslacin T(dx,dy) no es ms que:
T-1(dx,dy)= T(-dx,-dy)
De un escalado S(sx,sy) es:
S-1(sx,sy)= S(1/sx,1/sy)
De una rotacin R() es:
R-1() = R(-)
19

Transformaciones 2D
Homogneas
Transformaciones afines
Producto de una secuencia arbitraria de matrices de
rotacin, traslacin y escalamiento
Teniendo la propiedad de conservar el paralelismo
de las lneas, pero no longitudes ni ngulos

Rotaciones, escalamientos y traslaciones


subsiguientes no podran hacer que las lneas
dejen de ser paralelas

Rotacin

Escalado no uniforme
20

Transformaciones 2D
Homogneas
Estiramiento (Shear)
El estiramiento puede realizarse respecto de
cualquier eje
Estiramiento en y
Estiramiento en x

La matriz para el estiramiento en cada eje


es:
1 a 0
SH x 0 1 0
0 0 1

1 0 0
SH y b 1 0
0 0 1
21

Transformaciones 2D
Homogneas

Composicin de transformaciones
Objetivo: ganar eficiencia aplicando una sola transformacin
compuesta a un punto, en vez de aplicar una serie de
transformaciones, una tras otra.
La rotacin de un objeto con respecto a un punto arbitrario P1,
puede subdividirse aplicando tres transformaciones:
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)

22

Transformaciones 2D
Homogneas
Composicin de transformaciones
Ejemplo: Rotacin respecto del punto P1
y

Traslacin
P1

x
y

Traslacin inversa

Rotacin
P1

23

Transformaciones 2D
Homogneas
Composicin de transformaciones
Ejemplo: Rotacin respecto del punto P1
La transformacin neta aplicada es:
1 0
T ( x1 , y1 ) R( ) T ( x1 , y1 ) 0 1

0 0
cos
sen
0

x1 cos
y1 sen

1 0
sen
cos
0

sen
cos
0

0 1 0 x1
0 0 1 y1

1 0 0 1

x1 (1 cos ) y1sen
y1 (1 cos ) x1sen

1
24

Transformaciones 2D
Homogneas
Composicin de transformaciones
Ejemplo: Escalado respecto del punto P1
La transformacin neta aplicada es:
1 0
T ( x1 , y1 ) S ( s x , s y ) T ( x1 , y1 ) 0 1
0 0
sx
0
0

0
sy
0

x1 s x
y1 0
1 0

0
sy
0

0 1 0 x1
0 0 1 y1
1 0 0 1

x1 (1 s x )
y1 (1 s y )

1
25

Transformaciones 2D
Homogneas
Composicin de transformaciones
Para escalar, rotar y luego posicionar un
objeto, con P1 centro de rotacin y escalado
Trasladar P1 al origen, efectuar el escalado y la
rotacin, y luego trasladar desde el origen a la
nueva posicin P1

La matriz que representa dichas


transformaciones corresponde a:
T ( x2 , y2 ) R( ) S (sx , s y ) T ( x1 , y1 )
26

Transformaciones 2D
Homogneas
Composicin de transformaciones
En general, la multiplicacin de matrices no es
conmutativa
Sin embargo, al aplicar transformaciones 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
Una matriz de escalamiento seguida de otra matriz de
escalamiento
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 escalado uniforme (sx=sy)
27

Transformaciones 3D
Coordenadas homogneas
La representacin de las transformaciones en 3D
son representadas como matrices de 4x4
El punto (x,y,z) ser representado en coordenadas
homogneas como (W.x, W.y, W.z, W), con W0
Si W1, entonces W es dividido dentro de las tres
primeras coordenadas homogneas para as
obtener el punto cartesiano 3D (x,y,z)
Esto implica, que dos puntos homogneos H1 y H2
representan el mismo punto 3D s y solo s H1=cH2,
para cualquier constante c0
28

Transformaciones 3D
Traslacin en coordenadas homogneas
1
0
T ( Dx, Dy, Dz)
0
0

0
1
0
0

0 Dx
0 Dy
1 Dz
0 1

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
29

Transformaciones 3D
Escalado en coordenadas homogneas
Sx 0 0 0
0 Sy 0 0
S ( Sx, Sy, Sz )
0 0 Sz 0
0 0 0 1

Al multiplicar esta matriz por el vector de


puntos x,y,z,1 queda:
x
x Sx
y
y Sy
S ( Sx, Sy, Sz )

z
z Sz
1
1
30

Transformaciones 3D
Rotacin en
coordenadas
homogneas
Respecto del eje z
Respecto del eje x

Respecto del eje y

cos
sin
Rz ( )
0
0

sin
cos
0
0

1
0
0 cos
Rx ( )
0 sin
0
0
cos
0
Ry ( )
sin
0

0
0
1
0

0
0
0
1

0
sin
cos
0

0
0
0
1

0 sin
1
0
0 cos
0
0

0
0
0
1

31

Transformaciones 3D
Rotacin en coordenadas homogneas
La composicin de una secuencia arbitraria de
rotaciones con respecto a los ejes x, y, z
r11 r12 r13
r 21 r 22 r 23
A
r 31 r 32 r 33
0
0
0

0
0
0
1

La submatriz 3x3 es ortogonal


Sus columnas son vectores unitarios ortogonales
En caso de no serlo, adems de la rotacin se produciran
deformaciones (no sera una transformacin afn)
La inversa de una matriz ortogonal es su transpuesta
32

Transformaciones 3D
Un arbitrario nmero de matrices de
rotacin, escalado y traslacin pueden
ser multiplicadas en conjunto
El resultado siempre ser de la forma:
r11 sx
r 21
r 31
0

r12
r 22 s y
r 32
0

r13
r 23
r 33 sz
0

tx
ty
tz
1
33

Transformaciones 3D
PovRay
Matriz de transformacin 3D
cone { <0, 1, 0>, 0.0, <0, -1, 0>, 1.0
pigment { color rgb <0.2,0.6,0.9> }
matrix
<
0.886,-0.5,0.5, //the first 3 lines form a rotation matrix
0,
1,
0, // since it is not orthogonal, shearing occurs
0.5,
0, -0.886,
0,
0.8, 0
// the last 3 values contain the translation
>
}

34

Vous aimerez peut-être aussi