Capitulo 3
Capitulo 3
Capitulo 3
rotación. Se analizan las analogías que hay de estas transformaciones para llevarlas a 4D y
presenta una de las contribuciones de este trabajo, definiendo las matrices generales de IDA
y REGRESO para llevar a cabo las rotaciones alrededor de un eje de rotación en un espacio
n-dimensional.
trabajo se propone un orden distinto, donde primero se explican los temas por
dimensiones, enseguida la translación y por último la rotación. Esta idea es con la intensión
y a dimensiones superiores.
las ecuaciones de trasformación por medio de matrices, y se pueden encontrar dos tipos de
54
notaciones para representarlas, una es representando las coordenadas de un punto p como
vectores renglón, en este caso una matriz de transformación M en 2D, multiplica al punto
columna, en este caso una matriz de transformación M, multiplica al punto por la izquierda
⎡ x1 ⎤ ⎡ x '⎤
p = ⎢ ⎥ , p' = ⎢ 1 ⎥ = M ⋅ p
⎣ x2 ⎦ ⎣ x 2 '⎦
En este trabajo, se representan los puntos por medio de vectores renglón, por lo tanto
las matrices de transformación estarán modeladas para multiplicarlas por la derecha, sin
transpuesta.
factores, por tal razón se utilizan las coordenadas homogéneas para la representación
matricial, y de esta forma todas las transformaciones son tratadas como multiplicaciones.
esta forma, en lugar de representar los puntos como p = ( x1 , x 2 ) son representados como
( x1 , x 2 , ω ) y ( x1 ' , x 2 ' , ω ' ) representan el mismo punto si una es múltiplo de la otra. Por
ejemplo, la terna (4, -2, 6) y (8, -4, 12) representan el mismo punto 2D pero en diferentes
coordenadas triples, esto significa que cada punto tiene un sinfín de representaciones en
coordenadas homogéneas.
55
Al menos uno de las coordenadas homogéneas tiene que ser distinta de cero, por lo
dividir entre ω y se obtiene ( x1 ω , x 2 ω ,1) , cuando se realiza esta división, a los valores
x1/ω y x2/ω se les llama coordenadas cartesianas del punto homogéneo [Foley 92]. Una
las coordenadas homogéneas ( x1 , x 2 ,1) . A los puntos con la forma ( x1 , x 2 ,0) se les llama
geométricas 2D, pero con la incorporación del eje Z [Hearn 95]. En [Hollasch, 91] se
muestra que los puntos y operaciones vectoriales en el espacio 4D son simples extensiones
de su contraparte 3D.
otras dimensiones.
3.3 Escalamiento
El escalamiento permite cambiar el tamaño de un objeto expandiéndolo o
56
3.3.1 Escalamiento 2D
lo largo de los ejes X1 y X2 respectivamente, de esta forma, las coordenadas del nuevo punto
x1 ' = x1 ⋅ s1
x2 ' = x2 ⋅ s2
⎡ s1 0 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢ 0 s2 0⎥⎥
⎣⎢ 0 0 1⎦⎥
X2 X2
5 5
4 4
3 3
2 2
1 1
X1 X1
1 2 3 4 5 1 2 3 4 5
57
3.3.2 Escalamiento 3D
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
⎡ s1 0 0 0⎤
⎢0 s2 0 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢0 0 s3 0⎥
⎢ ⎥
⎣0 0 0 1⎦
s3 = 1.5.
58
X2 X2
5 5
4 4
3 3
2 2
1 1
X1 X1
1 2 3 4 5 1 2 3 4 5
1 1
2 2
3 3
X3 4 X3 4
5 5
3.3.3 Escalamiento 4D
forman el espacio 4D, de esta forma, las coordenadas del nuevo punto
x1 ' = x1 ⋅ s1
x2 ' = x2 ⋅ s2
x3 ' = x3 ⋅ s 3
x4 ' = x4 ⋅ s4
59
⎡ s1 0 0 0 0⎤
⎢0 s2 0 0 0⎥⎥
⎢
[x1 ' x 2 ' x3 ' x 4 ' 1] = [x1 x2 x3 x4 1] ⋅ ⎢ 0 0 s3 0 0⎥
⎢ ⎥
⎢0 0 0 s4 0⎥
⎢⎣ 0 0 0 0 1⎥⎦
3.3.4 Escalamiento nD
⎡ s1 0 0 K 0 0⎤
⎢0 s2 0 K 0 0⎥⎥
⎢
⎢0 0 s3 K 0 0⎥
[x1 ' x 2 ' x3 ' K x n ' 1] = [x1 x2 x3 K x n 1] ⋅ ⎢ ⎥
⎢M M M O M M⎥
⎢0 0 0 K sn 0⎥
⎢ ⎥
⎣⎢ 0 0 0 K 0 1⎦⎥
tendrá un tamaño de (n+1) × (n+1), en la cual, si se sustituyen los valores para n=2 y n=3,
3.4 Translación
La translación permite desplazar un objeto a lo largo de sus dimensiones, como
60
3.4.1 Translación 2D
las coordenadas del nuevo punto p' = ( x1 ' , x 2 ' ) , se obtienen como:
x1 ' = x1 + d1
x2 ' = x2 + d 2
⎡1 0 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢ 0 1 0⎥⎥
⎢⎣d1 d2 1⎥⎦
X2 X2
5 5
4 4
3 3
2 2
1 1
X1 X1
1 2 3 4 5 1 2 3 4 5
3.4.2 Translación 3D
61
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 + d1
x2 ' = x2 + d 2
x3 ' = x 3 + d 3
⎡1 0 0 0⎤
⎢0 1 0 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢0 0 1 0⎥
⎢ ⎥
⎣d1 d2 d3 1⎦
X2 X2
5 5
4 4
3 3
2 2
1 1
X1 X1
1 2 3 4 5 1 2 3 4 5
1 1
2 2
3 3
X3 4 X3 4
5 5
62
3.4.3 Translación 4D
Nuevamente tomando como base esta idea, se tiene que la translación 4D implica el
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 + d1
x2 ' = x2 + d 2
x3 ' = x 3 + d 3
x4 ' = x4 + d 4
⎡1 0 0 0 0⎤
⎢0 1 0 0 0⎥⎥
⎢
[x1 ' x 2 ' x3 ' x 4 ' 1] = [x1 x2 x3 x4 1] ⋅ ⎢ 0 0 1 0 0⎥
⎢ ⎥
⎢0 0 0 1 0⎥
⎢⎣d1 d2 d3 d4 1⎥⎦
3.4.4 Translación nD
63
⎡1 0 0 K 0 0⎤
⎢0 1 0 K 0 0⎥⎥
⎢
⎢0 0 1 K 0 0⎥
[x1 ' x 2 ' x3 ' K x n ' 1] = [x1 x2 x3 K x n 1] ⋅ ⎢ ⎥
⎢M M M O M M⎥
⎢0 0 0 K 1 0⎥
⎢ ⎥
⎢⎣d1 d2 d3 K d n 1⎥⎦
un tamaño de (n+1) × (n+1), en la cual, si se substituyen los valores para n=2 y n=3, se
3.5 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.
3.5.1 Rotaciones 2D
llevan a cabo alrededor del origen, las rotaciones sobre cualquier otro punto arbitrario se
llaman rotaciones generales 2D. En esta Sección 3.5 , se analizan sólo las rotaciones
principales para todas las dimensiones, en la Sección 3.6 se discuten las rotaciones
generales.
(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
64
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
distancia del punto p = ( x1 , x 2 ) al origen, φ define la posición angular del punto p desde la
horizontal, y θ 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
p = (r , φ ) y el punto p ' = ( x1 ' , x 2 ' ) como p ' = (r , φ + θ ) . Pasando después estos puntos de
x1 = r cos(φ ) x 2 = r sin(φ )
x1 ' = r cos(φ + θ ) x 2 ' = r sin(φ + θ )
65
x1 ' = x1 cos θ − x 2 sin θ
⎡ cos θ sin θ 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢− sin θ cos θ 0⎥⎥
⎢⎣ 0 0 1⎥⎦
X2 X2
2 2
1 1
X1 X1
-1 -2 1 2 -1 -2 1 2
-1 -1
-2 -2
3.5.2 Rotaciones 3D
puntos no coincidentes que determinan un segmento de recta, cuya línea de soporte define
66
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 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 3.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 X1 X1
X3 X3 X3
Figura 3.7: Regla de la mano derecha para obtener la dirección de un giro positivo en 3D.
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
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
67
(ver Sección 3.5.1 ), quedando la coordenada x3 sin cambio, entonces, se extienden las
x3 ' = 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:
⎡ cos θ sin θ 0 0⎤
⎢− sin θ cos θ 0 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢ 0 0 1 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
Ecuación 3.12: Expresión matricial para la rotación 3D alrededor del eje X3.
La Figura 3.8 muestra el efecto de rotación sobre el eje X3 de una figura con θ = 20°.
X2 X2
5 5
4 4
3 3
2 2
1 1
X1 X1
1 2 3 4 5 1 2 3 4 5
1 1
2 2
3 3
X3 4 X3 4
5 5
68
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: [Hearn 95].
x1 → x2 → x3 → x1
X2 X3 X1
X1 X2 X3
X3 X1 X2
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:
⎡1 0 0 0⎤
⎢0 cos θ sin θ 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢0 − sin θ cos θ 0⎥
⎢ ⎥
⎣0 0 0 1⎦
Ecuación 3.14: Expresión matricial para la rotación 3D alrededor del eje X1.
69
Aplicando nuevamente las substituciones cíclicas en la Ecuación 3.13, se obtienen las
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:
⎡cos θ 0 − sin θ 0⎤
⎢ 0 1 0 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢ sin θ 0 cos θ 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
Ecuación 3.16: Expresión matricial para la rotación 3D alrededor del eje X2.
rotaciones paralelas a un plano 2D, inmerso en el espacio [Noll 67], esto es útil para
Se sabe que en 3D hay tres ejes coordenado: X1, X2 y X3, y los planos principales son
los formados por todas las posibles combinaciones de 2 de estos ejes, se obtienen así, los
70
X2 X2 X2
X1 X1
X1
X3 X3
X3
a) b) c)
Figura 3.10: Planos principales 3D: a) plano X1X2, b) plano X1X3 y c) plano X2X3.
Se sabe que hay tres rotaciones principales, que son alrededor de cada uno los ejes
principales, y durante estos giros se cumple que: dado el origen y ángulo de rotación, el
conjunto de todos los puntos rotados por una matriz dada caen en un plano, llamado plano
de rotación, y el eje lineal de rotación es el que coincide con el vector normal de este plano.
Esto es consiste con el espacio 2D, porque todos los puntos rotados caen en un único y
Entonces se tiene que las rotaciones alrededor de los ejes coordenados producen
rotaciones de todos los planos paralelos al plano de rotación, el cuál está formado por los
ejes restantes, es decir, si el eje de rotación es el eje X3, el plano de rotación será el formado
por los ejes coordenados restantes: el plano X1X2, de esta manera, si el eje de rotación es el
eje X2, el plano de rotación será el plano X1X3, y si el eje de rotación es el eje X1, y el plano
71
X2 X2
X1 X1
X3 X3
a) b)
X2
X1
X3
c)
Figura 3.11: Rotaciones principales 3D: a) eje X3, plano X1X2, b) eje X2, plano X1X3 y
c) eje X1, plano X2X3.
tal subespacio es el eje de rotación [Banks 92], lo que significa que todos los puntos que
caen sobre este eje, no se ven afectados por la rotación. Esto se puede ver gráficamente en
la Figura 3.11, donde se observa que en cada una de las rotaciones, los puntos que caen
colocando como subíndices los ejes que forman dicho plano, se tiene:
72
⎡ cos θ sin θ 0 0⎤ ⎡1 0 0 0⎤
⎢− sin θ 0⎥⎥ ⎢0 cos θ
cos θ 0 sin θ 0⎥⎥
R3 (θ ) = R1, 2 (θ ) = ⎢ R1 (θ ) = R2,3 (θ ) = ⎢
⎢ 0 0 1 0⎥ ⎢0 − sin θ cos θ 0⎥
⎢ ⎥ ⎢ ⎥
⎣ 0 0 0 1⎦ ⎣0 0 0 1⎦
⎡cos θ 0 − sin θ 0⎤
⎢ 0 1 0 0⎥⎥
R2 (θ ) = R3,1 (θ ) = ⎢
⎢ sin θ 0 cos θ 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
3.5.3 Rotaciones 4D
espacio 4D, porque ésta es una idea arraiga en nuestra experiencia en 3D, sin embargo, es
solo una casualidad geométrica que en el espacio tridimensional el eje de rotación sea uni-
dimensional.
Tanto [Banks 92] como [Hollasch, 91] coinciden con la idea de que las rotaciones 4D
son similares a las rotaciones 3D, si se piensa en las rotaciones 3D como rotaciones
paralelas a un plano 2D, en lugar de rotaciones alrededor de un eje lineal, como se explica
en la sección 3.5.2.1 .
A diferencia de la rotación 3D, donde para hacer rotar un objeto se necesitaba de dos
rotar un objeto se necesitan tres puntos no colineales que determinan un triángulo, cuyo
73
Tomando en cuenta que en el espacio 4D hay cuatro ejes coordenados: X1, X2, X3 y X4,
se tienen rotaciones paralelas a los planos formados por todas las posibles combinaciones
de 2 de estos ejes, se obtienen así los seis planos principales 4D: X1X2, X1X3, X1X4, X2X3,
X2 X2 X2
X4 X4
X4
X1 X1
X1
X3 X3 X3
a) b) c)
X2 X2 X2
X4 X4 X4
X1 X1 X1
X3 X3
X3
d) e) f)
Figura 3.12: Planos principales 4D: a) plano X1X2, b) plano X1X3, c) plano X1X4, d) plano X2X3,
e) plano X2X4 y f) plano X3X4.
[Hollasch 91] se basa en la idea de que solo las dos coordenadas que definen al plano
de rotación cambiaran dada una rotación, y construye las seis matrices para las rotaciones
principales 4D.
74
⎡ cos θ sin θ 0 0 0⎤ ⎡1 0 0 0 0⎤
⎢− sin θ cos θ 0 0 0⎥⎥ ⎢0 cos θ sin θ 0 0⎥⎥
⎢ ⎢
R1, 2 (θ ) = ⎢ 0 0 1 0 0⎥ R2,3 (θ ) = ⎢0 − sin θ cos θ 0 0⎥
⎢ ⎥ ⎢ ⎥
⎢ 0 0 0 1 0⎥ ⎢0 0 0 1 0⎥
⎢⎣ 0 0 0 0 1⎥⎦ ⎢⎣0 0 0 0 1⎥⎦
⎡1 0 0 0 0⎤ ⎡1 0 0 0 0⎤
⎢0 cos θ 0 sin θ 0⎥⎥ ⎢0 1 0 0 0⎥⎥
⎢ ⎢
R2, 4 (θ ) = ⎢0 0 1 0 0⎥ R3, 4 (θ ) = ⎢0 0 cos θ sin θ 0⎥
⎢ ⎥ ⎢ ⎥
⎢0 − sin θ 0 cos θ 0⎥ ⎢0 0 − sin θ cos θ 0⎥
⎢⎣0 0 0 0 1⎥⎦ ⎢⎣0 0 0 0 1⎥⎦
Se observa que las matrices de rotación R1,2(θ), R3,1(θ) y R2,3(θ) son básicamente las
lo que indica es el sentido del giro, por ejemplo la matriz de rotación R1,2(θ), indica que la
subespacio es el eje bi-dimensional de rotación, y solo se ven afectados los puntos dentro
eje bi-dimensional de rotación está formado por los ejes restantes. Por ejemplo en la Figura
75
3.13.a) que representa a la matriz R1,2(θ), el plano de rotación es el plano X1X2, el eje bi-
dimensional de rotación está formado por los ejes coordenados restantes, el plano X3X4, y se
observa que los puntos que caen sobre este último plano quedan fijos.
X2 X2
X4 X4
a) X1 b) X1
X3 X3
X2 X2
X4 X4
c) X1 d) X1
X3 X3
X2 X2
X4 X4
e) X1 f) X1
X3 X3
Figura 3.13: Rotaciones principales 4D: a) eje X3X4, plano X1X2, b) eje X2X4, plano X1X3, c) eje X1X4,
plano X2X3, d) eje X2X3, plano X1X4, e) eje X1X3, plano X2X4, f) eje X1X2, plano X3X4.
76
3.5.4 Rotaciones nD
eje (n-2)-dimensional de rotación, este subespacio está formado por los ejes
puntos dentro del plano de rotación y dentro del conjunto de planos paralelos a él.
paralelas a los planos formados por todas las posibles combinaciones de 2 de estos
de ese plano, la rotación es únicamente definida, por lo tanto, la rotación más simple de
describir en el espacio nD ocurre cuando el plano está formado por cualesquiera dos ejes
dirección de un eje Xb (donde ambos definen el plano de rotación) por un ángulo θ, está
77
⎡ ra ,a = cos(θ ) ⎤
⎢ rb ,b = cos(θ ) ⎥
⎢ ⎥
⎢ ra ,b = sin(θ ) ⎥
R a ,b (θ ) = ⎢ ri , j ⎥
⎢ rb , a = − sin(θ ) ⎥
⎢ ri ,i = 1 i ≠ a, i ≠ b ⎥
⎢ ⎥
⎢⎣ ri , j = 0 en otra parte ⎥⎦
La Ecuación 3.19, indica que la matriz Ra,b(θ) es básicamente una matriz identidad,
excepto por las intersecciones de las columnas a y b con los renglones a y b, lo que
significa que solo las coordenadas a y b de un punto cambiaran después de una rotación
[Aguilera 04].
Para una rotación en nD, si se utilizan coordenadas homogéneas, Ra,b(θ) es una matriz
de dimensiones (n+1) × (n+1), y se puede verificar fácilmente que con n=2, la matriz R1,2
con n=3, las matrices R1,2, R2,3 y R3,1, corresponden a las rotaciones positivas alrededor de
Con todos los conceptos generalizados, se puede ver que una rotación puede ser
• Utilizando los ejes que describen el plano de rotación. Por ejemplo en 3D, se puede
• Utilizando los ejes que describen el eje (n-2)-dimensional de rotación. En este caso,
78
Sin embargo, para rotaciones superiores a 4D, puede resultar impráctico utilizar la
segunda notación, esto se puede observar en la Tabla 2.2, tomada y extendida de [Pérez-
Águila 01], por tal razón, de aquí en adelante se utiliza sólo la primera notación.
Tabla 3.1: Definición de ejes y planos principales de rotación para las rotaciones n-dimensionales.
La Figura 3.14, muestra la rotación R4,5(θ) de un hipercubo regular 5D, con los
valores de θ = 0°, 45°, 90° y 135°, donde se puede observar que todos los puntos del
hipercubo que caen en volumen del eje tridimensional de rotación formado por los ejes X1,
79
X2 X2
X5 X5
X4 X4
a) b)
X1 X1
X3 X3
X2 X2
X5 X5
X4 X4
c) X1 d) X1
X3 X3
Figura 3.14: Rotación R4,5(θ) de un hipercubo 5D: a) θ=0°, b) θ=45°, c) θ=90°, d) θ=135°.
que se cumple cuando el plano de rotación y el eje (n-2)-dimensional están formados por
los ejes coordenados del espacio nD, pero cuando este eje esta definido por puntos
rotación arbitrario hacia a alguno de los ejes principales del espacio, y de esta forma poder
80
3.6.1 Transformaciones Compuestas
transformaciones compuestas, que es útil para obtener el efecto combinado de una serie de
transformaciones geométricas.
una de las matrices de transformación. Dado que se está manejando una representación de
con el punto p.
p' = ( p ⋅ T (d ) ) ⋅ S ( s )
p' = ( p ⋅ T (d ) ) ⋅ Ra ,b (θ )
81
3.6.2 Rotación General 2D
p’=(x1’,x2’)
X2
r
p=(x1,x2)
r
θ
φ
f =(f1,f2)
X1
⎡ 1 0 0⎤ ⎡ cos θ sin θ 0⎤ ⎡ 1 0 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢ 0 1 0⎥⎥ ⋅ ⎢⎢− sin θ cos θ 0⎥⎥ ⋅ ⎢⎢ 0 1 0⎥⎥
⎢⎣− f 1 − f2 1⎥⎦ ⎢⎣ 0 0 1⎥⎦ ⎢⎣ f1 f2 1⎥⎦
82
3.6.3 Rotaciones Generales 3D
1. Trasladar el segmento ab de tal forma que quede sobre alguno de los ejes principales
rotaciones sobre los ejes principales. Este proceso se analiza más adelante.
2. Aplicar la rotación alrededor del eje principal a donde fue llevado el segmento ab , si
Llevar el segmento ab sobre alguno de los ejes principales, implica otra serie de 3
transformaciones para llevar un segmento ab sobre el eje X1 (se escoge este eje y no otro, a
en la Figura 3.16 b) se traslada este segmento, de tal manera que el punto a queda en
83
2. Después en la Figura 3.16 c) se lleva el segmento ab sobre el plano X1X2, mediante
una rotación por un ángulo α1 sobre el eje X1, esto se logra con la matriz de rotación
R3, 2 (α 1 ) .
3. Finalmente en la Figura 3.16 d) se lleva el segmento ab sobre el eje X1, mediante una
rotación por un ángulo α2 sobre el eje X3, esto se logra con la matriz de rotación
R2,1 (α 2 ) .
a) X2 b)
X2
T(-A)
b1(1)
b(0) b3(1)
α1 α1 b2(1)
b(1)
a(0) T(A)
a(1) X1
X1
Posición
original X3
X3 R3,2(-α1) R3,2(α1)
X2 X2
d) R2,1(α2) c)
b1(2)=b1(1) b(2)
X3 X3
Figura 3.16: Proceso en 3D para llevar un segmento arbitrario ab sobre el eje X1 y regresarlo.
84
⎡ 1 0 0 0 ⎤ ⎡1 0 0 0⎤ ⎡cos α 2 − sin α 2 0 0⎤
⎢ 0 1 0 ⎥ ⎢
0⎥ 0 cos α 1 − sin α 1 0⎥⎥ ⎢⎢ sin α 2 cos α 2 0 0⎥⎥
IDA = ⎢ ⋅⎢ ⋅
⎢ 0 0 1 ⎥
0 ⎢0 sin α 1 cos α 1 0⎥ ⎢ 0 0 1 0⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣− a1 − a2 − a3 1 ⎦ ⎣0 0 0 1⎦ ⎣ 0 0 0 1⎦
obtener esta matriz se tienen que hacer las transformaciones en un orden inverso al que se
sigue para la matriz IDA, de esta forma, la matriz REG está definida por la siguiente
Una forma más rápida de obtener la matriz REG, es simplemente obteniendo la matriz
inversa de la matriz IDA, esto es: REG=IDA-1. Considerando las siguientes propiedades de
T (d ) −1 = T (−d )
Ra ,b (θ ) −1 = Ra ,b (−θ ) = Rb ,a (θ )
Se tiene:
85
Entonces:
⎡ cos α 2 sin α 2 0 0 ⎤ ⎡1 0 0 0⎤ ⎡ 1 0 0 0⎤
⎢− sin α cos α 2 0 0⎥⎥ ⎢⎢0 cos α 1 sin α 1 0⎥⎥ ⎢⎢ 0 1 0 0⎥⎥
REG = ⎢ 2
⋅ ⋅
⎢ 0 0 1 0⎥ ⎢0 − sin α 1 cos α 1 0⎥ ⎢ 0 0 1 0⎥
⎢ ⎥ ⎢ ⎥ ⎢ ⎥
⎣ 0 0 0 1 ⎦ ⎣0 0 0 1⎦ ⎣a1 a2 a3 1⎦
Para obtener completamente los valores de las matrices IDA y REG, resta calcular los
Para obtener el valor del ángulo α1, observando el triángulo que se forma en la Figura
(1)
3.16 b), se tiene que tan(α 1 ) = b3
(1)
b2 , por lo tanto:
Para obtener el valor del ángulo α2, observando el triángulo que se forma en la Figura
2 2
α 2 = arctan2(b2 ( 2 ) b1 ( 2) ) , donde b1 ( 2 ) = b1 (1) = b1 ( 0 ) − a1 ( 0 ) y b2 ( 2 ) = b2 (1) + b3 (1)
transformaciones:
p' = p ⋅ M
86
3.6.3.1 Análisis de las Rotaciones Generales 3D
( ) ( )
a = a1( 0) , a 2( 0) , a3( 0 ) y b = b1( 0) , b2( 0 ) , b3( 0 ) son dos puntos 3D no coincidentes.
Se define a V ( 0 ) , como la matriz que representa los vértices originales del segmento,
⎡a ( 0) a 2( 0 ) a3( 0 ) 1⎤
V ( 0) = ⎢ 1( 0 ) ⎥
⎣b1 b2( 0 ) b3( 0) 1⎦
{ }
conjunto V ( 0 ) ,V (1) ,V ( 2 ) , K , donde V k = V k −1 ⋅ M k . Este conjunto es la serie de matrices
que contienen las coordenadas modificadas de los vértices después de cada transformación,
es decir:
⎡a ( k ) a 2( k ) a3( k ) 1⎤ ⎡a ( k ) ⎤
V ( k ) = ⎢ 1( k ) ⎥ o simplemente V (k )
= ⎢ (k ) ⎥
⎣b1 b2( k ) b3( k ) 1⎦ ⎣b ⎦
Entonces según lo analizado en la sección 3.6.3 , para llevar a cabo una rotación 3D
⎡ 1 0 0 0⎤
⎡a ⎢ 0⎥⎥
⎡a ⎤ (0) (0)
a (0)
a(0)
1⎤ ⎢ 0 1 0
V (1) = V ( 0 ) ⋅ T (−a ( 0 ) ) = ⎢ ( 0 ) ⎥ ⋅ T (−a ( 0 ) ) = ⎢ 1 2 31
⎥⋅
⎣b ⎦ ⎣b 1
(0)
b (0)
2 b(0)
3 1⎦ ⎢ 0 0 1 0⎥
⎢ (0) ⎥
⎣− a1 − a 2( 0 ) − a3( 0 ) 1⎦
⎡ 0 0 0 1⎤
= ⎢ (0)
⎣b1 − a1
( 0)
b ( 0)
2 − a 2( 0 ) b (0)
3 − a3
( 0)
1⎥⎦
87
Lo importante de observar en este paso, es que las coordenadas del punto a se van al
⎡1 0 0 0⎤
⎡a (1) ⎤ ⎢
1⎤ ⎢0 cos α 1 − sin α 1 0⎥⎥
⎡ 0 0 0
V ( 2 ) = ⎢ (1) ⎥ ⋅ R3, 2 (α 1 ) = ⎢ (1) ⋅
⎣b ⎦ ⎣b1 b2(1) b3(1) 1⎥⎦ ⎢0 sin α 1 cos α 1 0⎥
⎢ ⎥
⎣0 0 0 1⎦
⎡ 0 0 0 1⎤
= ⎢ (1)
⎣b1 b cos α 1 + b sin α 1
(1)
2
(1)
3 − b sin α 1 + b cos α 1
(1)
2
(1)
3 1⎥⎦
Teorema:
rotación necesario para llevar el segmento hacia el plano X1X2, de tal forma que la
coordenada b3( 2 ) se vaya a cero, está dado por α 1 = arctan2 b3(1) b2(1) . ( )
Demostración:
x 1
sin(arctan2( x)) = cos(arctan2( x)) = ,
1+ x2 1+ x2
( ( )) (1)
= b2(1) cos arctan2 b2(1) b2(1) + b3 sin arctan2 b3(1) b2(1) ( ( ))
⎛
⎜
=b ⎜(1) 1
⎞
⎟
+ b
⎛
(1) ⎜ b3(1) b2(1)
⎞ ⎛ (1)
⎟ ⎜ b2 + b3
=
(1) 2
( )b2(1)
⎞
⎟
⎟⎟ 3 ⎜⎜ ⎟⎟ ⎜⎜ ⎟⎟
( ) ( ) ( )
2
⎜ 1 + b (1) b (1) 2 2 (1) 2
⎝ 1 + b3 b2 ⎠ ⎝ 1 + b3 b2
(1) (1) (1)
⎝ 3 2 ⎠ ⎠
88
(b ) + (b )
(1) 2
2
(1) 2
3
b2(1)
=
(b ) + (b )
(1) 2
2
(1) 2
3
b2(1)
=
(b ) + (b )
(1) 2
2
(1) 2
3
(b ) + (b )
(1) 2
2
(1) 2
3
= (b ) + (b )
(1) 2
2
(1) 2
3
( ( ))
= −b2(1) sin arctan2 b3(1) b2(1) + b3(1) cos arctan2 b3(1) b2(1) ( ( ))
⎛ ⎞ ⎛ ⎞
⎜ b3(1) b2(1) ⎟ ⎜ 1 ⎟
= −b2(1) ⎜ + b
⎟⎟ 3 ⎜⎜ ⎟⎟
⎝ 3 (
⎜ 1 + b (1) b (1)
2 )
2
⎠ ⎝ 1 + b3 b2
(1) (1)
( ) 2
⎠
⎛ ⎞
⎜ − b3 + b3
(1) (1)
⎟
=⎜ ⎟⎟
⎜ 1 + (b (1) b (1) )2
⎝ 3 2 ⎠
=0
Por lo tanto
⎡ 0 0 0 1⎤
V ( 2 ) = ⎢ (1)
⎣b1 (b ) ( )
(1) 2
2 + b3(1)
2
0 1⎥⎦
⎡cos α 2 − sin α 2 0 0⎤
⎡a ⎤ ( 2)
⎡ 0 0 0 1⎤ ⎢⎢ sin α 2 cos α 2 0 0⎥⎥
V (3) = ⎢ ( 2 ) ⎥ ⋅ R2,1 (α 2 ) = ⎢ ( 2 ) ⋅
⎣b ⎦ ⎣b1 b2( 2 ) 0 1⎥⎦ ⎢ 0 0 1 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
⎡ 0 0 0 1⎤
= ⎢ ( 2)
⎣b1 cos α 2 + b2 sin α 2
( 2)
−b ( 2)
1 sin α 2 + b2( 2 ) cos α 2 0 1⎥⎦
89
Teorema:
rotación necesario para llevar el segmento hacia el eje X1, de tal forma que la coordenada
(
b2( 3) se vaya a cero, está dado por α 2 = arctan2 b2( 2 ) b1( 2 ) . )
Demostración:
b1( 3) = (b ) + (b )
( 2) 2
1
( 2) 2
2
b2( 3) = 0
Por lo tanto
⎡ 0 0 0 1⎤
V ( 3) = ⎢
⎣ (b1 ) + (b2 ) + (b3 ) 0 0 1⎥⎦
(1) 2 (1) 2 (1) 2
( (
M k = R j , j −1 arctan2 b (j k −1) , b (j k−1−1) ))
Ecuación 3.27: Matriz de rotación para llevar la j-ésima coordenada a cero [Aguilera 04].
Hasta este punto, se tiene al segmento ab sobre el eje X1, es decir que la matriz
IDA = M 1 ⋅ M 2 ⋅ M 3 , por lo tanto el siguiente paso es aplicar la rotación sobre el eje X1 con
regresar el eje de rotación a su posición original, aplicando las matrices M5, M6 y M7 que
son las matrices inversas de M3, M2 y M1 respectivamente, entonces, se tiene que la matriz
−1 −1 −1
REG está definida como: REG = M 5 ⋅ M 6 ⋅ M 7 = M 3 ⋅ M 2 ⋅ M 1 = IDA −1 .
90
De esta forma, para llevar a cabo la rotación general 3D de un punto p, dado un
3.26.
alrededor de un plano, definido por el plano de soporte de un triángulo ∆(abc) (un simplex
( ) ( ) ( )
2D), donde a = a1( 0) , a 2( 0 ) , a3( 0 ) , a 4( 0) , b = b1( 0) , b2( 0 ) , b3( 0) , b4( 0 ) , y c = c1( 0 ) , c 2( 0) , c3( 0 ) , c 4( 0 ) son
caso 3D.
1. Trasladar el triángulo ∆(abc) de tal forma que quede completamente sobre el plano
2. Aplicar la rotación alrededor del plano principal X1X2, mediante la matriz de rotación
R3, 4 (θ ) .
Llevar el triángulo ∆(abc) al plano X1X2 y que el eje ab quede alineado sobre X1,
{ }
Se define el conjunto V ( 0 ) ,V (1) ,V ( 2 ) , K como la serie de matrices que contienen las
⎡a1( 0) a 2( 0 ) a3( 0 ) a 4( 0) 1⎤
⎢ ⎥
V (0) = ⎢b1( 0 ) b2( 0 ) b3( 0) b4( 0 ) 1⎥
⎢ c1( 0) c 2( 0 ) c3( 0) c 4( 0) 1⎥⎦
⎣
91
1. En la Figura 3.17 a) se tiene el triángulo ∆(abc) en su posición original en algún lugar
del espacio 4D. En la Figura 3.17 b) se traslada este triángulo, de tal manera que el
X1X2X3. Aplicando la Ecuación 3.27, la cual realiza una rotación de la j-ésima hacia la
(j-1)-ésima dimensión, haciendo que la j-ésima coordenada se haga cero, se tiene que
(
M 2 = R4,3 (α 1 ) = R4,3 arctan2 b4(1) b3(1) ( )) y por lo tanto:
⎡ 0 0 0 0 1⎤
V ( 2)
=V (1)
⋅ R4,3 (α 1 ) = ⎢⎢b1( 2 ) b ( 2)
2 b ( 2)
3 0 1⎥⎥
⎢⎣c1( 2 ) c ( 2)
2 c ( 2)
3 c 4( 2 ) 1⎥⎦
la Ecuación 3.27, se tiene que M 3 = R3, 2 (α 2 ) = R3, 2 (arctan2(b3( 2 ) b2( 2) )) y por lo tanto:
⎡ 0 0 0 0 1⎤
V ( 3)
=V ( 2)
⋅ R3, 2 (α 2 ) = ⎢⎢b1( 3) b ( 3)
2 0 0 1⎥⎥
⎢⎣c1( 3) c ( 3)
2 c ( 3)
3 c 4( 3) 1⎥⎦
⎡ 0 0 0 0 1⎤
V ( 4)
=V ( 3)
⋅ R2,1 (α 3 ) = ⎢⎢b1( 4) 0 0 0 1⎥⎥
⎢⎣c1( 4) c ( 4)
2 c ( 4)
3 c 4( 4 ) 1⎥⎦
92
c(0)
X2 X2
b(0) T(-A)
a) b)
c(1)
X4 α1
b3(1)
a(0) T(A) b(1) b4(1)
X1 X1
a(1)
c(3)
X3 X3
X2 d) R3,2(α2) X2
R4,3(-α1) R4,3(α1)
(3)
b1
b(3) c)
X4 X4
(3)
R3,2(-α2) b3(2)
b2 b2(2)
b(2)
α2
c(2)
α3 X1 X1
a(3) a(2)
R2,1(α3) R2,1(-α3)
X3 X3
X2 X2
e)
R4,3(α4) f)
c(4) α4
c3(4) c3(5)
X4 X4
(4)
c4 c2(5)
c(5)
R4,3(-α4) α5
X1 X1
a(4) b(4) a(5) b(5)
R3,2(-α5) R3,2(α5)
X3 X3
X2
c(6)
g)
X4
X1
a(6) b(6)
X3
Figura 3.17: Proceso en 4D para llevar un triángulo ∆(abc) arbitrario sobre el plano X1X2 y regresarlo.
93
Hasta este momento se puede observar que el segmento modificado a ( 4) b ( 4) se
encuentra sobre el eje X1, sin embargo el punto c ( 4 ) , que también sufrió
mover este punto de tal forma que el triángulo se encuentre completamente sobre el
plano X1X2, para ello, se tiene que trabajar con el segmento ac y aplicar rotaciones
que no involucren al eje X1, para no modificar la posición del segmento ab , ya que
modifica las coordenadas dentro del plano de rotación formado por los ejes Xa y Xb, y
dejan fijo todos los puntos que no pertenecen a este. Entonces se prosigue de la
siguiente forma:
Ecuación 3.27, se tiene que M 5 = R4,3 (α 4 ) = R4,3 (arctan2(c 4( 4) c3( 4 ) )) y por lo tanto:
⎡ 0 0 0 0 1⎤
V (5) = V ( 4 ) ⋅ R4,3 (α 4 ) = ⎢⎢b1( 5) 0 0 0 1⎥⎥
⎢⎣c1(5) c ( 5)
2 c3( 5) 0 1⎥⎦
⎡ 0 0 0 0 1⎤
V (6) = V ( 5) ⋅ R3, 2 (α 5 ) = ⎢⎢b1( 6 ) 0 0 0 1⎥⎥
⎢⎣c1( 6) c 2( 6) 0 0 1⎥⎦
siguiente paso es aplicar la rotación sobre este plano con el ángulo θ deseado, por lo tanto
94
M 7 = R3, 4 (θ ) . El proceso final es regresar el triángulo a su posición original, aplicando las
6
IDA = ∏ M k
k =1
13
REG = ∏ M k = IDA −1
k =8
p' = p ⋅ M
de rotación Rn −1,n (θ ) .
95
Llevar el hiperplano (n-2)-dimensional de rotación completamente sobre el hiperplano
{ }
Se define el conjunto V ( 0 ) , V (1) ,V ( 2 ) ,K como la serie de matrices que contienen los
El primer paso en cualquier dimensión es trasladar las coordenadas del punto V1( 0 ) al
(
origen, entonces se tiene que M 1 = T − V1( 0) y por lo tanto: )
⎡ 0 0 0 L 1⎤
⎢ v (1) v (1)
v (1)
L v (1)
1⎥⎥
= V ⋅ T (−V1 ) = ⎢
(0) 2 ,1 2, 2 2,3 2,n
V (1) ( 0)
⎢ M M M O M M⎥
⎢ (1) (1) (1) (1) ⎥
⎣v n −1,1 v n −1, 2 v n −1, 3 L v n −1, n 1⎦
La idea es llevar el segmento V1V2 sobre el eje principal X1 mediante rotaciones principales
similares a los casos 3D y 4D; después llevar el segmento V1V3 sobre el plano principal
posición de los vértices V1 y V2 ya posicionados sobre este eje; enseguida llevar el segmento
V1V4 dentro del volumen principal X1X2X3, utilizando rotaciones principales que no
involucren las coordenadas que forman al plano X1X2 para no alterar la posición de los
vértices V1, V2 y V3 ya posicionados sobre este plano; y así sucesivamente hasta llevar el
96
segmento V1Vn dentro del hiperplano principal X1X2…Xn-2, utilizando rotaciones principales
que no involucren a los ejes que forman al hiperplano X1X1…Xn-3 para no alterar la posición
(0)
V a una V (k ) de la siguiente manera:
origen, el vértice V2( k ) sobre el eje X1, el vértice V3( k ) sobre el plano X1X2, y así
Procediendo de forma similar a los casos 3D y 4D, lo que se necesita para lograr esa
matriz es hacer cero una columna c y renglón r dado, por lo que se hace uso de la Ecuación
( (
M k = Rc ,c −1 arctan2 Vr(,kc −1) , Vr(,kc −−11) ))
De esta forma, se tiene que en el primer renglón se necesita hacer cero n coordenadas,
renglón se necesitan hacer cero solamente dos coordenadas, lo que indica claramente que el
número de rotaciones que hay que llevar a cabo será equivalente a la suma de los (n-1)
primeros enteros positivos, (n-1) porque los n ceros del primer renglón se obtienen de la
97
( )
translación de T − V1( 0 ) y se resta 1 porque se comienza desde hacer cero 2 coordenadas,
por lo tanto:
(n − 1)(n − 1 + 1) n(n − 1)
−1 = −1
2 2
las rotaciones comienzan en k=2, se tiene que las matrices generales IDA y REG están
dadas por:
n ( n −1)
2
IDA = M 1 ⋅ ∏M
k =2
k
REG = IDA −1
p' = p ⋅ M
98
(0)
Procedure ComputeM( V ,θ,n)
M1:=T(-V1(0))
V(1):=V(0)⋅M1
M:=M1
k:=1
for r:=2 to n-1 do
for c:=n downto r do
k:=k+1;
Mk=Rc,c-1(arctan2(Vr,c(k-1),Vr,c-1(k-1)))
V(k):=V(k-1)⋅Mk
M:=M⋅Mk
endfor
endfor
M:=M⋅Rn,n-1(θ)
M:=M⋅M-1
endprocedure
3.7 Resumen
En este capítulo se analizaron algunas transformaciones geométricas n-dimensionales,
donde se pudo ver que las transformaciones de escalamiento, y translación son fácilmente
Dentro de las rotaciones, se analizaron en primer lugar las rotaciones principales, que
se llevan a cabo alrededor de los ejes principales que forman el espacio nD, presentando la
matriz general para tales rotaciones. Enseguida se presentó el método para poder llevar a
definiendo de esta forma, las matrices generales IDA y REG, para finalmente obtener la
99