Transformaci Ones

34
Transformaciones Geométricas

description

kjkj

Transcript of Transformaci Ones

Transformaciones Geométricas

2

Definición

• Conceptos básicos referentes a las

transformaciones geométricas afines en

2D y 3D

– Traslación

– Escalamiento

– Rotación

• Las transformaciones se utilizan en las

aplicaciones o como subrutinas gráficas

3

Transformaciones 2D

• Traslación

– 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 transformación son:

– Vectorialmente:

ydyy 'xdxx '

,,'

'',

y

x

d

dT

y

xP

y

xP TPP '

4

Transformaciones 2D

• Traslación

– Se puede aplicar la fórmula de traslación a

todos los puntos de un objeto

– Se puede aplicar a los puntos extremos

(válido también para rotaciones y escalados)

(4,5) (7,5)

y

x(7,1) (10,1)

y

x

5

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

– Matricialmente

' xx s x ' yy s y

PSPy

x

s

s

y

x

y

x

'

0

0

'

'

6

Transformaciones 2D

• Escalado

– Ejemplo

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

• El escalado se efectúa con respecto al origen

Antes del escalamiento Después del escalamiento

(4,5) (7,5)

y

x

(2 , 5)4

(7 , 5)2 4

y

x

7

Transformaciones 2D

• Rotación

– Giro de los puntos, un

ángulo respecto del

origen

– Matricialmente

senyxx cos'

cos' ysenxy

PRPy

x

sen

sen

y

x

'

cos

cos

'

'

8

Transformaciones 2D

• Rotación

– Ejemplo; rotar 45º respecto del origen

(2.1 , 4.9)

(4.9 , 7.8)

y

x

(5,2) (9,2)

y

x

9

Transformaciones 2D

• Rotación

– Ecuaciones de

transformación:

• Sea el punto P(x,y) y el

transformado P’(x’,y’)P’(x’,y’)

P(x,y)

y

x

r

r cos ( + f) r cos f

f

r

cosx r f seny r f

