Rotaciones Multidimensionales
Rotaciones Multidimensionales
Rotaciones Multidimensionales
1.1 La Realidad
La realidad conocida por los seres vivos consiste de tres dimensiones (3D), en un
espacio donde hay sólo tres direcciones perpendiculares entre si, estas direcciones son
comúnmente X, Y y Z.
Se puede pensar que en este espacio tridimensional, no puede existir una dimensión
más, físicamente podría ser cierto, sin embargo, matemáticamente hablando, el número 3
dimensiones menores, por ejemplo, el espacio 1D que consiste de una línea recta que se
1
1.2 Más allá de la Tercera Dimensión
"La línea tiene magnitud en una dirección, el plano en dos direcciones, y el sólido en tres
direcciones, más allá de éstas no hay otra magnitud porque las tres son todas”
– Aristóteles, 150 a. C.
1.2.1 Dimensiones
tratan como dimensiones espaciales, sin embargo, el sentido de dimensión puede ser
interpretado de muchas formas dependiendo del área. Por ejemplo, un arquitecto, calcula la
cantidad de concreto, cableado, plomería, etc., necesario para hacer una construcción; o en
un laboratorio de graficación por computadora, donde alumno y profesor analizan una serie
de ecuaciones para graficar ecuaciones complejas. Los conceptos que manejan estas
personas, representan varias dimensiones en su campo, y así como ellos, muchos otros
medias que especifican un lugar, como la latitud y longitud, o que se específica una forma,
como la altura o el ancho. Incluso se utiliza el tiempo y espacio juntos como dimensiones,
cuando se hace una cita con alguien a cierta hora en un cierto lugar.
La cuarta dimensión ha sido una especulación física desde el siglo XIX, la idea de una
dimensión más allá de la tercera culminó con las teorías de la relatividad general de Albert
Einstein, donde juntos, el espacio y tiempo, representan cuatro dimensiones, donde todos
2
Sin embargo el tiempo no es necesariamente la cuarta dimensión, sino una buena
aplicación, ya que este sistema está formado por tres dimensiones espaciales y una
temporal.
En [Kaku 94] se menciona que los años entre 1890 y 1910 está considerada como la
era de oro de la cuarta dimensión, donde el arte no estuvo exenta, por ejemplo: “El retrato
de Dora Maar” de Picasso, muestra un claro rechazo a la perspectiva, con caras de mujer,
vistas simultáneamente desde varios ángulos, en lugar de un solo punto de vista, la pintura
muestras múltiples perspectivas, como si fuera pintada por alguien de la cuarta dimensión,
una representación borrosa de una mujer, con un número infinito de sus imágenes
sobrepuestas en el tiempo de cuando baja unas escaleras, esto es como si una persona de la
cuarta dimensión podría ver a las personas, pudiendo ver todas las secuencias del tiempo a
1
Imagen tomada de http://www.abcgallery.com/
3
Figura 1.3 “Desnudo descendiendo unas escaleras” de Marcel Duchamp.2
Por lo tanto, en el resto de este documento, cuando se hable de las dimensiones 3D, 4D, y
coordenadas. Tres líneas rectas pueden ser colocadas perpendicularmente una con las otras,
pero no puede agregarse una cuarta línea que sea perpendicular a las otras tres. Esto es
debido a que el espacio como se conoce, está sujeto a una limitación, y quizá para tener una
2
Imagen tomada de http://www.abcgallery.com/
4
espacio 4D, en el que un ser 3D (un cuadrado) trata de explicar por medio de analogías a
Aristóteles declaró categóricamente 150 años a.C. que la cuarta dimensión espacial
era imposible, tiempo después, Ptolomeo construyó una “prueba” para demostrar que la
cuarta dimensión era imposible, decía que si se dibujan tres líneas mutuamente
perpendiculares, y luego se intenta dibujar una cuarta línea que fuera perpendicular a las
otras tres líneas, se vería que es imposible, e incluso dijo que tres líneas mutuamente
comprender. Pero lo que Ptolomeo realmente hizo fue demostrar que es imposible
visualizar la cuarta dimensión con nuestros cerebros tridimensionales [Kaku 94]. Por tanto,
es necesario hacer una construcción mental n-dimensional para entender lo que sucede
En el espacio 4D, entonces, es posible tener cuatro líneas perpendiculares entre si, en
De esta forma, la inclusión de una cuarta dimensión, se debe entender como un eje
adicional perpendicular a cada una de las otros tres ejes que forman el espacio 3D, así la
inclusión de la quinta dimensión estará representada como otro eje perpendicular a los
cuatro del espacio 4D, y así sucesivamente. La Figura 1.4 representa los cuatro ejes en 4D,
aquí se crea un nuevo eje W, adicional a los ya conocidos en 3D. Aquí, se debe entender
que cada par de ejes forman entre sí, un ángulo de 90º grados.
5
Y
W
X
para 4D se incluyó un cuarto eje nombrado con la letra W. Sin embargo, está forma de
dimensiones, por tanto a en el resto del documento cuando se nombre un eje del espacio
nD, se denotará como Xi donde 1≤i≤n, de esta forma, en el espacio nD, se tienen los ejes X1,
X2,…, Xn, entonces, cuando se hable de los ejes X1, X2, X3, se deberá entender que es la
matemáticos de diferentes partes del mundo que abrieron sus mentes hacia nuevos tipos de
geometría.
satisfacen todos excepto un axioma de la geometría plana (tema que no se trata en esta
investigación). Otra visión importante fue que la geometría plana y sólida era sólo el
6
Estos desarrollos cambiaron el punto de vista de la geometría, la cual estaba estancada
podría significar. Tiempo después, Edwin Abbott, Carl Friedrich Gauss y Hermann von
de mayor dimensionalidad. El hipercubo 4D por ejemplo, se deriva del cubo (3D), que a su
vez se deriva del cuadrado (2D), derivado de un segmento de recta (1D), que proviene del
punto (0D). Esta como otras analogías se analizan con detalle en el Capítulo 2, donde se
Una pregunta que viene siempre a la mente cuando se escucha por primera la palabra
hipercubo 4D es, ¿Realmente existe esta figura?, la respuesta es si, en geometría plana, ya
que los objetos no necesariamente tienen que ser reales, dado que se pueden representar
Una figura geométrica que pertenece a otra dimensión, no puede ser vista por el ojo
humano a simple vista, debido a la limitación de que solo se puede ver en tres dimensiones,
por tal razón, los matemáticos han creados métodos para visualizar objetos en dimensiones
superiores y el instrumento ideal para ello, son las gráficas por computadora.
7
La graficación por computadora es una técnica que permite ver hacia una dirección
anteriormente inaccesible por el ojo humano, así como lo fue por ejemplo, el telescopio de
Galileo Galilei, con el que se pueden ver objetos estelares que están a billones de años luz;
descubrimiento de los Rayos X por Wilhelm Röntgen, que revelan la forma del esqueleto
dentro del cuerpo humano. Todas estas asombrosas navegaciones en lo que anteriormente
era inimaginable, son evidencias de la habilidad del ser humano por ir más allá de sus
tener una experiencia visual directa con objetos que solo existen en otras dimensiones, y en
el momento en que se observan estos objetos nunca antes conocidos moviéndose en una
rayos X [Banchoff 96]. Hoy en día, se vive una era en que se está aprendiendo a interpretar
computadora o un proyector).
8
• Construir figuras geométricas análogas al cubo, tetraedro, octaedro, por mencionar
dimensionalidad.
graficándolas, se puede graficar valores de funciones reales de una variable en una gráfica
2D, de dos variables en una gráfica 3D, pero para el caso donde se tienen más variables se
necesita contar con dimensiones adicionales, y para entender dichas gráficas, se tiene que
Santos 02] que muestra una técnica para la visualización de funciones escalares de muchas
variables, a las cuales les llama funciones multidimensionales. Y el de [Banchoff 95] que
habla sobre la graficación de funciones complejas, donde se puede ver, que para graficar
este tipo de funciones, es necesario contar con dos dimensiones para el rango y dos para el
9
En cuanto a aplicación de rotaciones en dimensiones superiores, el trabajo de [Duffin
94], presenta una interfaz para llevar a cabo rotaciones alrededor del origen, y lo aplican a
la visualización de imágenes con sus gamas de colores como un conjunto de puntos en 5D,
donde cada píxel de una imagen a color está dado por cinco coordenadas espaciales: x, y, z,
las rotaciones generales, aportando las ecuaciones que permitan rotar un objeto en cualquier
espacio nD.
Para poder rotar un cuerpo en 2D, es necesario contar con 1 punto, que será el eje
coincidentes que determinan un segmento, cuya línea de soporte define un eje lineal
puntos no colineales que determinan un triángulo, cuyo plano de soporte será el eje
Existen las rotaciones principales, que para el caso específico de 3D, se realizan
alrededor los ejes principales que forman el espacio, sin embargo, se pueden proporcionar 2
10
Lo que se desea encontrar en la presente investigación, son las ecuaciones que
permitan hacer rotar un objeto n-dimensional alrededor tanto del origen como de cualquier
Si se desea visualizar fenómenos en nD, se debe ser capaz de llevar esta información
hasta 3D, que es el espacio que se puede comprender más fácilmente, y si después se desea
dimensión n hacia puntos de otro sistema de dimensión menor a n [Foley 92]. Las
en dos clases: paralelas y perspectivas. La principal diferencia entre ellas es que las
forma exacta y dimensiones del objeto, cosa contraria en la proyección paralela [Anand
93].
necesario llevar a cabo un estudio de las proyecciones para poder mostrar los resultados en
el monitor de la computadora.
11
también rotaciones alrededor de un hiperplano arbitrario. Pero hace falta, profundizar en
en lugar del eje (n-2)-dimensional de rotación, en este caso, es necesario atacar el problema
con un enfoque distinto, el cual permita obtener los mismos resultados, pero
las proyecciones tanto paralelas como perspectivas, que permitan llevar los fenómenos que
el monitor de la computadora.
El modelo de alambres de los politopos pueden ser trazados a partir de sus vértices,
los cuales son posible generarlos según la información en [Pérez-Águila 01], sin embargo,
el orden en que los vértices deben ser trazados para formar cada una de las aristas es un
proceso que no se tiene automatizado aún, por ejemplo, para desplegar un hipercubo 4D, se
necesita trazar sus 32 aristas, las cuales corresponden a una línea recta que une a un par de
vértices, la pregunta es ¿en qué orden?. Este punto también es necesario resolverlo, ya que
el hiperespacio.
12
monitor de la computadora. Para ello, se propone el desarrollo de un visualizador de
forma poder observar los fenómenos en el hiperespacio desde diferentes ángulos de visión.
1.7 Objetivos
las rotaciones principales que se deben llevar a cabo para simular las rotaciones de
la computadora.
trazo de aristas.
13
• Se generalizan las matrices de proyección paralela y perspectiva nD→(n-1)D,
14
• Capítulo 3: Transformaciones Geométricas. En este capítulo es un repaso de
capítulo se analiza el proceso para obtener una ecuación para las rotaciones
15
• Capítulo 7: Conclusiones y Trabajo Futuro. En este capítulo final, se presentan un
investigación futuras.
1.9 Resumen
En este capítulo se presentó una introducción al tema de las dimensiones, y la
análisis de las propiedades geométricas de los politopos regulares nD, para poder generar
16
Capítulo 2: Politopos
Un politopo es la generalización del concepto Polígono (2D), o poliedro (3D) a
se sitúa en uno de los hiperplanos, es llamada celda, y todas las celdas del politopo forman
la “frontera” del mismo. Si los puntos medios de todas las aristas que salen de un vértice
dimensión (n-1), llamado figura vértice del politopo original en v [Hausmann 94].
tiempo, en dos dimensiones estos son los polígonos regulares (con todos sus lados y
ángulos iguales), en tres dimensiones estos son los poliedros regulares, también conocidos
en cuatro dimensiones existen seis politopos regulares (simplex 4D, hipercubo 4D, 16-
politopo se dice que es regular si todas sus celdas son regulares y hay una figura vértice
regular en cada vértice [Coxeter 63]. En un politopo regular todas las celdas son iguales
entre sí, similarmente, las figuras vértice de todos los vértices del politopo son iguales.
17
2.1.1 Ángulos
En 2D, el ángulo (rectilíneo) es la porción del plano limitada por dos rectas con
En la geometría 3D, se dice que el ángulo entre dos planos es llamado ángulo
diédrico. Si se toman dos planos intersectados a lo largo de una recta en común, llamada
arista, se puede ver que los planos forman un ángulo, este ángulo se le conoce como ángulo
diédrico, y este se mide por su ángulo rectilíneo correspondiente, que es el ángulo formado
por las rectas sobre los planos y que son perpendiculares a la arista.
arista
ángulo común
diédrico
18
2.1.1.3 Ángulo Entre Dos Hiperplanos
dimensión, diciendo que: Un ángulo diédrico es el ángulo entre dos hiperplanos (n-1)D que
trazan dos rayos perpendiculares al hiperplano (n-2)D que caiga en cada uno de los dos
hiperplanos (n-1)D. El ángulo diédrico entre los hiperplanos (n-1)D es el ángulo entre estos
dos rayos.
A1 , A2 ,K, An , y por los segmentos A1 A2 , A2 A3 , K , An A1 que los unen (Figura 2.3), los
puntos se llaman vértices del polígono, y los segmentos lados o aristas del mismo. Un
A2 A2
A3 A3
q A5
p
A1 p q
A1
A5 A4 A4
a) b)
Los polígonos tienen un ángulo rectilíneo en cada arista, que es el ángulo interior que
19
Un polígono regular es un polígono convexo con todos sus lados y ángulos interiores
iguales. Algunos ejemplos de polígonos regulares son los siguientes (Figura 2.4):
• Triángulo equilátero, un triángulo con todos sus lados iguales y todos sus ángulos
• Cuadrado, un cuadrilátero con todos sus lados iguales y ángulos interiores iguales a
90°.
iguales a 108°.
• Hexágono regular, un polígono de seis lados iguales y seis ángulos interiores iguales a
120°.
• Octágono regular, un polígono de ocho lados iguales y ocho ángulos interiores iguales
a 135°.
a) b) c) d) e)
Figura 2.4 Algunos polígonos regulares. a) Triángulo rectángulo, b) Cuadrado, c) Pentágono regular,
d) Hexágono regular, e) Octágono regular.
Los politopos regulares 3D (poliedros) están limitados en su frontera por caras, las
cuales son polígonos regulares (ver Sección 2.1.2 ). Se pueden denotar mediante la pareja
{p, q}, donde p es el número de lados que tienen los polígonos de las caras del poliedro, y q
20
Los poliedros, tienen un ángulo diédrico (también llamado ángulo de las caras) en
cada arista, que es el ángulo interno que se forma donde dos caras adyacentes coinciden.
Se sabe que sólo los siguientes cinco poliedros regulares (también conocidos cómo
• Tetraedro {3, 3}, cuya frontera está formada por cuatro triángulos equiláteros, con
tres incidentes localizados en cada vértice. Todos sus ángulos diédricos miden 70.53°.
60°
60°
60°
70.53°
• Cubo {4, 3} cuya frontera está formada por seis cuadrados, con tres localizados en
90° 90°
90°
90°
• Octaedro {3, 4} cuya frontera está formada por ocho triángulos equiláteros, con
cuatro localizados en cada vértice. Todos sus ángulos diédricos miden 109.45°.
21
60°
60° 60°
109.45° 60°
• Dodecaedro {5, 3} cuya frontera está formada por doce pentágonos equiláteros, con
tres localizados en cada vértice. Todos sus ángulos diédricos miden 116.57°.
108°
116.57° 108°
108°
• Icosaedro {3, 5} cuya frontera está formada por veinte triángulos equiláteros, con
cinco localizados en cada vértice. Todos sus ángulos diédricos miden 138.2°.
60° 60°
138.2° 60°
22
No se puede tener otros poliedros debido a las siguientes restricciones:
abertura en alguna parte entre las caras adyacentes que están alrededor de un vértice,
palabras, el ángulo cubierto por las caras que se localizan en un vértice debe ser
menor a 360°.
poner tres, cuatro o cinco triángulos equiláteros, o tres cuadrados, o tres pentágonos
tres debido al tamaño de sus respectivos ángulos internos (Ver sección 2.1.2 ). Esto lleva
2. El cubo (Figura 2.6) tiene alrededor de cada vértice 3 cuadrados, entonces se cumple
23
2.1.4 Politopos Regulares 4D
Sean {p, q, r} que denotan a un politopo 4D regular, donde cada celda {p, q} de su
frontera es un sólido platónico, y hay r celdas adyacentes a cada arista. Al igual que en 3D,
se pueden “llevar” las celdas de un politopo regular a tres dimensiones y se puede apreciar
2. Si se colocan todas las celdas que se localizan en una arista alrededor de esa arista,
entonces debe haber una abertura en alguna parte entre las celdas, de otra forma el
diédrico cubierto por las celdas que se localizan en una arista debe ser menor a 360°).
regulares (ver Sección 2.1.3 ) excluyen todos, excepto los siguientes seis casos: Se puede
poner tres, cuatro o seis tetraedros regulares alrededor de una arista, tres cubos, tres
octaedros o tres dodecaedros [Coxeter 63], estas seis posibilidades llevan a los politopos
Los politopos 4D tienen un ángulo diédrico en cada arista, que es el ángulo interno
que se forma donde dos sólidos adyacentes coinciden. Cada ángulo diédrico en un politopo
• Simplex 4D {3, 3, 3} formado por cinco tetraedros, conteniendo tres por arista,
24
Figura 2.10: Simplex 4D.
• Hipercubo {4, 3, 3} formado de seis cubos, conteniendo tres por arista, entonces se
• 16-celdas {3, 3, 4}, también conocido como politopo cruz, está formado por dieciséis
• 24-celdas {3, 4, 3} formado por 24 octaedros, conteniendo tres por arista, entonces se
25
Figura 2.13: 24-celdas.
• 120-celdas {5, 3, 3} formado por 120 dodecaedros, conteniendo tres por arista,
• 600-celdas {3, 3, 5} formado por 600 tetraedros, conteniendo cinco por arista,
26
Figura 2.15: 600 celdas.
Los politopos nD tienen un ángulo diédrico en cada arista, que es el ángulo interno
que se forma donde dos celdas adyacentes coinciden, esté ángulo es el ángulo diédrico
entre los hiperplanos (n-1)D que contienen dichas celdas. Cada ángulo diédrico en un
Ya se sabe lo que son dimensiones, y cómo pueden ser utilizadas, pero lo que puede
representar un politopo nD podría ser algo no tan sencillo de entender en un principio. Por
ejemplo, es fácil para muchos entender lo que es un cubo, pero tal vez no lo sea la analogía
de un cubo en 4D. A continuación se analizará la forma en que se puede crear un cubo (3D)
a partir del cuadrado (2D), el cual se deriva análogamente de un segmento de recta (1D),
27
2.2 Analogías Dimensionales para la Creación de Politopos
Una forma útil para explorar y entender 4D, y en general dimensiones superiores, es
la analogía dimensional que existe de los politopos. Con la analogía dimensional se puede
mismo principio para relacionar está dimensión a una más grande (n+1).
2.2.1 Hipercubo
Se comienza entonces por el espacio 0D, donde el único objeto cero-dimensional que
existe en este espacio es el punto (Figura 2.16), el cual no tiene largo, ancho o altura;
se arrastra este punto a una distancia finita del anterior, el camino formado por la extrusión
es un segmento de recta (Figura 2.17). Así se crea la primera dimensión, representada por
X1.
0 1 X1 0 1 X1
Figura 2.17: Extrusión ortogonal del punto para formar una recta.
28
Si la extrusión es partiendo del origen hacia una distancia de una unidad, se pueden
definir los vértices de una línea recta unidimensional (1D) como muestra la Tabla 2.1. Y las
X1 Representación Representación
binaria decimal
0 0 0
1 1 1
a donde se encuentra el segmento de recta, y desplazándola sobre este eje a una distancia
igual a su longitud, el camino descrito por la extrusión genera un cuadrado 2D, el cual tiene
dimensión.
X2 X2
01 11
X1 X1
00 10
extienden una unidad hacia el sentido positivo de los ejes, se pueden definir los vértices del
cuadrado como muestra la Tabla 2.2. Y las coordenadas de los vértices se pueden
29
X1 X2 Representación Representación
binaria decimal
0 0 00 0
0 1 01 1
1 0 10 2
1 1 11 3
Para obtener el cubo a partir del cuadrado, se desplaza el cuadrado hacia un eje
perpendicular a su plano de soporte, a una distancia igual a la medida de uno de sus lados.
El camino formado por la extrusión produce ahora un cubo 3D, el cual tiene 8 vértices, 12
aristas, y 6 caras (Figura 2.19). El nuevo eje representado por X3 es la tercera dimensión.
X2 X2
010 110
011 111
X1 000 100 X1
001 101
X3 X3
Observación 2.1:
Dado que este documento está siendo visualizado en un plano 2D (ya sea en papel o
en una pantalla), la representación ortogonal del tercer eje en la Figura 2.19 es una
proyección, sin embargo, deberá ser interpretada como una línea perpendicular a los otros
dos. Además, es obvio el echo de que éste nuevo eje no se puede poner perpendicularmente
a los otros dos en un plano, y esto no implica que el cubo o la tercera dimensión no
exista.
30
De la misma forma que el cuadrado, si uno de los vértices del cubo se posiciona en el
origen y los vértices se extienden una unidad hacia el sentido positivo de los ejes, se puede
definir los vértices del cubo como muestra la Tabla 2.3. Y las coordenadas de los vértices
X1 X2 X3 Representación Representación
binaria decimal
0 0 0 000 0
0 0 1 001 1
0 1 0 010 2
0 1 1 011 3
1 0 0 100 4
1 0 1 101 5
1 1 0 110 6
1 1 1 111 7
igual a la medida de uno de sus lados. El camino formado por la extrusión produce un
Observación 2.2:
Similar al caso anterior, dado que este documento está siendo visualizado en un
plano 2D, la representación ortogonal del cuarto eje en la Figura 2.20 es una proyección
de 4D a 2D, sin embargo, deberá ser interpretada como una línea perpendicular a las
otras tres que forman el espacio 3D. Entonces el hecho de que un cuarto eje no se pueda
31
X2 X2
0101 1101
0100 1100
X4
0111 1111
X4
0110 1110
0001 1001
X1
0000 1000 X1
0011 1011
0010 1010
X3 X3
vértices se extienden una unidad hacia el sentido positivo de los ejes, se pueden definir los
vértices del hipercubo 4D como muestra la Tabla 2.4. Y las coordenadas de los vértices se
X1 X2 X3 X4 Representación Representación
binaria hexadecimal
0 0 0 0 0000 0
0 0 0 1 0001 1
0 0 1 0 0010 2
0 0 1 1 0011 3
0 1 0 0 0100 4
0 1 0 1 0101 5
0 1 1 0 0110 6
0 1 1 1 0111 7
1 0 0 0 1000 8
1 0 0 1 1001 9
1 0 1 0 1010 A
1 0 1 1 1011 B
1 1 0 0 1100 C
1 1 0 1 1101 D
1 1 1 0 1110 E
1 1 1 1 1111 F
32
Se observa que la Tabla 2.1 con los vértices del hipercubo 1D, tiene la representación
de todos los números enteros positivos de 1 cifra binaria. La Tabla 2.2 con los vértices del
hipercubo 2D, tiene la representación de todos los números de 2 cifras binarias. La Tabla
2.3 con los vértices del hipercubo 3D, tiene la representación de todos los números de 3
cifras binarias. Y la Tabla 2.4 con los vértices del hipercubo 4D, tiene la representación de
todos los números de 4 cifras binarias. De esta forma, se pueden definir los vértices de un
enteros positivos formados por n cifras binarias, es decir los números del 0 al 2n-1 (ver
Tabla 2.5). Y las coordenadas de los vértices se pueden representar con (n) bits.
2.2.2 Simplex
simplex. Se comienza por el espacio 0D, donde al igual que en el caso del hipercubo 0D, el
Después se crea un eje X1 y se coloca un nuevo punto a una distancia finita del
anterior, la unión de este punto con el origen forma un segmento de recta 1D. (Figura 2.22).
33
0 1 X1 0 1 X1
pueden definir los vértices del simplex 1D como muestra la Tabla 2.6. Y las coordenadas
X1 Representación Representación
binaria decimal
0 0 0
1 1 1
Esta definición de vértices coincide con el caso del hipercubo 1D, pero aquí en la
recta, este nuevo punto se une a los vértices del simplex 1D, esto genera un triángulo 2D, el
cuál tiene 3 vértices y 3 aristas. (Figura 2.23). Aunque la siguiente figura para considerarse
regular debería ser un triángulo equilátero, ha sido modificada para facilitar la generación
de los vértices y la evolución del politopo simplex a otras dimensiones. Por tanto el
X2 X2
01
X1 X1
00 10
34
Para este caso particular de triángulo 2D está representado por los vértices que
muestra la Tabla 2.7. Y las coordenadas de los vértices se pueden representar con (2) bits.
X1 X2 Representación Representación
binaria decimal
0 0 00 0
0 1 01 1
1 0 10 2
Para 3D, nuevamente se selecciona un punto fuera del plano de soporte del triángulo,
este nuevo punto se une a todos los vértices del simplex 2D, esto genera un tetraedro 3D, el
cuál tiene 4 vértices, 6 aristas y 4 caras triangulares (Figura 2.24). De nueva cuenta, el
X2 X2
010
X1 000 100 X1
001
X3 X3
Para este caso particular de tetraedro 3D, los vértices están representados como
muestra la Tabla 2.8. Y las coordenadas de los vértices se pueden representar con (3) bits.
X1 X2 X3 Representación Representación
binaria Decimal
0 0 0 000 0
0 0 1 001 1
0 1 0 010 2
1 0 0 100 4
35
Siguiendo esta analogía dimensional, se puede obtener el simplex 4D a partir del
tetraedro, seleccionando nuevamente un punto fuera del volumen de soporte del tetraedro,
este nuevo punto se une a todos los vértices del simplex 3D, esto genera el simplex 4D, el
cuál tiene 5 vértices, 10 aristas, 10 caras, y 5 volúmenes [Pérez-Águila 03] (Figura 2.25).
X2 X2
0100
X4 X4
0001
X1 0000 1000 X1
0010
X3 X3
Para este caso particular de tetraedro 3D, los vértices están representados como
muestra la Tabla 2.9. Y las coordenadas de los vértices se pueden representar con (4) bits.
X1 X2 X3 X4 Representación Representación
binaria decimal
0 0 0 0 0000 0
0 0 0 1 0001 1
0 0 1 0 0010 2
0 1 0 0 0100 4
1 0 0 0 1000 8
Se observa que la Tabla 2.6 con los vértices del simplex 1D tiene la representación
binaria de los números: (0, 1). La Tabla 2.7 con los vértices del simplex 2D, tiene la
36
representación de los números (0, 1, 2). La Tabla 2.8 con los vértices del simplex 3D, tiene
la representación de los números de (0, 1, 2, 4). Y la Tabla 2.9 con los vértices del simplex
4D, tiene la representación de los números de (0, 1, 2, 4, 8). De esta forma, se pueden
tabla con la representación binaria del cero y todos los valores de 2k, donde (0 ≤ k ≤ n − 1)
(ver Tabla 2.10). Y las coordenadas de los vértices se pueden representar con (n) bits.
familia de politopos llamados politopos cruz. Al igual que en las metodologías anteriores,
Después de este punto, se crea el eje X1, y se generan otros dos nuevos puntos en el
origen, y se desplazan en direcciones opuestas a una distancia finita sobre el eje creado,
estos dos puntos se unen entre si, formando un segmento de recta 1D (Figura 2.27).
X1 -1 0 1 X1
37
Si el desplazamiento de cada punto se hace de una unidad, se pueden definir los
vértices de una línea recta unidimensional (1D) como muestra la Tabla 2.11.
No. de X1
vértice
0 -1
1 1
(el -1).
Ahora, en 2D se crea el eje X2, se generan otros dos nuevos puntos en el origen, y se
desplazan en direcciones opuestas sobre el eje creado, estos puntos se unen a los vértices de
la recta 1D para formar el politopo cruz 2D, un cuadrado, el cuál tiene 4 vértices, y 4 aristas
(Figura 2.28).
X2 X2
0,1
X1 -1,0 1,0 X1
0,-1
De esta forma, el politopo cruz 2D está representado por los vértices que se muestran
en la Tabla 2.12.
38
No. de X1 X2
vértice
0 -1 0
1 1 0
2 0 -1
3 0 1
Aunque en esta definición, el politopo cruz 2D difiere con el simplex 2D, coincide
Para 3D se crea el eje X3, se generan otros dos puntos en el origen, y se desplazan en
direcciones opuestas sobre el eje creado, estos puntos se unen a los vértices de politopo
cruz 2D para formar el politopo cruz 3D, un octaedro, el cuál tiene 6 vértices, 12 aristas y 8
X2 X2
0,1,0
0,0,-1
X1 X1
-1,0,0 1,0,0
0,0,1
X3 X3 0,-1,0
De esta forma, el politopo cruz 3D está representado por los siguientes vértices que se
39
No. de X1 X2 X3
vértice
0 -1 0 0
1 1 0 0
2 0 -1 0
3 0 1 0
4 0 0 -1
5 0 0 1
Siguiendo esta analogía dimensional, se puede obtener el politopo cruz 4D a partir del
direcciones opuestas sobre el eje creado, estos puntos se unen cada uno de los vértices de
politopo cruz 3D para formar el politopo cruz 4D, el cuál tiene 8 vértices, 24 aristas y 32
X2 X2
0,1,0,0
X4 X4
0,0,0,1 0,0,-1,0
X1 X1
-1,0,0,0 1,0,0,0
0,0,1,0 0,0,0,-1
X3 X3
0,-1,0,0
De esta forma, los vértices del politopo cruz 4D quedan como muestra la Tabla 2.14:
40
No. de X1 X2 X3 X4
vértice
0 -1 0 0 0
1 1 0 0 0
2 0 -1 0 0
3 0 1 0 0
4 0 0 -1 0
5 0 0 1 0
6 0 0 0 -1
7 0 0 0 1
Se observa que la Tabla 2.11 con los vértices del politopo cruz 1D, tiene la
representación de la permutación de (±1). La Tabla 2.12 con los vértices del politopo cruz
2D, tiene la representación de la permutación de (±1, 0). La Tabla 2.13 con los vértices del
politopo cruz 3D, la representación de la permutación de (±1, 0, 0). Y la Tabla 2.14 con los
vértices del politopo cruz 4D, tiene la representación de la permutación de (±1, 0, 0, 0). De
esta forma, se pueden definir los vértices de un politopo cruz nD con la creación de la tabla
que contenga la permutación de (+1, 0, …, 0), con n dígitos (ver Tabla 2.15 ).Y las
No. de X1 X2 … Xn-1 Xn
vértice
0 -1 0 …0… 0 0
1 1 0 …0… 0 0
2 0 -1 …0… 0 0
3 0 1 …0… 0 0
M M M O M M
2n-4 0 0 …0… -1 0
2n-3 0 0 …0… 1 0
2n-2 0 0 …0… 0 -1
2n-1 0 0 …0… 0 1
41
2.3 Trazo Automático de Politopos
Esta parte es la primera aportación de la presente investigación. En los temas
anteriores se hizo un repaso de las analogías dimensionales que se utilizan para la creación
Esta información será de utilidad para proponer un método que permita generar de
forma automática los vértices y el orden en que tienen que ser trazados para crear las aristas
Como se observó anteriormente, todos los politopos se derivan del punto 0D, pero
X2
X1 X2 Representación Representación
01 11
binaria decimal
0 0 00 0
0 1 01 1
1 0 10 2
1 1 11 3 X1
00 10
De aquí se puede visualizar que las aristas están dadas por los siguientes pares de
vértices en su representación decimal: (0, 1), (0, 2), (1, 3), (2, 3).
siguiente: Dado un vértice, este formará aristas hacía otros vértices que tendrán que ser
adyacentes al primero, es decir, hacia donde hay solamente un cambio en alguno de sus
42
coordenadas, lo que formará un ángulo recto. Si se observan estos vértices en su
representación binaria, significa que la arista se forma hacia aquellos vértices donde sólo un
valor de 0 cambie a 1. Por ejemplo para el vértice 0= (0,0), las aristas que se forman son
aquellas donde solo hay un cambio en alguno de sus valores en 0, entonces el punto
éste forma aristas sólo con el vértice 3= (1, 1). El vértice 2= (1,0) forma una arista con el
Entonces siguiendo esta idea para el trazo del cuadrado 2D, las aristas se forman con
X2
X1 X2 X3 Representación Representación
binaria decimal
010 110
0 0 0 000 0
0 0 1 001 1
0 1 0 010 2 011 111
0 1 1 011 3
1 0 0 100 4 100 X1
000
1 0 1 101 5
1 1 0 110 6
001
1 1 1 111 7 101
X3
43
Siguiendo la idea anterior, se toma nuevamente el vértice 0 = (0,0,0), las aristas que
se forman son aquellas donde solo hay un cambio en alguno de sus valores en 0, entonces
el punto (0,0,0) forma aristas con los vértices: 1= (0,0,1), 2= (0,1,0) y 4= (1,0,0).
Ahora se toma el vértice 1 = (0,0,1), éste forma aristas con el vértice 3 = (0,1,1) y el
con estas operaciones para el trazo del cubo 3D, se tiene que las aristas son las formadas
por pares de vértices mostrados en la Tabla 2.17, que son las 12 aristas que forman al cubo.
forman aristas con un vértice dado es, tan solo sumar 2k al valor del vértice, donde k es la
Por ejemplo:
0 0 1
0 1 1 1 0 1
22 21 20 22 21 20
Se observa que el vértice 1 forma aristas con los vértices obtenidos de las
Algo importante notar aquí es que, los vértices del hipercubo están representados por
todos aquellos números enteros desde el 0 a 2n-1, donde n es la dimensión del politopo.
44
Con la idea anteriormente descrita, en general se puede definir un algoritmo para la
• dimension = Variable entera para indicar la dimensión del politopo a crear, sirve
• vertexChar = Variable tipo cadena para almacenar el número binario del vértice.
• edges[i] = Arreglo de enteros para representar la secuencia en que deben ser trazados
vertexes, que contiene de forma secuencial, los números de los vértices que deben ser
unidos para formas las aristas, es decir, el vértice en la posición vertexes[0] se une con el
45
vértice de la posición vertexes[1], vertexes[2] con vertexes[3], y así sucesivamente, hasta
Para un hipercubo 4D, el algoritmo indica que el trazo de aristas deber ser de acuerdo
Estos pares de vértices representan las 32 aristas del hipercubo 4D, según la fórmula
que calcula el número de aristas de un hipercubo nD: n 2 n −1 [Pérez-Águila 03], donde para
X2
X1 X2 Representación Representación 01
binaria decimal
0 0 00 0
0 1 01 1
1 0 10 2
X1
00 10
La observación geométrica que ayuda en este caso para el trazo del triángulo es el
siguiente: Cada vértice tendrá que ser unido con todos los demás, entonces se comienza
46
con el vértice 0= (0,0), el cuál se une con el resto, es decir con 1= (0,1) y 2= (1,0), después
se toma el siguiente vértice 1= (0,1), el cual se tendría que unir con el 0= (0,0), pero se
repetiría un trazo, así que solo se hace la unión hacia los vértices posteriores, por tanto 1=
(0,1) se une con 2= (1,0), y con esto se tienen todos los trazos de las aristas, representados
X2
001
X3
2= (0,1,0) y 4= (0,1,0), y finalmente el vértice 2= (0,1,0) se une con 4= (0,1,0). Así se tiene
que las aristas del tetraedro son las formadas por los pares de vértices de la Tabla 2.20:
47
Algo importante notar aquí es que los vértices del simplex están representados por el
cero y todos aquellos números enteros en su representación binaria iguales a 2k, con
Con esta idea, se puede definir en general, un algoritmo para la generación de los
• dimension = Variable entera para indicar la dimensión del politopo a crear, sirve
• vertexChar = Variable tipo cadena para representar el número binario del vértice.
• edges[i] = Arreglo de enteros para representar la secuencia en que deben ser trazados
48
La entrada del algoritmo es la dimensión del simplex, la salida es el arreglo vertexes,
que contiene de forma secuencial, los números de los vértices que deben ser unidos para
formas las aristas, que se unen de la misma forma que la salida del algoritmo del hipercubo.
Para un simplex 4D, el algoritmo indica que el trazo de aristas deber ser de acuerdo a
Estos pares de vértices representan las 10 aristas del simplex 4D, según la fórmula
que calcula el número de aristas de un simplex nD: C (n + 1,2 ) [Pérez-Águila 03], donde
⎛ 4 + 1⎞ 5! 120
C ⎜⎜ ⎟⎟ = = = 10
⎝ 2 ⎠ 2!(5 − 2)! 12
X2
0,1
No. de X1 X2
vértice
0 -1 0 -1,0 1,0 X1
1 1 0
2 0 -1
3 0 1
0,-1
49
La observación geométrica que ayuda en este caso para el trazo del politopo cruz 2D
es el siguiente: De forma similar al caso de simplex, cada vértice tendrá que ser unido con
el resto de los vértices posteriores (para no repetir aristas), excepto con el otro vértice sobre
el mismo eje. Entonces comenzando en el vértice 0= (-1,0), se une con todos, excepto al
vértice 1= (1,0) por ser el otro punto sobre el eje X1, por tanto solo se crean aristas con los
vértices 2= (0,-1) y 3= (0,1), después se toma el siguiente vértice 1= (1,0), que también se
une a 2= (0,-1) y 3= (0,1), después se toma al vértice 2= (0,-1), pero el único vértice
posterior que queda es el otro punto sobre el eje X2, por tanto terminan los trazos de aristas,
X2
0,1,0
No. de X1 X2 X3
vértice 0,0,-1
0 -1 0 0
1 1 0 0 X1
2 0 -1 0 -1,0,0 1,0,0
3 0 1 0
4 0 0 -1
5 0 0 1 0,0,1
X3
0,-1,0
50
une a 4= (0,0,-1) y 5=(0,0,1), de esta forma los trazos de aristas quedan determinadas por la
Algo importante notar aquí es que los vértices del politopo cruz están representados
Con esta idea, se puede definir en general, un algoritmo para la generación de los
• edges[i] = Arreglo de enteros para representar la secuencia en que deben ser trazados
vertexes, que contiene de forma secuencial, los números de los vértices que deben ser
unidos para formas las aristas, que se unen de la misma forma que la salida de los
51
//dimension, parámetro para el # de dig.
Procedure getEdges (dimension)
numVertex = dimension*2
//Creación de vértices
v=0
while v < numVertex-1
fill(vertexes[v],0)//Llenar de 0’s
vertexes[v][int(v/2)]=-1 //vértice negativo
fill(vertexes[v+1],0)//Llenar de 0’s
vertexes[v+1][int(v/2)]=1 //vértice positivo
v=v+2
endwhile
//Creación de aristas
i=0
for v=0 to numVertex-3
if odd(v+1)
k=v+2
else
k=v+1
for k=k to numVertex
edges[i]=v
edges[i+1]=k
i=i+2;
endfor
endfor
endProcedure
Para un politopo cruz 4D, el algoritmo indica que el trazo de aristas deber ser de
Estos pares de vértices representan las 24 aristas del politopo cruz 4D, según la
fórmula que calcula el número de aristas de un politopo cruz nD: 4 C (n,2 ) [Pérez-Águila
⎛ 4⎞ ⎛ 4! ⎞ ⎛ 24 ⎞
4 C ⎜⎜ ⎟⎟ = 4⎜⎜ ⎟⎟ = 4⎜ ⎟ = 24
⎝ 2⎠ ⎝ 2!(4 − 2)! ⎠ ⎝ 4 ⎠
52
2.4 Resumen
En este capítulo, se analizaron las propiedades que deben cumplir los politopos para
considerarse regulares, comenzando desde los polígonos en 2D, siguiendo con los poliedros
en 3D y en general de los politopos regulares nD, donde se vio que a partir de 5D solo son
propusieron los algoritmos para su trazo automático. La finalidad de esto, es poder generar
53
Capítulo 3: Transformaciones Geométricas
En matemáticas, nunca entiendes las cosas, sólo te acostumbras a ellas.
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
Capítulo 4: Rotaciones Multidimensionales con
Operaciones Vectoriales
Como se vio en el capítulo anterior, se puede hacer rotar un objeto en el espacio nD,
En este capítulo se analiza y extiende el proceso planteado en [Teoh 05], para las
cuál puede estar formado por cualesquiera dos vectores unitarios y ortogonales entre si.
4.1 Introducción
Trabajando con propiedades vectoriales, se propone una fórmula para la rotación de
La forma más intuitiva de describir una rotación, requiere dos elementos: el eje, y el
rotación. En 2D y 3D para llevar a cabo una rotación, puede ser más cómodo especificar los
puntos que forman al eje de rotación, sin embargo, para dimensiones superiores se torna un
poco más complicado, ya que se tienen que proporcionar n-1 puntos no cohiperplanares
para definir al eje (n-2)-dimensional de rotación, de esta forma, podría ser más cómodo,
La matriz para la rotación 2D alrededor del origen es ya conocida, y está dada por la
100
generalizar una fórmula para rotaciones generales para cualquier dimensión nD para n≥2,
trabajar con coordenadas cartesianas, y en este caso, la fórmula será aplicable cuando se
4.2 Suposiciones
1. El plano actual de rotación P es paralelo al plano P0 que pasa por el origen. Dos
[Grossman 88] La Figura 4.1 muestra dos planos paralelos en un espacio 3D.
X2
c
P
nP
a
nP0
X1
P0
X3
b
101
2. El centro de rotación c está en el hiperplano (n-2)-dimensional que intersecta al plano
a, b ∈ ℜ n . Y dado que en las rotaciones, los planos de rotación son siempre en 2D, es
4. Para tener una dirección de giro positivo, se define la rotación del vector a hacia el
C
P
x
xa a
xb
xp
b P0
102
4.3.1 Proyección de x Sobre el Plano P0
u ⋅v
proy v u = 2
v
v
proyecciones sobre dos vectores (mutuamente ortogonales) que definan al plano. Entonces,
la proyección de x sobre el plano P0 denotada como xp, será la suma de las proyecciones
x p = proy a x + proy b x
x⋅a x ⋅b
= 2
a+ 2
b , pero dado que a y b son vectores unitarios, se tiene que:
a b
x p = ( x ⋅ a)a + ( x ⋅ b)b
también es ortogonal al plano P0, lo que significa que al estar fuera del plano de rotación,
Teorema: (x- xp) es la componente de x ortogonal al plano P0, cuya suma al resultado de
que dos vectores son ortogonales si su producto escalar es igual a cero, se tiene que:
(x − x p ) ⋅ a = x ⋅ a − x p ⋅ a
103
= x ⋅ a − (( x ⋅ a )a + ( x ⋅ b) ⋅ b ) ⋅ a
= x ⋅ a − (( x ⋅ a )(a ⋅ a ) + ( x ⋅ b) ⋅ (b ⋅ a ) )
Pero dado que a y b son vectores unitarios y ortogonales entre si, por la definición del
2
a ⋅ a = a a cos(0) = a = 1
( 2
( x − x p ) ⋅ a = x ⋅ a − ( x ⋅ a) a + 0 )
= x⋅a − x⋅a
=0
De forma similar:
(x − x p ) ⋅ b = x ⋅ b − x p ⋅ b
= x ⋅ b − (( x ⋅ a )a + ( x ⋅ b) ⋅ b ) ⋅ b
= x ⋅ b − (( x ⋅ a )(a ⋅ b) + ( x ⋅ b) ⋅ (b ⋅ b) )
(
= x ⋅ b − 0 + ( x ⋅ b) b
2
)
= x ⋅b − x ⋅b
=0
Con esto se demuestra que (x- xp) es la componente de x que es ortogonal al plano P0.
plano P0 con el mismo ángulo θ, más la suma de la componente (x- xp). Es decir:
rot P ,θ ( x) = rot P0 ,θ ( x P ) + ( x − x P )
104
Entonces, resta obtener la ecuación para la rotación de xp en el plano P0 con el ángulo
x ⋅ a = x p cos φ
x ⋅ b = x P sin φ
b
x p ' = rot P0 ,θ ( x p )
(x⋅b)’
|xp|
x⋅b xp
θ |xp|
φ a
(x⋅a)’ x⋅a
Entonces, el vector resultante xp' después de rotar xp por el ángulo deseado θ, será
Figura 3.5). Por lo tanto se tiene que las coordenadas del vector xp' son:
( x ⋅ a)' = x p cos(φ + θ )
( x ⋅ b)' = x p sin(φ + θ )
105
Y dado que xp' corresponde a la proyección del vector rotado x' en el plano P,
= x p cos(φ + θ )a + x p sin(φ + θ )b
( ) ( )
= x p cos ϕ cos θ − x p sin ϕ sin θ , y substituyendo la Ecuación 4.3
= ( x ⋅ a) cos θ − ( x ⋅ b) sin θ
De forma similar:
( ) (
= x p sin ϕ cos θ + x p cos ϕ sin θ )
= ( x ⋅ b) cos θ + ( x ⋅ a) sin θ
substituyen la Ecuación 4.1 y la Ecuación 4.4 en la Ecuación 4.2, y con esto se obtiene una
106
Esta fórmula puede ser aplicada a cualquier dimensión nD, con n>2, dado que está
algunos elementos.
⎡cos θ − 1 sin θ ⎤
r = [r1 r2 ] = [x ⋅ a x ⋅ b] ⋅ ⎢ ⎥
⎣ − sin θ cos θ − 1⎦
rot P ,θ ( x ) = x + r1 a + r2 b
rotación 2D.
aplicable para poder rotar un vector x en cualquier dimensión, siempre y cuando el plano de
rotación formado por los vectores ortonormales a y b pase por el origen. El caso general es
vectores af y bf, los cuales son una representante de los vectores a y b respectivamente, si se
107
a f = a + f y b f = b + f . Con esto, basta restarles f a los vectores af y bf para obtener los
af = a+f
X2
f
a
bf = b+f
X1
P0
X3
b
Figura 4.4: Llevar un plano de rotación arbitrario hacia uno que pase por el origen.
es el punto de aplicación de los vectores que definen dicho plano, se realizan 3 pasos:
Así, la rotación general de un vector x en un plano arbitrario en nD, esta dado por:
rotg P ,θ ( x) = rot P ,θ ( x − f ) + f
rotación y el punto de aplicación de ambos vectores, para llevar a cabo cualquier rotación
108
rotación alrededor de un eje (n-2)-dimensional (un simplex (n-2)D), proporcionando n-1
puntos no cohiperplanares.
4.7.1 Caso 2D
este caso el eje de rotación es un punto fijo (hiperplano 0D) que se puede representar por el
ningún problema los vectores con las bases canónicas 2D: a = e1 = (1,0) y a = e2 = (0,1) . Y
por tanto, la rotación positiva 2D de un vector x alrededor de un punto fijo está dada por la
rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1
e1 = (1,0,0,K,0)
e2 = (0,1,0,K,0)
M
en = (0,0,0,K ,1)
A los vectores e1, e2, …, en se les conoce como base canónica del espacio vectorial
ℜn, y son linealmente independientes, unitarios y ortogonales entre si. Estos vectores
109
apuntan en la dirección de los ejes principales del espacio nD, es decir que el vector ei cae
Observación 4.1:
En ℜ3 se tienen los vectores e1, e2, e3, los cuales, son comúnmente denotados por las
letras i,j y k.
una operación binaria. Sin embargo, si en lugar de pensar que el producto vectorial es una
operación binaria, se piensa como una operación (n-1)-aria, donde n es la dimensión del
[Murray-Lasso 04].
e1 e2 e3
u × v = u1 u2 u 3 = (u 2 v3 − u 3 v 2 )e1 − (u1v3 − u 3 v1 )e2 + (u1v 2 − u 2 v1 )e3
v1 v2 v3
e1 e2 e3 i j k
u × v = u1 u2 u 3 = u1 u2 u3
v1 v2 v3 v1 v2 v3
110
Sin embargo, hay un problema para definir el producto vectorial de dos vectores en
cualquier otra dimensión, esto es porque la definición del producto vectorial indica que el
espacio nD, la generalización se vuelve muy simple y es directa por analogía [Murray-
Lasso 04]. Si en 3D el producto vectorial de n-1=2 vectores está dado por la Ecuación 4.8,
v = (v1 , v 2 , v3 , v 4 ) , y w = ( w1 , w2 , w3 , w4 ) será:
e1 e2 e3 e4
u1 u2 u3 u4
u×v×w =
v1 v2 v3 v4
w1 w2 w3 w4
vectores u, v y w.
Entonces, en general, sean los n-1 factores definidos por los vectores
{V1 ,V2 ,K,Vn−1 }∈ ℜ n , y {e1 , e2 ,K, en }∈ ℜ n los vectores unitarios ortogonales entre si que
definen la base del espacio nD, el producto vectorial nD está dado por:
111
e1 e2 e3 K en
V1,1 V1, 2 V1,3 K V1,n
V1 × V2 × K × Vn −1 = V2,1 V2 , 2 V2 ,3 K V2 , n
M M M O M
Vn −1,1 Vn −1, 2 Vn −1,3 K Vn −1,n
4.7.4 Caso 3D
por dos vectores no coincidentes {V1 , V2 }∈ ℜ 3 . Aquí se propone una serie de 5 pasos:
1. Llevar el eje lineal de rotación al origen. Esto se logra restándole a ambos vectores el
vector V1, de está forma el segmento de recta quedará representado por el vector
w = V2 − V1 .
ignora una componente, por ejemplo, la que corresponde al eje X3, y se define un
e1 e2
= w2 e1 − w1e2
w1 w2
112
Entonces se crea un vector a ∈ ℜ 3 , constituido con los valores de las componentes
que arroja este producto vectorial 2D, y un cero en la posición de la componente que
tiene:
e1 e3
= w3 e1 − w1e3
w1 w3
a w.
Observación 4.2:
vectorial.
b) No se debe omitir una componente que haga que el vector w' sea el vector cero,
hace uso del producto vectorial 3D como b = w × a , ya que esto da como resultado un
e1 e2 e3
a × w = a1 a2 a 3 = (a 2 w3 − a 3 w2 )e1 + (a 3 w1 − a1 w3 )e2 + (a1 w2 − a 2 w1 )e3
w1 w2 w3
113
por lo tanto b = (a 2 w3 − a3 w2 , a3 w1 − a1 w3 , a1 w2 − a 2 w1 )
Ecuación 4.7: Fórmula para la rotación general de un vector x en nD, y dado que el
rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1
4.7.5 Caso 4D
representados por los vectores {V1 ,V2 ,V3 }∈ ℜ 4 . Nuevamente se propone una serie de 5
pasos:
1. Llevar un vértice del eje bidimensional de rotación al origen. Esto se logra restándole
a los tres vectores el vector V1, de está forma, el plano queda representado por los
2. Obtener un vector a, ortogonal a los vectores {W1 ,W2 }. Si se ignora una componente
de los vectores {W1 ,W2 }, por ejemplo, la que corresponde al eje X4, se definen dos
vectores {W1 ' ,W2 '}∈ ℜ 3 como W1' = (W1,1 , W1, 2 , W1,3 ) y W2' = (W2,1 , W2, 2 , W2,3 ) . De esta
e1 e2 e3
W × W = W1',1
1
'
2
'
W1', 2 W1',3 = a1e1 + a 2 e 2 + a3 e 3
W2',1 W2', 2 W2',3
114
Entonces se crea un vector a ∈ ℜ 4 constituido con los valores de las componentes
que arroja este producto vectorial 3D, y un cero en la posición de la componente que
se ignoró, en este caso se tiene que, a = (a1 , a 2 , a3 ,0) , este vector es linealmente
W1' = (W1,1 , W1, 2 , W1, 4 ) y W2' = (W2,1 , W2, 2 , W2, 4 ) , y el producto vectorial 3D queda
como:
e1 e2 e4
W ×W = W
1
'
2
' '
1,1 W '
1, 2 W1',3 = a1e1 + a 2 e 2 + a 4 e 4
' '
W 2 ,1 W
2, 2 W2',3
ortogonal a W1 y W2.
Observación 4.3:
algunos vectores Wi', porque esto causará que el determinante del producto cruz
3. Obtener un segundo vector b ortogonal a los vectores {W1 , W2 , a}. Para obtener el
este producto da como resultado un vector b ortogonal a todos los factores. Entonces:
115
e1 e2 e3 e4
a1 a2 a3 a4
a × W1 × W2 = = b1 e1 +b2 e 2 +b3 e 3 +b4 e 4
W1,1 W1, 2 W1,3 W1, 4
W2,1 W2, 2 W2,3 W2, 4
Así, el vector b ∈ ℜ 4 queda constituido con los valores que arroja el producto
5. Realizar el proceso de rotación alrededor del plano (hiperplano 2D) nuevamente con
rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1
4.7.6 Caso nD
En este caso se procede con una analogía dimensional de los casos 3D y 4D en la que
cohiperplanares, tales puntos estarán representados por los vectores {V1 , V2 , KVn −1 }∈ ℜ n .
restándole a los n-1 vectores el vector V1, de está forma, el hiperplano estará ahora
1≤ i ≤ n − 2.
componente Xi de los vectores {W1 ,W2 ,K,Wn−2 } para definir n-2 vectores
{W1 ' ,W2 ' ,K,Wn−2 '}∈ R n−1 , cuidando que ninguno de los vectores se vuelva el vector
116
cero. De esta forma, si se ignora la componente Xi, y se aplica el producto vectorial
e1 K ei −1 ei +1 K en
' ' '
W 1,1 K W 1,i −1 W 1,i +1 K W1',n
' ' '
W 2 ,1 K W 2 ,i −1 W 2 ,i +1 K W2',n = a1e1 + K + ai −1ei −1 + a i +1ei +1 + K + a n en
M M M M
' ' '
W n − 2 ,1 K W n − 2 ,i −1 W n − 2 ,i +1 K Wn'− 2,n
e2 e3 K en
W1', 2 W1',3 K W1',n
W2', 2 W2',3 K W2',n = a 2 e2 + a3 e3 + K + a n en
M M M
' '
W n − 2, 2 W n − 2,3 K Wn'− 2,n
e1 e2 K en −1
' '
W 1,1 W 1, 2 K W1',n −1
' '
W 2 ,1 W 2, 2 K W2',n −1 = a1e1 + a 2 e2 + K + a n −1en −1
M M M
Wn' − 2,1 Wn'− 2, 2 K Wn'− 2,n −1
En cualquier caso el vector a, formado con los valores que arroja el producto
117
3. Obtener un segundo vector b ortogonal a los vectores {W1 ,W2 ,K ,Wn − 2 , a} . Para
e1 e2 K en
a1 a2 K an
W1,1 W1, 2 K W1, n
b = a × W1 × W2 × K × Wn − 2 = = b1e1 + b2 e 2 + K + bn e n
W2,1 W2, 2 K W2 , n
M M M
Wn − 2,1 Wn − 2, 2 K Wn − 2, n
Así, el vector b ∈ ℜ n queda constituido con los valores que arroja el producto
5. Realizar el proceso de rotación alrededor del hiperplano (n-2)D con la Ecuación 4.7,
rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1
para la rotación general nD., cuando se cuenta con los vectores ortonormales af y bf y su
118
4.8.1 Caso 2D
En 2D el eje de rotación será un punto, por tanto, este estará dado por el punto f,
4.8.2 Caso 3D
vértice V1 = f .
e1 e2 e3
a × b = a1 a2 a 3 = (a 2 b3 − a 3 b2 )e1 + (a 3 b1 − a1b3 )e 2 + (a1b2 − a 2 b1 )e3
b1 b2 b3
4.8.3 Caso 4D
proceso es el siguiente:
V1 = f .
119
2. El segundo vértice se obtiene de realizar el producto cruz 3D definiendo dos vectores
a (3) , b (3) ∈ ℜ 3 , donde estos vectores se obtienen al ignorar una componente de los
vector). Por ejemplo, si se ignora la que corresponde al eje X4, se tiene que:
e1 e2 e3
W 2
( 3)
=a ( 3)
×b ( 3)
=a1
( 3)
a ( 3)
2 a 3( 3) = W2(,31) e1 + W2(,32) e 2 + W2(,33) e3
( 3) ( 3)
b1 b 2 b3(3)
Entonces se crea el vector W2∈ℜ4, constituido con los valores de las componentes
que arroja este producto vectorial 3D, y un cero en la posición de la componente que
Observación 4.5:
No se debe omitir una componente que haga que los vectores a(3) y b(3) :
3. El tercer y último vértice se obtiene al realizar el producto cruz 4D con los vectores a,
b, y W2 y sumándole f, entonces.
e1 e2 e3 e4
a1 a2 a3 a4
W3( 4 ) = a ( 4 ) × b ( 4 ) × W2 = = W3(,14 ) e1 +W3(,42) e 2 +W3(,43) e 3 +W3(,44) e 4
b1 b2 b3 b4
W2,1 W2, 2 W2,3 W2 , 4
Entonces se crea el vértice V3, constituido con los valores de las componentes que
120
El eje de rotación definido por {V1, V2, V3} es ortogonal a los vectores a y b.
4.8.4 Caso nD
V1 = f .
a (3) , b (3) ∈ ℜ 3 , donde estos vectores se obtienen considerando tres componentes Xr,
se tiene que:
er es et
W 2
( 3)
=a ( 3)
×b ( 3)
= a r( 3) a s(3) at(3) = W2(,3r) er + W2(,3s) e s + W2(,3t ) et
br(3) bs(3) bt( 3)
Entonces se crea el vector W2∈ℜn, constituido con los valores de las componentes
que arroja este producto vectorial 3D, y un cero en la posición de las componentes
que W2 = (0, K ,0, W2(,3r) ,0, K ,0, W2(,3s) ,0, K ,0, W2(,3t ) ,0, K ,0) y V 2 = W 2 + f .
3. Para el cálculo del resto de los vértices, el proceso se vuelve iterativo, de la siguiente
forma: Para calcular el vértice Vk, se realiza el producto cruz (k+1)D con los vectores
{W2, W3…, Wk-1} y dos vectores a ( k +1) , b ( k +1) ∈ ℜ k +1 donde estos vectores se obtiene
121
originales a, b ∈ ℜ n . Este proceso se hace para 3 ≤ k ≤ n − 1 . Entonces se tiene que:
constituido con los valores de las componentes que arroja el producto vectorial
Observación 4.6:
Una vez obtenido el eje de rotación mediante este proceso y probando los giros
utilizando la Ecuación 3.31, se observó que las rotaciones mantienen una misma
dirección de giro para las dimensiones impares, para las pares, la dirección es en
de los giros. Se puede utilizar por ejemplo el vector a como (-1)n+1a durante todos los
dado que se manejaron propiedades vectoriales. Sin embargo, para fines de ilustración se va
a demostrar que son equivalentes a los casos analizados en el Capítulo 3, para las rotaciones
principales nD, y para rotaciones generales en el caso 2D. El resto de demostración de las
equivalencias para las rotaciones generales nD, quedan fuera de los alcances de esta
investigación.
122
4.9.1 Caso 2D
El caso base para comprobar será el caso de rotación principal 2D, ya que en esta
dimensión el vector x = ( x1 , x 2 ) está completamente sobre plano P0. Se probarán los casos
cuando los vectores ortonormales a y b, caen sobre los ejes principales, y después con
mismo resultado.
X2
b = (0,1)
a = (1,0)
X1
Dado que la Ecuación 4.6 indica que el sentido del giro es del vector a hacia el b, se
espera obtener el mismo resultado que el giro positivo en 2D, de esta forma:
x ⋅ a = x1 + 0( x 2 ) = x1
x ⋅ b = 0( x1 ) + x 2 = x 2
123
Entonces substituyendo en la Ecuación 4.6, se tiene:
[x1 ' x 2 '] = [x1 x 2 ] + ( x1 (cos θ − 1) − x 2 sin θ )[1 0] + (x1 sin θ + x 2 (cos θ − 1) )[0 1]
Así:
= x1 + x1 cos θ − x1 − x 2 sin θ
= x1 cos θ − x 2 sin θ
= x1 sin θ + x 2 cos θ
Con esto, se tiene que el resultado para x1 y x2 es el mismo que en las formulas de la
(Figura 4.6).
124
X2
b = (-sinα,cosα)
a = (cosα,sinα)
α+π/2
α
X1
De esta forma:
a = (cos α , sin α )
b = (− sin α , cos α )
x ⋅ a = x1 cos α + x 2 sin α
x ⋅ b = − x1 sin α + x 2 cos α
⎡ x cos θ cos α + x 2 cos θ sin α − x1 cos α − x 2 sin α + x1 sin θ sin α − x 2 sin θ cos α ⎤
=⎢ 1 ⎥
⎣ x1 sin θ cos α + x 2 sin θ sin α − x1 cos θ sin α + x 2 cos θ cos α + x1 sin α − x 2 cos α ⎦
Así:
x1 ' = x1 + cos α ( x1 cos θ cos α + x 2 cos θ sin α − x1 cos α − x 2 sin α + x1 sin θ sin α − x 2 sin θ cos α )
− sin α ( x1 sin θ cos α + x 2 sin θ sin α − x1 cos θ sin α + x 2 cos θ cos α + x1 sin α − x 2 cos α )
125
= x1 + cos α ( x1 cos θ cos α − x1 cos α − x 2 sin θ cos α )
− sin α (− x1 cos θ sin α + x1 sin α + x 2 sin θ sin α )
= x1 cos θ − x 2 sin θ
x 2 ' = x 2 + sin α ( x1 cos θ cos α + x 2 cos θ sin α − x1 cos α − x 2 sin α + x1 sin θ sin α − x 2 sin θ cos α )
+ cos α ( x1 sin θ cos α + x 2 sin θ sin α − x1 cos θ sin α + x 2 cos θ cos α + x1 sin α − x 2 cos α )
= x1 sin θ + x 2 cos θ
la rotación 2D (Ecuación 3.9), lo que indica que no importa los valores de las componentes
de los vectores, si estos definen al mismo plano de rotación, la fórmula dará el mismo
resultado.
La fórmula ya conocida para la rotación 2D alrededor de un punto fijo 2D, dice que:
⎡ 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⎥⎦
⎡ cos θ sin θ 0⎤ ⎡ 1 0 0⎤
= [x1 x2 ⎢
1] ⋅ ⎢ − sin θ cos θ 0⎥⎥ ⋅ ⎢⎢ 0 1 0⎥⎥
⎢⎣(− f 1 cos θ + f 2 sin θ ) (− f1 sin θ − f 2 cos θ ) 1⎥⎦ ⎢⎣ f1 f2 1⎥⎦
126
⎡ cos θ sin θ 0⎤
= [x1 x2 1] ⋅ ⎢⎢ − sin θ cos θ 0⎥⎥
⎢⎣( f1 (1 − cos θ ) + f 2 sin θ ) (− f1 sin θ + f 2 (1 − cos θ ) ) 1⎥⎦
Entonces:
será equivalente a la rotación del plano cuyo centro de rotación estará definido por el vector
f = ( f1 , f 2 ) (Figura 4.6).
X2
xf = (x1-f1, x2-f2)
a = (1,0) X1
Figura 4.7: Llevar el vector x para realizar la rotación 2D en un plano de rotación con centro de
rotación f.
Y por la fórmula ya probada para 2D cuando el plano de rotación pasa por el origen,
solo se substituyen los valores de x por (x-f) en el resultado de la Sección 4.9.1.2 y después
127
= x1 sin θ − f1 sin θ + x 2 cos θ − f 2 cos θ + f 2
Con esto, se tiene que el resultado para x1 y x2 es el mismo que en las formulas de la
4.9.2 Caso 3D
Para 3D, se considera que los vectores ortonormales a y b están completamente sobre
alguno de los planos principales, al probarse para el plano X1X2, se espera tener la rotación
b = e2 = (0,1,0) , ambos vectores caen sobre los ejes X1 y X2 respectivamente, de esta forma:
x.a = x1 + 0( x 2 ) + 0( x3 ) = x1
x.b = 0( x1 ) + x 2 + 0( x3 ) = x 2
[x1 ' x 2 ' x3 '] = [x1 x2 x3 ] + ( x1 (cos θ − 1) − x 2 sin θ )[1 0 0] + ( x1 sin θ + x 2 (cos θ − 1) )[0 1 0]
Así:
= x1 + x1 cos θ − x1 − x 2 sin θ
= x1 cos θ − x 2 sin θ
128
x 2 ' = x 2 + x1 sin θ + x 2 (cos θ − 1)
= x1 sin θ + x 2 cos θ
x3 ' = x3
similar al proceso de hacer las substituciones cíclicas de los parámetros x1Æx2Æx3Æx1 (ver
Sección 3.5.2 ), para obtener la rotación alrededor del eje X1, y si después a y b caen sobre
alrededor del eje X2, con lo cuál se obtienen las tres rotaciones principales en 3D.
4.9.3 Caso nD
x.a = xi
x.b = x j
Por lo tanto:
xk ' = xk 1 ≤ k ≤ n, k ≠ i, j
129
Y esto coincide con la definición de rotaciones principales con el enfoque matricial
(Ecuación 3.19). Por tanto queda demostrada la equivalencia de fórmula con el enfoque
vectorial, con el enfoque matricial del Capítulo 3, para las rotaciones principales, y tal
4.10 Resumen
En este capítulo se desarrolló la formulación de una matriz para rotaciones generales
información con la que se cuente para realizar los giros, es decir, se cuenta con el eje de
rotación o con el plano de rotación. Por tanto, a manera de unificar ambos métodos, se
propusieron los procesos para la obtención del plano de rotación a partir a partir del eje
ambos enfoques para las rotaciones principales nD y para el caso general 2D.
solo pueden ser observados mediante proyecciones geométricas del espacio nD hacia el
forma general.
130
Capítulo 5: Proyecciones
Una proyección es una manera de tomar un objeto y crear una sombra de éste en un
espacio dimensional inferior [Zilli 03]. En la vida diaria quizá sin darnos cuenta, se esta en
contacto con las proyecciones, por ejemplo, en un día soleado se observan sombras de
bidimensional.
profundidad) no puede ser representada, esto es, que si el observador se aleja o acerca de la
sombra, etc. Básicamente el sistema de visión tridimensional de los humanos tiene como
tarea, proyectar una escena 3D en un plano [Hollasch 91] (ver Figura 5.1).
131
Línea de visión
Una analogía que se plantea, es que la retina de un ser de la cuarta dimensión sería un
De esta forma, el sistema de visión de un ser 4D tendrá como tarea, proyectar una
escena 4D a una región 3D (ver Figura 5.1), la cuál puede ser en su momento, proyectada a
132
Línea de visión
proyectado a un espacio (n-1)D. Dicha proyección puede ser aplicada repetitivamente hasta
aunque no se construyeron con el objetivo de explicar las proyecciones, son sin embargo,
llevar la información de una dimensión n a una inferior, esto hace difícil entender lo que se
está mostrando [Zilli 03]. Sin embargo estas proyecciones pueden ser manipuladas y
examinadas mediante técnicas de graficación por computadora, donde se pueden hacer rotar
133
5.3 Tipos de Proyección
En general, las proyecciones transforman puntos de un sistema de coordenadas de
(llamados proyectores) que salen del centro de proyección pasando a través de cada punto
[Anand 93]. En la proyección paralela, las coordenadas de un objeto son llevadas al plano
perspectiva (Figura 5.4), las coordenadas del objeto son llevadas al plano de proyección
por medio de líneas que salen de un centro de proyección colocado a una distancia finita
[Foley 92].
Plano de
proyección
Proyectores
Centro de
proyección a una
distancia infinita
Objeto 3D
obtienen vistas exactas de diversas caras de los objetos, pero esto no da una representación
134
realista del objeto proyectado. Por ejemplo, en la Figura 5.3, las caras del cubo paralelas al
Plano de
proyección
Proyectores
Centro de
proyección
Objeto 3D
dimensiones exactas del objeto, en esta proyección, los objetos distantes se ven más
pequeños que los objetos del mismo tamaño que están más cerca al plano de proyección.
Por ejemplo, en la Figura 5.4, de las caras del cubo paralelas al plano de proyección, al ser
proyectadas, es mayor aquella que está más cercana al plano que la más lejana.
dado un vector director d = (d1 , d 2 , d 3 ) está dada por: p' = p + t ⋅ d , donde para cada valor
de t, se puede determinar un punto p' = ( x1 ' , x 2 ' , x3 ' ) sobre la recta. En general esta
p' = p + t ⋅ d
135
x1 ' = x1 + t ⋅ d1
x 2 ' = x2 + t ⋅ d 2
x3 ' = x3 + t ⋅ d 3
M
x n ' = xn + t ⋅ d n
proyección (en 3D), se crea una proyección paralela ortográfica, en otro caso, se tiene una
x1 ' = x1
x2 ' = x2
esto es, x3=0. De forma matricial y en coordenadas homogéneas se puede escribir como:
⎡1 0 0 0⎤
⎢0 1 0 0⎥⎥
[x1 ' x 2 ' 0 1] = [x1 x2 x3 1] ⋅ ⎢
⎢0 0 0 0⎥
⎢ ⎥
⎣0 0 0 1⎦
136
En la proyección paralela, a los rayos proyectores se les puede asignar una dirección,
dada por el vector d = (d1 , d 2 , d 3 ) y el plano de proyección es el plano principal X1X2, esto
implica que d3 ≠ 0 para que los rayos no sean paralelos al plano de proyección.
p ' = ( x1 ' , x 2 ' ,0) , los valores de x1' y x2' se pueden calcular haciendo uso de la ecuación
x1 ' = x1 + t ⋅ d1
x2 ' = x2 + t ⋅ d 2
0 = x3 + t ⋅ d 3
La última ecuación asegura que p' está en el plano X1X2, y de aquí se puede despeja el
x3 d
x1 ' = x1 − d1 = x1 − 1 x3
d3 d3
x3 d
x 2 ' = x2 − d 2 = x2 − 2 x3
d3 d3
⎡ 1 0 0 0⎤
⎢ 0 1 0 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢− d1 d 3 − d2 d3 0 0⎥
⎢ ⎥
⎣ 0 0 0 1⎦
137
Esta ecuación produce x3'=0, es decir, el plano de proyección es exactamente el plano
X1X2. Se pueden crear fórmulas similares para planos paralelos al plano X1X2, o a los planos
De esta forma, se tiene que en coordenadas homogéneas, el punto p' está dado por
⎛ d d2 ⎞
p ' = ⎜⎜ x1 − 1 x3 x2 − x3 0 1⎟⎟
⎝ d3 d3 ⎠
varias representaciones que sean múltiplos una de la otra. Entonces se pueden eliminar los
denominadores multiplicando toda la matriz por la constante d3, y de esta forma se tiene
⎡ d3 0 0 0⎤
⎢ 0 d3 0 0 ⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢− d1 − d2 0 0⎥
⎢ ⎥
⎣ 0 0 0 d3 ⎦
En 4D los rayos proyectores también pueden tener asignada una dirección, cualquiera
que no sea paralela al volumen de proyección. Si la dirección de proyección está dada por
esto implica que d4 ≠ 0 para que los rayos no sean paralelos al volumen de proyección.
138
Entonces sea p = ( x1 , x 2 , x3 , x 4 ) ∈ ℜ 4 , un punto cuya proyección en el volumen
X1X2X3 es p' = ( x1 ' , x 2 ' , x3 ' ,0) , los valores de x1', x2' y x3' se pueden calcular haciendo uso
x1 ' = x1 + t ⋅ d1
x2 ' = x2 + t ⋅ d 2
x3 ' = x 3 + t ⋅ d 3
0 = x4 + t ⋅ d 4
La última ecuación asegura que p' está en el volumen X1X2X3, y de aquí se puede
se tiene:
x4 d
x1 ' = x1 − d1 = x1 − 1 x4
d4 d4
x4 d
x2 ' = x2 − d 2 = x2 − 2 x4
d4 d4
x4 d
x3 ' = x3 − d 3 = x3 − 3 x4
d4 d4
⎡ d4 0 0 0 0⎤
⎢ 0 d4 0 0 0 ⎥⎥
⎢
[x1 ' x 2 ' x3 ' x 4 ' 1] = [x1 x2 x3 x4 1] ⋅ ⎢ 0 0 d4 0 0⎥
⎢ ⎥
⎢− d1 − d2 − d3 0 0⎥
⎢⎣ 0 0 0 0 d 4 ⎥⎦
p ' = (d 4 x1 − d 1 x 4 d 4 x2 − d 2 x4 d 4 x3 − d 3 x 4 0 d4 ).
139
5.5.3 Proyección Paralela nD→(n-1)D
proyección es el hiperplano principal X1X2X3…Xn-1, esto implica que dn ≠ 0 para que los
X1X2X3…Xn-1 es p ' = ( x1 ' , x 2 ' , x3 'K , x n' −1 ,0) , los valores para xk' para 1 ≤ k ≤ n − 1 se pueden
x1 ' = x1 + t ⋅ d 1
x2 ' = x2 + t ⋅ d 2
x3 ' = x3 + t ⋅ d 3
M
x n' −1 = x n −1 + t ⋅ d n −1
0 = xn + t ⋅ d n
ecuaciones se tiene:
xn d
x1 ' = x1 − d1 = x1 − 1 xn
dn dn
xn d
x2 ' = x2 − d 2 = x2 − 2 xn
dn dn
xn d
x3 ' = x3 − d 3 = x3 − 3 xn
dn dn
M
xn d
xn' −1 = xn −1 − d n −1 = xn −1 − n −1 xn
dn dn
140
Estas ecuaciones se pueden escribir en forma matricial, utilizando coordenadas
⎡ dn 0 0 K 0 0 0⎤
⎢ 0 dn 0 K 0 0 0 ⎥⎥
⎢
⎢ 0 0 O O M M M⎥
⎢ ⎥
[x1 ' x 2 ' K x n ' 1] = [x1 x2 K xn 1] ⋅ ⎢ M M O dn 0 0 0⎥
⎢ 0 0 K 0 dn 0 0⎥
⎢ ⎥
⎢− d1 − d 2 K − d n−2 − d n −1 0 0⎥
⎢ 0 0 K 0 0 0 d n ⎥⎦
⎣
p ' = (d n x1 − d 1 x n d n x2 − d 2 xn K d n x n −1 − d n −1 x n 0 dn ).
proyectores tienen una dirección diferente para cada punto del objeto a proyectar.
proyección en el plano X1X2 es p ' = ( x1 ' , x 2 ' ,0) (Ver Figura 5.5).
141
X2
Plano de
proyección
X3
Centro de
proyección
X1
c = (c1 , c2 , c3 )
Los valores de x1' y x2' se pueden calcular haciendo uso de la ecuación paramétrica de
x1 ' = x1 + t ⋅ ( x1 − c1 )
x2 ' = x2 + t ⋅ ( x2 − c2 )
0 = x 3 + t ⋅ ( x 3 − c3 )
La última ecuación asegura que p' está en el plano X1X2, y de aquí se puede despejar
tiene:
x3 x (c − x3 ) + x1 x3 − c1 x3 c3 x1 − c1 x3
x1 ' = x1 + ( x1 − c1 ) = 1 3 =
c3 − x3 c3 − x3 c3 − x3
x3 x (c − x3 ) + x2 x3 − c2 x3 c3 x2 − c2 x3
x2 ' = x2 + ( x2 − c2 ) = 2 3 =
c3 − x3 c3 − x3 c3 − x3
De esta forma, se tiene que en coordenadas homogéneas el punto p' está dado por
⎛c x −c x c3 x 2 − c 2 x3 ⎞
p ' = ⎜⎜ 3 1 1 3 0 1⎟⎟
⎝ c3 − x3 c3 − x3 ⎠
142
Multiplicando por (c3 − x3 ) se elimina el denominador, y de esta forma, nuevamente
p' = (c3 x1 − c1 x3 c3 x 2 − c 2 x3 0 c 3 − x3 )
⎡ c3 0 0 0⎤
⎢ 0 c3 0 0 ⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢− c1 − c2 0 − 1⎥
⎢ ⎥
⎣ 0 0 0 c3 ⎦
Los valores de x1', x2' y x3' se pueden calcular haciendo uso de la ecuación paramétrica
x1 ' = x1 + t ⋅ ( x1 − c1 )
x2 ' = x2 + t ⋅ ( x2 − c2 )
x3 ' = x 3 + t ⋅ ( x 3 − c 3 )
0 = x4 + t ⋅ ( x4 − c4 )
La última ecuación asegura que p' está en el volumen X1X2X3, y de aquí se puede
ecuaciones se tiene:
143
x4 x (c − x4 ) + x1 x4 − c1 x4 c4 x1 − c1 x4
x1 ' = x1 + ( x1 − c1 ) = 1 4 =
c4 − x4 c4 − x 4 c4 − x4
x4 x ( c − x4 ) + x2 x 4 − c2 x 4 c4 x 2 − c2 x 4
x2 ' = x2 + ( x2 − c 2 ) = 2 4 =
c4 − x 4 c4 − x4 c4 − x 4
x4 x (c − x4 ) + x3 x4 − c3 x4 c4 x3 − c3 x4
x3 ' = x3 + ( x3 − c3 ) = 3 4 =
c4 − x4 c4 − x 4 c4 − x4
De esta forma, se tiene que en coordenadas homogéneas el punto p' está dado por
⎛c x −c x c4 x2 − c2 x4 c 4 x3 − c3 x 4 ⎞
p ' = ⎜⎜ 4 1 1 4 0 1⎟⎟
⎝ c4 − x4 c4 − x4 c4 − x4 ⎠
p' = (c 4 x1 − c1 x 4 c4 x2 − c2 x4 c 4 x 3 − c3 x 4 0 c4 − x4 )
⎡ c4 0 0 0 0⎤
⎢ 0 c4 0 0 0 ⎥⎥
⎢
[x1 ' x 2 ' x3 ' x 4 ' 1] = [x1 x2 x3 x4 1] ⋅ ⎢ 0 0 c4 0 0⎥
⎢ ⎥
⎢− c1 − c2 − c3 0 − 1⎥
⎢⎣ 0 0 0 0 c 4 ⎥⎦
144
Los valores de x1', x2' y x3' se pueden calcular haciendo uso de la ecuación paramétrica
x1 ' = x1 + t ⋅ ( x1 − c1 )
x2 ' = x2 + t ⋅ ( x2 − c2 )
x3 ' = x3 + t ⋅ ( x3 − c3 )
M
x n' −1 = x n −1 + t ⋅ ( x n −1 − c n −1 )
0 = xn + t ⋅ ( xn − cn )
ecuaciones se tiene:
xn x (c − xn ) + x1 xn − c1 xn cn x1 − c1 xn
x1 ' = x1 + ( x1 − c1 ) = 1 n =
cn − xn c n − xn cn − xn
xn x ( c − xn ) + x 2 xn − c2 xn cn x2 − c2 xn
x2 ' = x 2 + ( x2 − c 2 ) = 2 n =
c n − xn cn − xn c n − xn
xn x (c − xn ) + x3 xn − c3 xn cn x3 − c3 xn
x3 ' = x3 + ( x3 − c3 ) = 3 n =
c n − xn c n − xn cn − xn
M
xn x (c − xn ) + xn −1 xn − cn −1 xn cn xn −1 − cn −1 xn
xn' −1 = xn −1 + ( xn −1 − cn −1 ) = n −1 n =
cn − x n cn − x n cn − xn
De esta forma, se tiene que en coordenadas homogéneas el punto p' está dado por
⎛c x −c x cn x2 − c2 xn c n x n −1 − c n −1 x n ⎞
p ' = ⎜⎜ n 1 1 n K 0 1⎟⎟
⎝ cn − xn cn − xn cn − xn ⎠
p' = (c n x1 − c1 x n c n x 2 − c 2 x n K c n x n −1 − c n −1 x n 0 cn − xn )
145
⎡ cn 0 0 K 0 0 0⎤
⎢ 0 cn 0 K 0 0 0 ⎥⎥
⎢
⎢ 0 0 O O M M M⎥
⎢ ⎥
[x1 ' x 2 ' K x n ' 1] = [x1 x2 K xn 1] ⋅ ⎢ M M O cn 0 0 0⎥
⎢ 0 0 K 0 cn 0 0⎥
⎢ ⎥
⎢− c1 − c2 K − cn−2 − c n −1 0 − 1⎥
⎢ 0 0 K 0 0 0 c n ⎥⎦
⎣
espacio inmediato inferior (n-1)D, pero si se desea obtener una proyección nD→kD para
4D→2D en un simple paso, es decir una proyección 4D→2D. Con esta idea, se puede
pensar en tener una proyección nD→2D también en un solo paso, sin embargo, esta
proyección sucesiva.
intermedios.
146
5.8 Proyección Directa nD→2D
A continuación se deducen las fórmulas para crear las matrices de proyección directa,
se consideran los mismos parámetros en cada dimensión para crear los vectores de
⎡ d4 0 0 0 0 ⎤ ⎡ d3 0 0 0 0⎤
⎢ 0
⎢ d4 0 0 0 ⎥⎥ ⎢⎢ 0 d3 0 0 0 ⎥⎥
P4, 2 =⎢ 0 0 d4 0 0 ⎥ ⋅ ⎢− d1 − d2 0 0 0⎥
⎢ ⎥ ⎢ ⎥
⎢− d1 − d2 − d3 0 0⎥ ⎢ 0 0 0 0 0⎥
⎢⎣ 0 0 0 0 d 4 ⎥⎦ ⎢⎣ 0 0 0 0 d 3 ⎥⎦
⎡ d3d 4 0 0 0 0 ⎤
⎢ 0 d3d 4 0 0 0 ⎥⎥
⎢
= ⎢− d 1 d 4 − d2d4 0 0 0 ⎥
⎢ ⎥
⎢ 0 0 0 0 0 ⎥
⎢⎣ 0 0 0 0 d 3 d 4 ⎥⎦
matriz P5,4 con la matriz P4,2 anteriormente calculada, si nuevamente se consideran los
mismos parámetros en cada dimensión para el crear los vectores de dirección, esto es que
147
⎡ d5 0 0 0 0 0 ⎤ ⎡ d3d 4 0 0 0 0 0 ⎤
⎢ 0 d5 0 0 0 0 ⎥⎥ ⎢⎢ 0 d3d 4 0 0 0 0 ⎥⎥
⎢
⎢ 0 0 d5 0 0 0 ⎥ ⎢− d1 d 4 − d2d4 0 0 0 0 ⎥
P5, 2 =⎢ ⎥⋅⎢ ⎥
⎢ 0 0 0 d5 0 0⎥ ⎢ 0 0 0 0 0 0 ⎥
⎢− d1 − d 2 − d 3 − d 4 0 0⎥ ⎢ 0 0 0 0 0 0 ⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ 0 0 0 0 0 d 5 ⎥⎦ ⎢⎣ 0 0 0 0 0 d 3 d 4 ⎥⎦
⎡ d3d 4 d5 0 0 0 0 0 ⎤
⎢ 0 d3d 4 d5 0 0 0 0 ⎥⎥
⎢
⎢− d d d − d 2 d 4 d 5 0 0 0 0 ⎥
=⎢ 1 4 5 ⎥
⎢ 0 0 0 0 0 0 ⎥
⎢ 0 0 0 0 0 0 ⎥
⎢ ⎥
⎣⎢ 0 0 0 0 0 d 3 d 4 d 5 ⎦⎥
Por tanto, en general, se deduce que, si se consideran los mismos parámetros en cada
dimensión para crear los vectores de dirección, d = (d1 , d 2 , d 3 , K, d n ) para todas las
dimensiones, la matriz de proyección paralela directa nD→2D, denotada por Pn,2,está dada
por:
⎡ d3d 4 d5 Kd n 0 0 K 0 0 ⎤
⎢ 0 d3d 4 d5 Kd n 0 K 0 0 ⎥
⎢ ⎥
⎢− d d d K d n − d 2 d 4d5 Kd n 0 K 0 0 ⎥
Pn , 2 =⎢ 1 4 5 ⎥
⎢ 0 0 0 K 0 0 ⎥
⎢ M M M O M M ⎥
⎢ ⎥
⎣⎢ 0 0 0 0 0 d 3 d 4 d 5 K d n ⎦⎥
Su comprobación es sencilla por inducción. Se asume que la matriz Pn,2 es válida para
cualquier n, entonces se prueba para n+1. De esta forma, se debe cumplir que la matriz
148
⎡ d 3 d 4 d 5 K d n +1 0 0 K 0 0 ⎤
⎢ 0 d 3 d 4 d 5 K d n +1 0 K 0 0 ⎥
⎢ ⎥
⎢− d1 d 4 d 5 K d n +1 − d 2 d 4 d 5 K d n +1 0 K 0 0 ⎥
⎢ ⎥
⎢ 0 0 0 K 0 0 ⎥
⎢ M M M O M M ⎥
⎢ ⎥
⎢⎣ 0 0 0 0 0 d 3 d 4 d 5 K d n +1 ⎥⎦
⎡ d n +1 0 0 K 0 0 0 ⎤
⎢ 0 ⎡ d3d 4d5 Kd n 0 0 K 0 0 ⎤
⎢ d n +1 0 K 0 0 0 ⎥⎥ ⎢ ⎥
0 d3d 4d5 Kd n 0 K 0 0
⎢ 0 0 O O M M M ⎥ ⎢ ⎥
⎢ ⎥ ⎢− d 1 d 4 d 5 K d n − d2d4d5 Kdn 0 K 0 0 ⎥
⎢ M M O d n +1 0 0 0 ⎥⋅⎢ ⎥
0 0 0 K 0 0
⎢ 0 0 K 0 d n +1 0 0 ⎥ ⎢ ⎥
⎢ ⎥ ⎢ M M M O M M ⎥
⎢− d 1 − d2 K d n −1 dn 0 0 ⎥ ⎢ ⎥
⎢ 0 0 0 0 0 d 3 d 4 d 5 K d n ⎦⎥
⎢ 0
⎣ 0 K 0 0 0 d n +1 ⎥⎦ ⎣
cada dimensión para crear los centros de proyección (es decir, c = (c1 , c 2 , c3 ) en 3D y
perspectiva 4D→2D (Q4,2), multiplicando las matrices de proyección Q4,3⋅ Q3,2, de esta
forma:
149
⎡ c4 0 0 0 0 ⎤ ⎡ c3 0 0 0 0⎤
⎢ 0
⎢ c4 0 0 0 ⎥⎥ ⎢⎢ 0 c3 0 0 0 ⎥⎥
Q4 , 2 =⎢ 0 0 c 4 0 0 ⎥ ⋅ ⎢− c1 − c2 0 0 − 1⎥
⎢ ⎥ ⎢ ⎥
⎢− c1 − c 2 − c3 0 − 1⎥ ⎢ 0 0 0 0 0⎥
⎢⎣ 0 0 0 0 c 4 ⎥⎦ ⎢⎣ 0 0 0 0 c3 ⎥⎦
⎡ c3 c 4 0 0 0 0 ⎤
⎢ 0 c3 c 4 0 0 0 ⎥⎥
⎢
= ⎢− c1c 4 − c 2 c 4 0 0 − c 4 ⎥
⎢ ⎥
⎢ 0 0 0 0 0 ⎥
⎢⎣ 0 0 0 0 c3 c 4 ⎥⎦
matriz Q5,4 con la matriz Q4,2 anteriormente calculada, si nuevamente se consideran los
mismos parámetros en cada dimensión para el crear los centros de proyección, esto es que
⎡ c5 0 0 0 0 ⎤ ⎡ c3 c 4
0 0 0 0 0 0 ⎤
⎢ 0 c5 0 0 0 ⎥ ⎢ 0
0 c3 c 4 0 0 0 0 ⎥⎥
⎢ ⎥ ⎢
⎢ 0 0 c5 0 0 ⎥ ⎢− c1c 4
0 − c2 c4 0 0 0 − c4 ⎥
Q5, 2 =⎢ ⎥⋅⎢ ⎥
⎢ 0 0 0 c5 0 0⎥ ⎢ 0 0 0 0 0 0 ⎥
⎢− c1 − c 2 − c3 − c4 0 − 1⎥ ⎢ 0 0 0 0 0 0 ⎥
⎢ ⎥ ⎢ ⎥
⎢⎣ 0 0 0 0 0 c5 ⎥⎦ ⎢⎣ 0 0 0 0 0 c3 c 4 ⎥⎦
⎡ c3 c 4 c5 0 0 0 0 0 ⎤
⎢ 0 c3 c 4 c5 0 0 0 0 ⎥⎥
⎢
⎢ − c c c − c 2 c 4 c5 0 0 0 − c 4 c5 ⎥
=⎢ 1 4 5 ⎥
⎢ 0 0 0 0 0 0 ⎥
⎢ 0 0 0 0 0 0 ⎥
⎢ ⎥
⎣⎢ 0 0 0 0 0 c3 c 4 c5 ⎦⎥
Por tanto, en general, se deduce que, si se consideran los mismos parámetros en cada
dimensión para crear los centros de proyección, c = (c1 , c 2 , c3 ,K , c n ) para todas las
dimensiones, la matriz de proyección perspectiva directa nD→2D, denotada por Qn,2 está
dada por:
150
⎡ c3 c 4 c5 K c n 0 0 K 0 0 ⎤
⎢ 0 c3 c 4 c5 K c n 0 K 0 0 ⎥
⎢ ⎥
⎢− c c c K c n − c 2 c 4 c5 K c n 0 K 0 − c 4 c5 K c n ⎥
Qn , 2 =⎢ 1 4 5 ⎥
⎢ 0 0 0 K 0 0 ⎥
⎢ M M M O M M ⎥
⎢ ⎥
⎢⎣ 0 0 0 0 0 c3 c 4 c5 K c n ⎥⎦
válida para cualquier n, entonces se prueba para n+1. De esta forma, se debe cumplir que la
⎡ c3c4 c5 K cn+1 0 0 K 0 0 ⎤
⎢ 0 c3c4 c5 K cn+1 0 K 0 0 ⎥
⎢ ⎥
⎢− c1c4 c5 K cn+1 − c2 c4 c5 K cn+1 0 K 0 − c4 c5 K cn+1 ⎥
⎢ ⎥
⎢ 0 0 0 K 0 0 ⎥
⎢ M M M O M M ⎥
⎢ ⎥
⎣⎢ 0 0 0 0 0 c3c4 c5 K cn+1 ⎦⎥
⎡ c n +1 0 0 K 0 0 0 ⎤
⎢ 0 ⎡ c3 c 4 c5 K c n 0 0 K 0 0 ⎤
⎢ c n +1 0 K 0 0 0 ⎥⎥ ⎢ ⎥
0 c3 c 4 c5 K c n 0 K 0 0
⎢ 0 0 O O M M M ⎥ ⎢ ⎥
⎢ ⎥ ⎢− c1 c 4 c 5 K c n − c 2 c 4 c5 K c n 0 K 0 − c 4 c5 K c n ⎥
⎢ M M O c n +1 0 0 0 ⎥⋅⎢ ⎥
0 0 0 K 0 0
⎢ 0 0 K 0 c n +1 0 0 ⎥ ⎢ ⎥
⎢ ⎥ ⎢ M M M O M M ⎥
⎢− c1 − c2 K c n −1 cn 0 −1⎥ ⎢ ⎥
⎢ 0 0 0 0 0 c 3 c 4 c 5 K c n ⎥⎦
⎢ 0
⎣ 0 K 0 0 0 c n +1 ⎥⎦ ⎣
151
5.9 Resumen
En este capítulo se ha presentado una generalización de las matrices de proyección
sabe que para obtener una proyección de un espacio nD a 2D, se necesitan de proyecciones
perspectiva) para cada dimensión, y con esto se pueden obtener proyecciones desde
Para el caso cuando se comparten los valores para los parámetros de proyección en
un solo paso, cuando se utilizan todas como proyecciones paralelas o perspectivas, pero no
ambas.
152
Capítulo 6: Visualizador de Rotaciones
Multidimensionales
La imaginación es más importante que el conocimiento.
– Albert Einstein
en el monitor de la computadora.
6.1 Características
El visualizador se desarrolló en lenguaje de programación Borland Delphi 7, que
sistema son:
- Hipercubo
- Simplex
- Politopo Cruz
• Proyecciones
- Perspectiva
- Paralela
153
• Definición de un eje (n-2)-dimensional de rotación.
La siguiente imagen, muestra la pantalla principal del visualizador, que contiene los
154
6.2 Descripción
A continuación de describen las diferentes funciones con las que cuenta el
visualizador.
vértice y aristas fueron implementados para poder crear politopos de cualquier dimensión.
a) b)
c)
Figura 6.2 Ejemplos de generación de politopos 5D: a) Hipercubo, b) Simplex, c) Politopo Cruz.
155
6.2.2 Proyecciones
proyecciones sucesivas analizadas en la Sección 5.7 . Se pueden definir los valores para las
paralela, todas las proyecciones sucesivas serán paralelas, lo mismo para el caso de la
A continuación se presenta la pantalla donde se pueden especificar los valores para las
tiene la posibilidad de generar valores aleatorios. También se cuenta con la opción de salvar
Figura 6.3 Pantalla de captura de direcciones o centros de proyección (ejemplo de caso 5D).
156
Modificando los datos la dirección o centros de proyección, se pueden obtener vistas
desde diferentes ángulos de visión en el espacio nD. La Figura 6.4 muestra diferentes
a) b)
c) d)
control “Main rotacion from”, se especifica la dirección del giro, de un eje Xa a un Xb, y la
animación se lleva a cabo al presionar los botones con las flechas junto este control. La
157
flecha a la derecha realiza el giro positivo (del eje Xa al Xb), la flecha hacia la izquierda
La Figura 6.5 muestra un ejemplo, con cuatro imágenes de la rotación principal del
eje X1 al eje X5 de un hipercubo 5D. Observando con atención, se puede ver que la parte del
hipercubo que cae sobre el volumen principal X2X3X4, queda fijo durante la rotación.
a) b)
c) d)
Figura 6.5 Ejemplo de rotación principal de un hipercubo 5D, del eje X1 al eje X5: a) 0°, b) 70°, c) 190°,
d) 300°.
158
A continuación se presenta la pantalla donde se pueden especificar los valores para
los vértices que forman del hiperplano o eje (n-2)-dimensional de rotación. Estos valores
pueden ser introducidos manualmente, o pueden ser generados a partir de los valores del
plano de rotación (ver Sección 6.2.5 ). En caso de que los vectores a y b que definen al
En esta pantalla, también se cuenta con la opción de salvar y cargar archivos que contienen
Figura 6.6 Pantalla de captura del hiperplano (n-2)-dimensional de rotación (ejemplo de caso 5D).
cruz 5D, alrededor del hiperplano 3D definido por los puntos de la Figura 6.6. En el
sistema, se puede apreciar que el hiperplano (n-2)D de rotación está representado con líneas
de color rojo.
159
a) b)
c) d)
Figura 6.7 Ejemplo de rotación de un politopo cruz 5D alrededor de un hiperplano arbitrario 3D: a) 0°,
b) 30°, c) 140°, d) 260°.
x en nD., permite llevar a cabo las rotaciones en un plano de rotación definido por dos
los vectores que definen al plano de rotación. Estos valores se pueden ser introducidos
manualmente, o pueden ser generados a partir de los valores del hiperplano de rotación (ver
Sección 6.2.4 ). En caso de que algunos de los puntos del hiperplano de rotación sean
160
Figura 6.8 Pantalla de captura del hiperplano (n-2)-dimensional de rotación (ejemplo de caso 5D).
La Figura 6.8 presenta los datos para los vectores a, b y su punto de aplicación,
generados a partir de los datos de la Figura 6.6. En la Figura 6.7 se puede apreciar dibujado
puede apreciar al vector a mediante una línea de color amarilla, y al vector b mediante una
línea de color verde. El fenómeno de la rotación sobre este plano tiene el mismo
del plano de rotación y enseguida generando los valores del hiperplano de rotación.
Con los datos de un plano de rotación, es posible generar automáticamente, los puntos
de un hiperplano (n-2)-dimensional que sea ortogonal a este plano de rotación. Para el caso
de los datos de la Figura 6.9, los valores del hiperplano de rotación generados se muestran
en la siguiente figura.
161
Figura 6.10 Ejemplo de hiperplano de rotación 3D, generado a partir de un plano de rotación 5D.
5D, en el plano definido en la Figura 6.9 (o alrededor del hiperplano de la Figura 6.10). En
a) b)
c) d)
Figura 6.11 Ejemplo de rotación de un hipercubo 5D en un plano de rotación arbitrario: a) 0°, b) 90°,
c) 160°, d) 320°.
162
6.3 Resumen
En este capítulo se ha presentado el desarrollo de un visualizador para rotaciones
especificar los valores de los n-1 puntos que definen un eje de rotación, y los valores de los
163
Capítulo 7: Conclusiones y Trabajo a Futuro.
Lo más bello que podemos experimentar es el misterio de las cosas
– Albert Einstein
aplicación directa, pretenden aportar una base matemática, que pueda ser utilizada en
7.1.1 Politopos
(hipercubo, simplex y politopo cruz) y las características que deben cumplir para
el orden en que tienen que ser unidos para crear las aristas.
7.1.2 Rotaciones
translación es utilizada dentro del proceso para realizar las rotaciones multidimensionales
164
concluyendo que, una forma de realizar las rotaciones en un espacio n-dimensional en
soporte (n-2)-dimensional define el eje de rotación alrededor del cual se desea realizar el
giro.
4, donde se muestra que es posible llevar a cabo una rotación, cuando se proporciona un
Ambos enfoques presentados son válidos por las propiedades matemáticas que se
para mostrar que se obtienen los mismos resultados para el caso de las rotaciones
principales, esto no es tan trivial para el caso las rotaciones generales. Sin embargo, se
demostró, que es posible determinar el plano de rotación a partir del eje (n-2)-dimensional
caso del monitor de la computadora, donde son mostrados los resultados de las rotaciones
multidimensionales. Además, se demostró que, cuando se comparten los valores para las
165
direcciones (proyección paralela) o centros de proyección (proyección perspectiva) la
proyección de nD a 2D, puede realizarse en un solo paso, proponiendo una sola matriz de
Para mostrar gráficamente los resultados del trabajo obtenidos en esta investigación,
la computadora.
Gracias a este visualizador, es posible observar de manera gráfica, que los dos
mismo comportamiento. Esto además refuerza la validez de los procesos propuestos para la
7.2.1 Visualización
ellos, para obtener la lista menor de puntos que represente al mismo politopo, de esta forma
computadora.
querer analizar las rotaciones. Por tanto, se puede definir un proceso que permita obtener
166
los vértices y aristas del conjunto de celdas (n-1)-dimensionales paralelas, para poder
visualizar su transformación durante las rotaciones. Esta idea se puede extender, para poder
permita generar una escena como si fuera vista desde una cámara, es decir, la cámara
colocada en un punto From, estará apuntando hacia un punto At. Inicialmente se plantea la
existencia de una cámara virtual para cada espacio, por tanto, para generar una escena de un
cada una de las cámaras virtuales, de otra forma, mucha de la información se puede
167
7.2.2 Determinación de la Dirección de Giros Positivos en nD
la dirección del giro positivo en dimensiones superiores a 3D. Ya que para el caso 3D
conocido, de acuerdo a la regla de la mano derecha, se tiene que si se coloca el dedo pulgar
derecho en la dirección positiva del eje de rotación, el giro natural del resto de los dedos
indica la dirección del giro positivo alrededor de dicho eje. Sin embargo no se cuentan con
(n-2)-dimensional de rotación.
eje de rotación son ortogonales entre sí, y que las rotaciones tienen el mismo
comportamiento, sin embargo en las primeras etapas del desarrollo de este proceso, en
documento preserva el sentido de los giros en cualquier dimensión, sin embargo, queda
En la sección 4.6 se presenta el método para llevar a cabo una rotación en un plano
definido por dos vectores, cuya restricción es que sean ortonormales. Sin embargo, si no se
cuenta con los vectores con tales características, y solo se tiene dos vectores x e y que sean
linealmente independientes (condición suficiente para definir un plano), debe ser posible
168
obtener dos vectores ortonormales que definan exactamente al mismo plano. A
plano de rotación, que puede ser sin problemas representado por los vectores de las bases
Entonces, â y b̂ definen el mimo plano que x e y, salvo que los primeros son
ortonormales.
vector adicional para poder trabajar con el producto cruz 4D. Y en general en nD se
169