Modelado y Simulación de Entornos Virtuales - dynadata.comdynadata.com/ITVER/Docs/Robotica/UNIDAD 3...
-
Upload
vuongthuan -
Category
Documents
-
view
231 -
download
0
Transcript of Modelado y Simulación de Entornos Virtuales - dynadata.comdynadata.com/ITVER/Docs/Robotica/UNIDAD 3...
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
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
>
}