1. 5.4. Aplicaciones de las transformaciones: reflexión,
dilatación,contracción y rotación.
Dilatación o escalamiento 2D
El escalamiento 2D implica el cambio de tamaño de un polígono, donde cada punto
p
( x1 , x 2 ) es transformado por la multiplicación de dos factores de escalamiento: s1 y s2 a
lo largo de los ejes X1 y X2 respectivamente, de esta forma, las coordenadas del nuevo punto
p ' ( x1 ' , x 2 ' ) se obtienen como:
x1 ' x1 s1
x2 ' x2 s2
Sea s
( s1 , s 2 ) el vector de factores de escalamiento, y S(s) la matriz de
escalamiento, en coordenadas homogéneas el escalamiento de un punto p en 2D se puede
expresar como el producto matricial p'
p S ( s ) , es decir:
s1
x1 ' x 2 ' 1
0
0
0
x2 1
x1
0
s2
0
0
1
Ecuación 5.1: Expresión matricial para el escalamiento 2D.
La Figura 5.1 muestra el efecto de escalamiento de una figura con s1 = 1.5 y s2 = 2.
X2
X2
5
5
4
4
3
3
2
2
1
1
X1
1
2
3
4
5
X1
1
2
Figura 5.1: Ejemplo de escalamiento 2D.
219
3
4
5
2. V. Transformaciones Lineales.
Dilatación o escalamineto 3D
Extendiendo la idea anterior a 3D, el escalamiento implica el cambio de tamaño de un
poliedro, donde cada punto p
( x1 , x 2 , x3 ) es transformado por la multiplicación de tres
factores de escalamiento: s1, s2 y s3 a lo largo de los ejes X1, X2 y X3 respectivamente, de
esta forma, las coordenadas del nuevo punto p' ( x1 ' , x 2 ' , x3 ' ) se obtienen como:
x1 ' x1 s1
x2 ' x2 s2
x3 ' x3 s 3
Sea s
( s1 , s 2 , s3 ) el vector de factores de escalamiento, y S(s) la matriz de
escalamiento, en coordenadas homogéneas el escalamiento de un punto p en 3D se puede
expresar como el producto matricial p'
x1 ' x 2 ' x3 ' 1
p S ( s ) , es decir:
x1
x2
x3 1
s1
0
0
0
0
s2
0
0
0
0
s3
0
0
0
0
1
Ecuación 5.2: Expresión matricial para el escalamiento 3D.
La Figura 5.2 muestra el efecto de escalamiento de una figura con s1 = 2, s2 = 2.5 y
s3 = 1.5.
220
3. V. Transformaciones Lineales.
X2
X2
5
5
4
4
3
3
2
2
1
1
1
1
2
3
4
5
X1
1
2
2
3
4
5
X1
2
3
X3
1
3
X3
4
5
4
5
Figura 5.2: Ejemplo de escalamiento 3D.
Escalamiento o dilatación 4D
Extendiendo nuevamente la idea anterior a 4D, el escalamiento implica el cambio de
tamaño de un politopo 4D, donde cada punto p
( x1 , x 2 , x3 , x 4 ) es transformado por la
multiplicación de cuatro factores de escalamiento: s1, s2, s3 y s4 a lo largo de ejes que
forman
el
espacio
4D,
de
esta
forma,
las
coordenadas
del
nuevo
punto
p ' ( x1 ' , x 2 ' , x3 ' , x 4 ' ) se obtienen como:
x1 ' x1 s1
x2 ' x2 s2
x3 ' x3 s 3
x4 ' x4 s4
Sea s
( s1 , s 2 , s3 , s 4 ) el vector de factores de escalamiento, y S(s) la matriz de
escalamiento, en coordenadas homogéneas el escalamiento de un punto p en 4D se puede
expresar como el producto matricial p'
p S ( s ) , es decir:
221
4. V. Transformaciones Lineales.
x1 ' x 2 ' x3 ' x 4 ' 1
x1
x2
x3
x4 1
s1
0
0
0
0
0
s2
0
0
0
0
0
s3
0
0
0
0
0
s4
0
0
0
0
0
1
Ecuación 5.3: Expresión matricial para el escalamiento 4D.
Escalamiento o dilatación nD
De esta forma, el escalamiento nD implica el cambio de tamaño de un politopo nD en
todas sus dimensiones, como se observó anteriormente, se puede representar el
escalamiento nD en su forma matricial, donde los factores de escalamiento se localizan en
la diagonal principal, cada uno colocado en la columna que le corresponde a su respectivo
eje. Así, se obtiene la expresión matricial de escalamiento para cualquier dimensión:
xn ' 1
x1
x2
x3
xn 1
0
s2
0
0
0
s3
0
0
0
0
0
0
0
0
x1 ' x 2 ' x3 '
s1
0
0
0
0
0
0
sn
0
0
1
Ecuación 5.4: Expresión matricial para el escalamiento nD.
En general, la matriz de escalamiento S(s) para nD en coordenadas homogéneas tendrá
un tamaño de (n+1)
(n+1), en la cual, si se sustituyen los valores para n=2 y n=3, se
obtienen las matrices de escalamiento 2D y 3D respectivamente.
Translación
La translación permite desplazar un objeto a lo largo de sus dimensiones, como
resultado se obtiene un cambio de posición.
222
5. V. Transformaciones Lineales
Lineales.
Translación 2D
La translación 2D implica el desplazamiento de un polígono, donde cada punto
p
( x1 , x 2 ) es trasladado d1 unidades en el eje X1 y d2 unidades en el eje X2, de esta forma,
las coordenadas del nuevo punto p' ( x1 ' , x 2 ' ) , se obtienen como:
x1 ' x1
x2 ' x2
Sea d
d1
d2
(d 1 , d 2 ) el vector de distancias, y T(d) la matriz de translación, en
coordenadas homogéneas la translación de un punto p en 2D se puede expresar como el
producto matricial p'
p T (d ) , es decir:
1
x1 ' x 2 ' 1
0
0
d1
x2 1
x1
0
1
d2
0
1
Ecuación 5.5: Expresión matricial para la translación 2D.
La Figura 3.3 muestra el efecto de translación de una figura con d1 = 1 y d2 = 2.
X2
X2
5
5
4
4
3
3
2
2
1
1
1
2
3
4
5
X1
1
2
3
4
5
X1
Figura 5.3: Ejemplo de translación 2D.
Translación 3D
Basándose en la idea anterior, se tiene que la translación 3D implica el
desplazamiento de un poliedro, donde cada punto p
223
( x1 , x 2 , x3 ) es trasladado d1 unidades
6. V. Transformaciones Lineales.
en el eje X1 , d2 unidades en el eje X2 y d3 unidades en el eje X3, de esta forma, las
coordenadas del nuevo punto p' ( x1 ' , x 2 ' , x3 ' ) se obtienen como:
x1 ' x1
x2 ' x2
d2
x3 ' x 3
Sea d
d1
d3
(d1 , d 2 , d 3 ) el vector de distancias, y T(d) la matriz de translación, en
coordenadas homogéneas la translación de un punto p en 3D se puede expresar como el
producto matricial p'
p T (d ) , es decir:
1
x1 ' x 2 ' x3 ' 1
x1
x2
0
0
0
1
0
0
0
d1
x3 1
0
0
d2
1
d3
0
1
Ecuación 5.6: Expresión matricial para la translación 3D.
La Figura 5.4 muestra el efecto de translación de una figura con d1 = 2, d2 = 0 y d3 = 2.
X2
X2
5
5
4
4
3
3
2
2
1
1
1
1
2
3
4
5
X1
1
2
3
X3
4
5
2
3
X3
4
5
Figura 5.4: Ejemplo de translación 3D.
224
1
2
3
4
5
X1
7. V. Transformaciones Lineales.
Translación 4D
Nuevamente tomando como base esta idea, se tiene que la translación 4D implica el
desplazamiento de un politopo 4D, donde cada punto p
( x1 , x 2 , x3 , x 4 ) es trasladado por
la suma de cuatro distancias: d1, d2, d3, d4 a cada uno de los ejes que forman el espacio 4D,
de esta forma, las coordenadas del nuevo punto p ' ( x1 ' , x 2 ' , x3 ' , x 4 ' ) se obtiene como:
x1 ' x1
x2 ' x2
d2
x3 ' x 3
d3
x4 ' x4
Sea d
d1
d4
(d1 , d 2 , d 3 ,d 4 ) el vector de distancias, y T(d) la matriz de translación, en
coordenadas homogéneas la translación de un punto p en 4D se puede expresar como el
producto matricial p'
p T (d ) , es decir:
1
x2
x3
x4 1
0
0
1
0
0
0
0
0
0
0
1
0
0
1
0
0
d1
x1
0
0
x1 ' x 2 ' x3 ' x 4 ' 1
0
d2
d3
d4
1
Ecuación 5.7: Expresión matricial para la translación 4D.
Translación nD
De esta forma, la translación nD implica el desplazamiento de un politopo nD
sumando parámetros de distancias a todas sus dimensiones, como se observó anteriormente,
se puede representar la translación nD en su forma matricial, donde los parámetros de
distancia se localizan en el último renglón de la matriz, cada uno colocado en la columna
que le corresponde a su respectivo eje, y colocando valores de 1 en la diagonal principal.
Así, se obtiene la expresión matricial de translación para cualquier dimensión:
225
8. V. Transformaciones Lineales.
1
x2
x3
xn 1
0
1
0
0
0
0
0
1
0
0
0
0
1
0
d1
x1
0
0
xn ' 1
0
0
x1 ' x 2 ' x3 '
0
d2
d3
dn
1
Ecuación 5.8: Expresión matricial para la translación nD.
En general, la matriz de translación T(d) para nD en coordenadas homogéneas tendrá
un tamaño de (n+1)
(n+1), en la cual, si se substituyen los valores para n=2 y n=3, se
obtienen las matrices de translación 2D y 3D respectivamente.
Rotación
La rotación permite girar un objeto sobre un eje de rotación, dado un valor de ángulo
de rotación
y su dirección.
Rotaciones 2D
La rotación de un objeto en 2D se lleva a cabo alrededor de un punto, que es el eje
puntual (cero-dimensional) de rotación. Las rotaciones principales 2D son aquellas que se
llevan a cabo alrededor del origen, las rotaciones sobre cualquier otro punto arbitrario se
llaman rotaciones generales 2D. En esta Sección 5.5 , se analizan sólo las rotaciones principales para todas las dimensiones, en la Sección 5.6 se discuten las rotaciones generales.
Para generar una rotación, se especifica el ángulo de rotación , y el punto de rotación
(pivote) sobre el cuál el objeto será rotado. Los ángulos de rotación positivos definen una
rotación en sentido contrario a las manecillas del reloj sobre el punto pivote (del eje X1 al
eje X2), entonces los ángulos de rotación negativos producen una rotación en el sentido de
226
9. V. Transformaciones Lineales.
las manecillas (del eje X2 al eje X1). [Hearn 95] describe la rotación 2D como el giro sobre
el eje de rotación que es perpendicular al plano X1X2 (mejor conocido como plano XY) y
que pasa a través del punto pivote.
Si el punto pivote se encuentra sobre el origen (Figura 5.5), se tiene que: r es la
distancia del punto p
horizontal, y
( x1 , x 2 ) al origen,
define la posición angular del punto p desde la
el ángulo de rotación de p para producir el nuevo punto p ' ( x1 ' , x 2 ' ) .
X2
p’=(x1’,x2’)
r
p=(x1,x2)
r
X1
Figura 5.5: Rotación de un punto en 2D alrededor del origen.
Utilizando coordenadas polares, el punto p
p
(r , ) y el punto p ' ( x1 ' , x 2 ' ) como p ' (r ,
( x1 , x 2 ) se puede escribir como
) . Pasando después estos puntos de
coordenadas polares a rectangulares se tiene que:
x1
r cos( )
x1 ' r cos(
x2
)
r sin( )
x 2 ' r sin(
)
Aplicando algunas propiedades trigonométricas:
x1 ' r cos(
)
r cos cos
r sin sin
x 2 ' r sin(
)
r cos sin
r sin cos
Substituyendo los valores de x1
rotar un punto p
r cos( ) y x 2
r sin( ) se obtienen las ecuaciones para
( x1 , x 2 ) alrededor del origen dado un ángulo :
227
10. V. Transformaciones Lineales.
x1 '
x1 cos
x2 ' x1 sin
x 2 sin
x2 cos
Ecuación 5.9: Fórmulas para la rotación 2D alrededor del origen.
Sea R( ) la matriz de rotación sobre el origen, en coordenadas homogéneas la rotación
de un punto p alrededor del origen en 2D se puede expresar como el producto matricial
p
p R
, es decir:
cos
x1 ' x 2 ' 1
x1
sin
0
sin
0
cos
0
0
1
x2 1
Ecuación 5.10: Expresión matricial para la rotación 2D.
La Figura 5.6 muestra el efecto de rotación de una figura con
45 .
X2
=
X2
2
2
1
1
X1
-1
-2
1
X1
-1
2
-2
1
-1
-1
-2
2
-2
Figura 5.6: Ejemplo de rotación 2D.
Rotaciones 3D
A diferencia de la rotación en el espacio 2D, donde para hacer rotar un objeto se
necesita un punto (cero-dimensional), en 3D para hacer rotar un objeto se necesitan dos
puntos no coincidentes que determinan un segmento de recta, cuya línea de soporte define
un eje lineal (uni-dimensional) de rotación.
228
11. V. Transformaciones Lineales.
Las rotaciones principales 3D, son aquellas cuando el eje de rotación se encuentra
sobre alguno de los tres ejes principales: X1, X2 o X3, las rotaciones sobre cualquier otro eje
arbitrario son llamadas rotaciones generales 3D. Se recuerda que inicialmente, se analizan
las rotaciones principales.
Por convención, los ángulos de rotación positivos producen rotaciones en contra de
las manecillas del reloj sobre el eje de rotación, esto es si se observa el giro desde la parte
positiva del eje hacia el origen. Otra forma de determinar la dirección de un giro positivo es
mediante la regla de la mano derecha (Figura 5.7), que dice que: “Si se coloca el dedo
pulgar de la mano derecha sobre el eje de rotación apuntando hacia la parte positiva de
dicho eje, el giro natural del resto de los dedos indica la dirección positiva del giro”.
X2
X2
X2
X1
X3
X1
X3
X1
X3
Figura 5.7: Regla de la mano derecha para obtener la dirección de un giro positivo en 3D.
Para entender el concepto de rotación en 3D como una extensión de la rotación 2D,
hay que recordar que la rotación 2D es el giro sobre el eje de rotación, que es perpendicular
al plano X1X2, el cual en 3D corresponde al eje X3, entonces se tiene la primera de las rotaciones principales .
De esta forma, por cada punto p
( x1 , x 2 , x3 ) dado un ángulo , puede ser rotado
sobre el eje X3 en sentido contrario a las manecillas del reloj, obteniendo las coordenadas
del nuevo punto p' ( x1 ' , x 2 ' , x3 ' ) de la misma forma en como se analizó en el espacio 2D
229
12. V. Transformaciones Lineales.
quedando la coordenada x3 sin cambio, entonces, se extienden las formulas para la
rotación 2D (Ecuación 3.9) a 3D como:
x1 '
x1 cos
x 2 sin
x2 '
x1 sin
x 2 cos
x3 ' x3
Ecuación 5.11: Fórmulas para la rotación 3D alrededor del eje X3.
Sea R3( ) la matriz de rotación alrededor del eje X3, en coordenadas homogéneas la
rotación de un punto p alrededor de dicho eje, se puede expresar como el producto matricial
( )
'
p
p R3
, es decir:
x1 ' x 2 ' x3 ' 1
x1
x2
cos
sin
0
0
x3 1
sin
cos
0
0
0
0
1
0
0
0
0
1
Ecuación 5.12: Expresión matricial para la rotación 3D alrededor del eje X3.
La Figura 5.8 muestra el efecto de rotación sobre el eje X3 de una figura con
X2
X2
5
5
4
4
3
3
2
2
1
1
1
1
2
3
4
5
X1
1
2
3
X3
4
= 20 .
1
2
3
X3
5
4
5
Figura 5.8: Ejemplo de rotación 3D sobre el eje X3.
230
2
3
4
5
X1
13. V. Transformaciones Lineales.
Las ecuaciones para las rotaciones sobre el eje X1, y eje X2, pueden ser obtenidas
mediante las permutaciones cíclicas de los parámetros x1, x2, x3:
x1
x2
x3
x1
como se muestra en la Figura 3.9
X2
X3
X1
X1
X2
X3
X1
X3
X2
Figura 5.9: Permutaciones cíclicas de los ejes coordenados
Entonces, aplicando estas substituciones cíclicas en la Ecuación 5.11, se obtienen las
ecuaciones para la rotación alrededor del eje X1 dado un ángulo .
x 2 ' x 2 cos
x 3 sin
x1 ' x1
x3 '
x 3 cos
x 2 ' x 2 cos
x 3 sin
x3 '
x 3 cos
x 2 sin
x1 ' x1
x 2 sin
Ecuación 5.13: Fórmulas para la rotación 3D alrededor del eje X1.
Sea R1( ) la matriz de rotación alrededor del eje X1, en coordenadas homogéneas la
rotación de un punto p alrededor de dicho eje, se puede expresar como el producto matricial
p
p R1
, es decir:
x1 ' x 2 ' x3 ' 1
x1
x2
x3 1
1
0
0
0
0
cos
sin
0
0
sin
cos
0
0
0
0
1
Ecuación 5.14: Expresión matricial para la rotación 3D alrededor del eje X1.
231
14. V. Transformaciones Lineales.
Aplicando nuevamente las substituciones cíclicas en la Ecuación 3.13, se obtienen las
fórmulas para la rotación alrededor del eje X2 dado un ángulo .
x3 '
x 3 cos
x1 sin
x1 '
x1 '
x 3 sin
x1 cos
x2 ' x2
x3 '
x2 ' x2
x1 cos
x 3 sin
x1 sin
x 3 cos
Ecuación 5.15: Fórmulas para la rotación 3D alrededor del eje X2.
Sea R2( ) la matriz de rotación alrededor del eje X2, en coordenadas homogéneas la
rotación de un punto p alrededor de dicho eje, se puede expresar como el producto matricial
p
p R2
, es decir:
x1 ' x 2 ' x3 ' 1
x1
x2
x3 1
cos
0
sin
0
0
1
0
0
sin
0
cos
0
0
0
0
1
Ecuación 3.16: Expresión matricial para la rotación 3D alrededor del eje X2.
232