fff sensenrrrx coscos)cos('

fff coscos)(' senrsenrsenry

' cos senx x y

' sen cosy x y

' cos sen

' sen cos

x x

y y

10

Transformaciones 2D

• PovRaycone { <0, 1, 0>, 0.0, <0, -1, 0>, 1.0

pigment { color rgb <0.2,0.6,0.9> }

…………………

}

– Traslacióntranslate <-2.0, 1.0, -0.5> // <dX, dY, dZ>

translate 1*y

– Escaladoscale <1.0, 2.0, 3.0> // <dX, dY, dZ>

scale 2.0

– Rotaciónrotate <30, 0, -45> // <dX, dY, dZ> (grados)

rotate 30*x

11

Transformaciones 2D

• PovRay

– Sistemas de coordenadas

12

Transformaciones 2D

• Coordenadas homogéneas– Las representaciones matriciales obtenidas hasta ahora son:

• Traslación

• Escala

• Rotación

• Problema: La traslación es tratada de forma diferente – Solución: Utilizar un sistema de coordenadas homogéneas

• Cada punto se representa siguiendo la forma (x,y,W)

• Dos conjuntos de coordenadas homogéneas (x,y,W) y (x',y',W') representan al mismo punto si y sólo si una es múltiplo de la otra

• Para W ≠ 0 se obtiene los puntos x/W, y/W a los cuales se les llama coordenadas Cartesianas del punto homogéneo

PTP '

PSP '

PRP '

13

Transformaciones 2D

Homogéneas

• Las ecuaciones de

traslación pasan a

ser una matriz 3x3 en

coordenadas

homogéneas

• Esta ecuación puede

ser representada de

la siguiente forma:

• Donde

1100

10

01

1

'

'

y

x

d

d

y

x

y

x

100

10

01

),( y

x

yx d

d

ddT

' ( , )x yP T d d P

14

Transformaciones 2D

Homogéneas

• Composición de traslaciones– Supóngase que un punto P es trasladado por

T(dx1,dy1) al punto P' y luego es trasladado por T(dx2,dy2) al punto P''

– Sustituyendo se obtiene:

– El producto matricial es:

PddTddTPddTddTP yxyxyxyx ),(),(),(),('' 11221122

,),(' 11 PddTP yx '),('' 22 PddTP yx

),(),( 1122 yxyx ddTddT

100

10

01

100

10

01

100

10

01

21

21

1

1

2

2

yy

xx

y

x

y

x

dd

dd

d

d

d

d

15

Transformaciones 2D

Homogéneas

• Composición de traslaciones

– Por lo tanto la traslación neta es

T(dx1+dx2,dy1+dy2). El producto matricial

efectuado no es más que la composición de

T(dx1,dy1) y T(dx2,dy2)

– Por otro lado, puede verificarse con facilidad

que la transformación inversa de una

traslación T(dx,dy) no es más que T-1(dx,dy)=

T(-dx,-dy)

16

Transformaciones 2D

Homogéneas

• Escalado en coordenadas homogéneas

– Un procedimiento similar al efectuado con la

traslación puede aplicarse al escalado,

obteniendo una nueva representación

matricial:

– El escalado resulta:

1100

00

00

1

'

'

y

x

s

s

y

x

y

x

100

00

00

),( y

x

yx s

s

ssS

PssSP yx ),('

17

Transformaciones 2D

Homogéneas

• Composición de escalados– Supóngase que un punto P es escalado por S(sx1,sy1)

al punto P' y luego es trasladado por S(sx2,sy2) al punto P''

– Sustituyendo se obtiene:

– El producto matricial es:

2 2 1 1 2 2 1 1'' ( , ) ( , ) ( , ) ( , )x y x y x y x yP S s s S s s P S s s S s s P

1 1' ( , ) ,x yP S s s P 2 2'' ( , ) 'x yP S s s P

2 2 1 1( , ) ( , )x y x yS s s S s s

100

00

00

100

00

00

100

00

00

21

21

1

1

2

2

yy

xx

y

x

y

x

ss

ss

s

s

s

s

18

Transformaciones 2D

Homogéneas

• Rotación en coordenadas homogéneas

– Si

– La rotación resulta:

– Y la composición de rotaciones se realiza:

1100

0cos

0cos

1

'

'

y

x

sen

sen

y

x

100

0cos

0cos

)(

sen

sen

R

PRP )('

).()()( 2121 RRR

19

Transformaciones 2D

Homogéneas

• Transformaciones inversas

– De una traslación T(dx,dy) no es más 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 rotación R() es:

R-1() = R(-)

20

Transformaciones 2D

Homogéneas

• Transformaciones afines– Producto de una secuencia arbitraria de matrices de

rotación, traslación y escalamiento

– Teniendo la propiedad de conservar el paralelismo de las líneas, pero no longitudes ni ángulos

• Rotaciones, escalamientos y traslaciones subsiguientes no podrían hacer que las líneas dejen de ser paralelas

Rotación Escalado no uniforme

21

Transformaciones 2D

Homogéneas

• Estiramiento (Shear)

– El estiramiento puede realizarse respecto de

cualquier eje

– La matriz para el estiramiento en cada eje

es:

Estiramiento en x

Estiramiento en y

100

010

01 a

SH x

100

01

001

bSH y

22

Transformaciones 2D

Homogéneas

• Composición de transformaciones– Objetivo: ganar eficiencia aplicando una sola transformación

compuesta a un punto, en vez de aplicar una serie de transformaciones, una tras otra.

– La rotación 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 traslación es T(-x1,-y1), haciéndose por último la traslación inversa T(x1,y1)

23

Transformaciones 2D

Homogéneas

• Composición de transformaciones

– Ejemplo: Rotación respecto del punto P1

Traslación

Rotación Traslación inversa

y

x

P1

y

x

y

x

P1

y

x

24

Transformaciones 2D

Homogéneas

• Composición de transformaciones

– Ejemplo: Rotación respecto del punto P1

• La transformación neta aplicada es:

1 1

1 1 1 1 1 1

1 0 cos sen 0 1 0

( , ) ( ) ( , ) 0 1 sen cos 0 0 1

0 0 1 0 0 1 0 0 1

x x

T x y R T x y y y

100

)cos1(cos

)cos1(cos

11

11

senxysen

senyxsen

25

Transformaciones 2D

Homogéneas

• Composición de transformaciones

– Ejemplo: Escalado respecto del punto P1

• La transformación neta aplicada es:

100

10

01

100

00

00

100

10

01

),(),(),( 1

1

1

1

1111 y

x

s

s

y

x

yxTssSyxT y

x

yx

100

)1(0

)1(0

1

1

yy

xx

sys

sxs

26

Transformaciones 2D

Homogéneas

• Composición de transformaciones

– Para escalar, rotar y luego posicionar un

objeto, con P1 centro de rotación y escalado

• Trasladar P1 al origen, efectuar el escalado y la

rotación, y luego trasladar desde el origen a la

nueva posición P1

– La matriz que representa dichas

transformaciones corresponde a:

),(),()(),( 1122 yxTssSRyxT yx

27

Transformaciones 2D

Homogéneas

• Composición de transformaciones– En general, la multiplicación de matrices no es

conmutativa

– Sin embargo, al aplicar transformaciones de traslación, escalamiento y rotación se dan casos especiales donde el producto de matrices es conmutativo

• Una matriz de traslación seguida de otra matriz de traslación pueden conmutarse

• Una matriz de escalamiento seguida de otra matriz de escalamiento

• Una matriz de rotación seguida de otra matriz de rotación

• Otro caso donde la multiplicación de este tipo de matrices es conmutativa corresponde a tener una matriz de rotación y otra de escalado uniforme (sx=sy)

28

Transformaciones 3D

• Coordenadas homogéneas

– La representación de las transformaciones en 3D

son representadas como matrices de 4x4

– El punto (x,y,z) será representado en coordenadas

homogéneas como (W.x, W.y, W.z, W), con W≠0

– Si W≠1, entonces W es dividido dentro de las tres

primeras coordenadas homogéneas para así

obtener el punto cartesiano 3D (x,y,z)

– Esto implica, que dos puntos homogéneos H1 y H2

representan el mismo punto 3D sí y solo sí H1=cH2,

para cualquier constante c≠0

29

Transformaciones 3D

• Traslación en coordenadas homogéneas

– Al multiplicar esta matriz por el vector de

puntos x,y,z,1 queda:

1000

100

010

001

),,(Dz

Dy

Dx

DzDyDxT

11

),,(Dzz

Dyy

Dxx

z

y

x

DzDyDxT

30

Transformaciones 3D

• Escalado en coordenadas homogéneas

– Al multiplicar esta matriz por el vector de

puntos x,y,z,1 queda:

1000

000

000

000

),,(Sz

Sy

Sx

SzSySxS

11

),,(Szz

Syy

Sxx

z

y

x

SzSySxS

31

Transformaciones 3D

• Rotación en

coordenadas

homogéneas

– Respecto del eje z

– Respecto del eje x

– Respecto del eje y

1000

0100

00cossin

00sincos

)(

Rz

1000

0cossin0

0sincos0

0001

)(

Rx

1000

0cos0sin

0010

0sin0cos

)(

Ry

32

Transformaciones 3D

• Rotación en coordenadas homogéneas– La composición de una secuencia arbitraria de

rotaciones con respecto a los ejes x, y, z

– La submatriz 3x3 es ortogonal• Sus columnas son vectores unitarios ortogonales

• En caso de no serlo, además de la rotación se producirían deformaciones (no sería una transformación afín)

• La inversa de una matriz ortogonal es su transpuesta

1000

0333231

0232221

0131211

rrr

rrr

rrr

A

33

Transformaciones 3D

• Un arbitrario número de matrices de

rotación, escalado y traslación pueden

ser multiplicadas en conjunto

• El resultado siempre será de la forma:

11 12 13

21 22 23

31 32 33

0 0 0 1

x

y

z

r s r r tx

r r s r ty

r r r s tz

34

Transformaciones 3D

• PovRay

– Matriz de transformación 3Dcone { <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

>

}