Rotaciones Multidimensionales

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 169

Capítulo 1: Introducción

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

familiarmente conocidas como: izquierda o derecha, arriba o abajo, y atrás o adelante,

cualquier otra dirección es simplemente una combinación de estas direcciones básicas.

Matemáticamente, se habla de los tres ejes en coordenadas cartesianas, llamados

comúnmente X, Y y Z.

Figura 1.1 Ejes en el espacio 3D.

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

no limita la cantidad de dimensiones espaciales posibles, ya que es posible tener

dimensiones menores, por ejemplo, el espacio 1D que consiste de una línea recta que se

extiende al infinito, o el espacio 2D que consiste de un plano que se extiende

indefinidamente en alto y ancho, por tanto, matemáticamente es posible tratar con

dimensiones superiores a 3D.

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

El hablar de múltiples dimensiones puede resultar extraño para mucha gente si se

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

tienen experiencias explorando el concepto de dimensiones.

En un sentido más familiar, cuando alguien hace referencia a una dimensión,

frecuentemente se entiende que se está midiendo algún fenómeno en alguna dirección,

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.

1.2.2 La Cuarta Dimensión

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

los eventos reales están permanentemente detenidos [Dewdney 92].

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,

capaz de ver todas las perspectivas simultáneamente.

Figura 1.2 “El retrato de Dora Maar” de Picasso.1

Y en la pintura “Desnudo descendiendo unas escaleras” de Marcel Duchamp, se ve

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

la vez, si el tiempo fuera la cuarta dimensión.

1
Imagen tomada de http://www.abcgallery.com/

3
Figura 1.3 “Desnudo descendiendo unas escaleras” de Marcel Duchamp.2

1.2.3 Dimensiones Espaciales

La presente investigación se realiza considerando todas las dimensiones como

espaciales, es decir, la generalización del espacio Euclidiano 3D hacia otras dimensiones.

Por lo tanto, en el resto de este documento, cuando se hable de las dimensiones 3D, 4D, y

en general nD, serán dimensiones espaciales.

En 3D, un punto o localización puede ser completamente señalado con tres

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

concepción adecuada de lo que significa es está limitación, es necesario imaginarse el

existir en un espacio más limitado al que se vive [Hinton 84].

Un trabajo relacionado al entendimiento de la limitación tridimensional, es el libro

“Flatland” de Edwin A. Abbott, donde se propone un método para la conceptualización del

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

seres 2D la existencia de la tercera dimensión (ver [Abbott, 84]).

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

perpendiculares no son solamente imposibles de dibujar, sino además imposibles de

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

matemáticamente en espacios superiores.

En el espacio 4D, entonces, es posible tener cuatro líneas perpendiculares entre si, en

5D cinco líneas perpendiculares entre si y en general en nD, es posible tener n líneas

perpendiculares entre sí.

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

Figura 1.4 Ejes en el espacio 4D.

Los ejes en 3D son nombrados normalmente por las letras X, Y y Z, y en la analogía

para 4D se incluyó un cuarto eje nombrado con la letra W. Sin embargo, está forma de

representación no resulta adecuada para manejar una generalización en múltiples

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

equivalencia de los ejes X, Y, y Z respectivamente. En general la generalización del espacio

Euclidiano en nD está definido por el conjunto: ℜ n = {x = ( x1 , x 2 ,..., x n ) : xi ∈ ℜ} .

1.3 Analogías Dimensionales


La cuarta dimensión comenzó a ser estudiada a principios del siglo XVIII por

matemáticos de diferentes partes del mundo que abrieron sus mentes hacia nuevos tipos de

geometría.

Uno de los grandes adelantos fue el descubrimiento de geometría no-euclideana que

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

principio de geometrías de dimensiones superiores.

6
Estos desarrollos cambiaron el punto de vista de la geometría, la cual estaba estancada

en descripciones de experiencias físicas en un espacio 3D. En un principio hubo un

rechazo, debido a la incapacidad de visualizar lo que la geometría de dimensiones mayores

podría significar. Tiempo después, Edwin Abbott, Carl Friedrich Gauss y Hermann von

Helmholtz desarrollaron analogías dimensionales para fortalecer la capacidad de

imaginación para entender las nuevas creaciones matemáticas [Banchoff 96].

Una de las analogías dimensionales desarrolladas, fue la secuencia de figuras

análogas, como el caso de la extrusión (barrido) ortogonal para la producción de politopos

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

trata el tema de creación automática de politopos.

1.4 Visualización de Dimensiones Superiores

1.4.1 Visualización de lo que Antes era Imposible

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

como diagramas o modelos matemáticos [Banchoff 96].

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;

el microscopio de Leeuwenhoek que permite explorar microorganismos; y el

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

capacidades físicas, por ver lo anteriormente no-visible.

Igualmente asombroso resulta la habilidad hoy en día de visualizar fenómenos en

otras dimensiones. Gracias a los desarrollos en graficación por computadora, es posible

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

pantalla, se está enfrentando un reto similar a cuando se descubrieron el telescopio o los

rayos X [Banchoff 96]. Hoy en día, se vive una era en que se está aprendiendo a interpretar

imágenes de dimensiones superiores.

1.4.2 La Graficación por Computadora para Visualizar Otras Dimensiones

La graficación por computadora tradicional está basada en fórmulas matemáticas,

para crear objetos tridimensionales parecidos a la realidad, transformándolos y

proyectándolos en un dispositivo de salida bidimensional (como el monitor de la

computadora o un proyector).

Y es gracias al uso de las matemáticas, que es posible extender el concepto de

proyecciones a cualquier número de dimensiones. Se puede por ejemplo:

8
• Construir figuras geométricas análogas al cubo, tetraedro, octaedro, por mencionar

algunas, a cualquier número de dimensiones, llamados politopos a partir de 4D.

• Hacer una generalización a cualquier número de dimensiones de transformaciones

geométricas como el escalamiento, la translación o la rotación.

• Y proyectar objetos que existen en un espacio n-dimensional a un espacio de menor

dimensionalidad.

1.4.3 ¿Para que Visualizar Dimensiones Superiores?

Alguien a M. Faraday: ¿Para que sirve su trabajo?

M. Faraday: ¿Cuál es el objetivo de un niño? Crecer para ser un hombre.

La inquietud por tratar de visualizar los fenómenos en espacios dimensionales más

allá de lo que el hombre puede ver y acceder directamente, además de la curiosidad de

analizarlos, tiene una amplia variedad de aplicaciones útiles, un caso simple es la

graficación de funciones, una de las mejores formas para entender funciones es

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

ser capaz de visualizarlas en esa misma dimensión [Eusebeia 06].

Trabajos relacionados a la visualización de dimensiones superiores son, el de [dos

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

dominio, por tanto se requiere de cuatro dimensiones espaciales.

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,

red, green y blue.

Así como estos casos, hay diversas aplicaciones en donde la geometría

multidimensional comienza a ser utilizada. Y partiendo de trabajos previos de rotaciones en

casos conocidos 3D y algunos en 4D, en esta investigación se realiza la generalización de

las rotaciones generales, aportando las ecuaciones que permitan rotar un objeto en cualquier

espacio nD.

1.5 Definición del Problema

1.5.1 Rotaciones Multidimensionales

Para poder rotar un cuerpo en 2D, es necesario contar con 1 punto, que será el eje

puntual (cero-dimensional) de rotación. En 3D, es necesario contar con dos puntos no

coincidentes que determinan un segmento, cuya línea de soporte define un eje lineal

(unidimensional) de rotación. Con esta analogía, en 4D es necesario proporcionar tres

puntos no colineales que determinan un triángulo, cuyo plano de soporte será el eje

(bidimensional) de rotación. Entonces, en general en el espacio nD, es necesario

proporcionar (n-1) puntos no cohiperplanares (analogía de colineales y coplanares) cuyo

hiperplano de soporte será el eje (n-2) dimensional de rotación.

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

puntos que determinen un segmento arbitrario de rotación.

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

eje (n-2)-dimensional de rotación arbitrario.

1.5.2 Proyecciones Multidimensionales

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

utilizar como dispositivo de visualización al monitor de la computadora, se tiene que llevar

la información a 2D. Para esto es necesario introducir proyecciones.

En general, las proyecciones transforman puntos de un sistema de coordenadas de

dimensión n hacia puntos de otro sistema de dimensión menor a n [Foley 92]. Las

proyecciones conocidas formalmente como proyecciones geométricas planares, se dividen

en dos clases: paralelas y perspectivas. La principal diferencia entre ellas es que las

proyecciones perspectivas dan un efecto realista de la imagen proyectada, pero se pierde la

forma exacta y dimensiones del objeto, cosa contraria en la proyección paralela [Anand

93].

Por tanto, para visualizar los fenómenos de las rotaciones multidimensionales, es

necesario llevar a cabo un estudio de las proyecciones para poder mostrar los resultados en

el monitor de la computadora.

1.6 Estado del Problema


El trabajo presentado en [Aguilera 04], propone un método para llevar a cabo

rotaciones de objetos n-dimensionales no sólo alrededor de los hiperplanos principales, sino

11
también rotaciones alrededor de un hiperplano arbitrario. Pero hace falta, profundizar en

este método y reescribirlo formalmente.

En algunos casos, puede resultar más conveniente proporcionar el plano de rotación

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

proporcionando una información distinta.

Si se desea visualizar los fenómenos en nD (n>3), es necesario también, generalizar

las proyecciones tanto paralelas como perspectivas, que permitan llevar los fenómenos que

suceden en nD, mediante proyecciones sucesivas, hacia el espacio 2D para visualizarlas en

el monitor de la computadora.

Las figuras comúnmente utilizadas en la geometría multidimensional son los

politopos regulares, en su representación de modelos de alambres. Para probar los

resultados de las rotaciones multidimensionales, se utilizaran los modelos de alambres de

los politopos regulares: hipercubo, simplex y politopos cruz.

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

será de utilidad para poder generar y trazar politopos nD automáticamente y colocarlos en

el hiperespacio.

Para poder observar las rotaciones multidimensionales y comenzar a entender lo que

está sucediendo, se puede observar el hiperespacio por medio de proyecciones en el

12
monitor de la computadora. Para ello, se propone el desarrollo de un visualizador de

rotaciones multidimensionales, que permita realizar cualquier rotación definida, y de esta

forma poder observar los fenómenos en el hiperespacio desde diferentes ángulos de visión.

1.7 Objetivos

1.7.1 Objetivo General

El principal objetivo de esta investigación, consiste en encontrar las ecuaciones para

las rotaciones principales que se deben llevar a cabo para simular las rotaciones de

politopos nD tanto alrededor de un eje (hiperplano) (n-2)-dimensional de rotación, como en

un plano de rotación dado, y mostrar el resultado a través de proyecciones en el monitor de

la computadora.

1.7.2 Objetivos Específicos

Los objetivos logrados en esta investigación son:

• En base a la topología de politopos regulares descrita en [Pérez-Águila 03] y [Pérez-

Águila 06] se proponen algoritmos para la generación automática de coordenadas y

trazo de aristas.

• Se definen las matrices generales de IDA y REGRESO (matrices necesarias para

llevar un objeto n-dimensional sobre un hiperplano principal, realizar los giros, y

regresar el objeto a su ubicación inicial).

• Se determinan las ecuaciones para las rotaciones multidimensionales cuando se

proporciona el plano de rotación en lugar del eje de rotación.

13
• Se generalizan las matrices de proyección paralela y perspectiva nD→(n-1)D,

partiendo de lo propuesto en [Aguilera 07] para proyecciones 3D→2D utilizando la

ecuación paramétrica de la recta.

• Se presenta el desarrollo de un visualizador de rotaciones multidimensionales.

1.7.3 Alcances y Limitaciones

• Obtención de las matrices generales de IDA y REGRESO nD.

• Obtención de la matriz general de rotación nD alrededor de un eje (n-2)-dimensional.

• Obtención de las ecuaciones de rotación en un plano de rotación arbitrario en nD.

• Trazo de politopos regulares nD de manera automática.

• Observación de los fenómenos de rotación mediante la implementación de un

visualizador de rotaciones multidimensionales.

• Para fines de observación de los resultados de rotaciones multidimensionales, se crean

y se rotan sólo esqueletos (modelos de alambres) de los politopos regulares nD

(hipercubo, simplex y politopo cruz).

1.8 Estructura de la Tesis


La estructura del presente documento después de este capítulo, es la siguiente:

• Capítulo 2: Politopos. Este capítulo presenta un análisis de las propiedades

geométricas de los politopos regulares y de algunas analogías para la construcción de

politopos de dimensiones superiores. Aquí se presenta la primera aportación de esta

investigación, proponiendo algoritmos para generar de forma automática los vértices

y el orden en que tienen que ser trazadas las aristas.

14
• Capítulo 3: Transformaciones Geométricas. En este capítulo es un repaso de

algunas propiedades geométricas y su extensión a otras dimensiones, poniendo mayor

énfasis en la rotación. Al final se presenta otra contribución, que es el desarrollo

formal para obtener las matrices generales de IDA y REGRESO, presentando

finalmente, la ecuación para la rotación general alrededor de un hiperplano (n-2)-

dimensional de rotación arbitrario.

• Capítulo 4: Rotaciones Multidimensionales con Operaciones Vectoriales. En este

capítulo se analiza el proceso para obtener una ecuación para las rotaciones

multidimensionales utilizando un enfoque vectorial, en el cual, en lugar de

proporcionar el eje (n-2)-dimensional de rotación, se proporciona el plano de rotación.

La contribución en este capítulo es, proponer un proceso para poder determinar el

plano de rotación en base al eje (n-2)-dimensional de rotación dado y viceversa, y de

esta forma aplicar cualquier enfoque dada cualquier información.

• Capítulo 5: Proyecciones. Este capítulo presenta un análisis de las proyecciones

tanto paralelas como perspectivas. Aquí, la contribución es la generalización de las

proyección paralela y perspectiva nD→(n-1)D y la propuesta de las matrices de

proyección nD→2D en un solo paso, cuando se consideran los mismos parámetros en

cada proyección sucesiva.

• Capítulo 6: Visualizador de Rotaciones Multidimensionales. En este capítulo se

describe el desarrollo de un visualizador de rotaciones multidimensionales en el

lenguaje de programación Delphi, donde se implementan los algoritmos y ecuaciones

presentadas en esta investigación.

15
• Capítulo 7: Conclusiones y Trabajo Futuro. En este capítulo final, se presentan un

resumen de los resultados obtenidos en este trabajo, y se plantean posibles líneas de

investigación futuras.

1.9 Resumen
En este capítulo se presentó una introducción al tema de las dimensiones, y la

generalización del espacio Euclidiano a otras dimensiones, además de plantear los

objetivos que se persiguen en esta investigación. El siguiente tema a desarrollar, es el

análisis de las propiedades geométricas de los politopos regulares nD, para poder generar

de manera automática su representación en el modelo de alambres.

16
Capítulo 2: Politopos
Un politopo es la generalización del concepto Polígono (2D), o poliedro (3D) a

cualquier otra dimensión. Geométricamente un politopo es una región finita de un espacio

n-dimensional encerrado por un número finito de hiperplanos. La parte de un politopo que

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

dado v de un politopo, están en un hiperplano, estos son los vértices de un politopo de

dimensión (n-1), llamado figura vértice del politopo original en v [Hausmann 94].

2.1 Politopos Regulares


Los politopos regulares han sido materia estudios matemáticos desde hace mucho

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

como sólidos platónicos (el tetraedro, el cubo, el octaedro, el dodecaedro y el icosaedro) y

en cuatro dimensiones existen seis politopos regulares (simplex 4D, hipercubo 4D, 16-

celdas, 24-celdas, 120-celdas y 600-celdas).

En dimensiones superiores existen solo tres politopos regulares “canónicos”, el

simplex, el hipercubo y el politopo cruz [Coxeter 63].

Se pueden definir los politopos regulares inductivamente de la siguiente forma: Un

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

Antes de continuar con la explicación de los politopos, se definen algunos de los

ángulos entre elementos geométricos (rectas, planos e hiperplanos) en el espacio nD.

2.1.1.1 Ángulo Entre Dos Rectas

En 2D, el ángulo (rectilíneo) es la porción del plano limitada por dos rectas con

origen en un mismo punto llamado vértice del ángulo.

vértice del ángulo


ángulo

Figura 2.1 Ángulo entre dos rectas.

2.1.1.2 Ángulo Entre Dos Planos

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

Figura 2.2 Ángulo entre dos planos.

18
2.1.1.3 Ángulo Entre Dos Hiperplanos

En [Olshevsky 06] se generaliza la definición de ángulo diédrico en cualquier

dimensión, diciendo que: Un ángulo diédrico es el ángulo entre dos hiperplanos (n-1)D que

se intersectan en el espacio nD. Dos hiperplanos (n-1)D se intersectan en un hiperplano

(n-2)D. Para medir el ángulo diédrico, se escoge un punto en el hiperplano (n-2)D y se

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.

2.1.2 Politopos Regulares 2D

Un politopo 2D (polígono) es una figura formada por una secuencia de puntos

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

polígono se dice que es convexo si dados cualesquiera dos puntos p y q interiores al

polígono, el segmento rectilíneo pq está completamente contenido dentro del polígono

[Do Carmo 76].

A2 A2
A3 A3
q A5
p
A1 p q
A1
A5 A4 A4
a) b)

Figura 2.3 Ejemplo de polígonos: a) convexo, b) no convexo.

Los polígonos tienen un ángulo rectilíneo en cada arista, que es el ángulo interior que

se forma donde dos lados adyacentes coinciden.

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

interiores iguales a 60°.

• Cuadrado, un cuadrilátero con todos sus lados iguales y ángulos interiores iguales a

90°.

• Pentágono regular, un polígono de cinco lados iguales y cinco ángulos interiores

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°.

60° 90° 108° 120° 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.

2.1.3 Politopos Regulares 3D

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

es el número de caras incidentes a cada vértice del poliedro.

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.

Cada ángulo diédrico en un poliedro regular tiene el mismo valor.

Se sabe que sólo los siguientes cinco poliedros regulares (también conocidos cómo

sólidos platónicos) son posibles [Coxeter 63]:

• 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°

60° x 3 = 180° < 360°

Figura 2.5 El tetraedro y el desenvolvimiento de su frontera.

• Cubo {4, 3} cuya frontera está formada por seis cuadrados, con tres localizados en

cada vértice. Todos sus ángulos diédricos miden 90°.

90° 90°

90°
90°

90° x 3 = 270° < 360°

Figura 2.6: El cubo y el desenvolvimiento de su frontera.

• 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°

60° x 4 = 240° < 360°

Figura 2.7: El octaedro y el desenvolvimiento de su frontera.

• 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°

108° x 3 = 324° < 360°

Figura 2.8: El Dodecaedro y el desenvolvimiento de su frontera.

• 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°

60° x 5 = 300° < 360°

Figura 2.9: El Icosaedro y el desenvolvimiento de su frontera.

22
No se puede tener otros poliedros debido a las siguientes restricciones:

1. Al menos tres caras deben localizarse en un vértice, y,

2. Cuando se traza sobre un plano el desenvolvimiento de un poliedro, debe haber una

abertura en alguna parte entre las caras adyacentes que están alrededor de un vértice,

de otra forma el poliedro no puede ser envuelto en la tercera dimensión, en otras

palabras, el ángulo cubierto por las caras que se localizan en un vértice debe ser

menor a 360°.

Estas restricciones excluyen todas excepto las siguientes posibilidades: Se pueden

poner tres, cuatro o cinco triángulos equiláteros, o tres cuadrados, o tres pentágonos

equiláteros alrededor de un vértice, a partir de los hexágonos, ni siquiera se pueden colocar

tres debido al tamaño de sus respectivos ángulos internos (Ver sección 2.1.2 ). Esto lleva

exactamente a los cinco sólidos platónicos:

1. El tetraedro (Figura 2.5) tiene alrededor de cada vértice 3 triángulos equiláteros,

entonces se cumple que 60° x 3 = 180° < 360°.

2. El cubo (Figura 2.6) tiene alrededor de cada vértice 3 cuadrados, entonces se cumple

que 90° x 3 = 270° < 360°.

3. El octaedro (Figura 2.7) tiene alrededor de cada vértice 4 triángulos equiláteros,

entonces se cumple que 60° x 4 = 240° < 360°.

4. El dodecaedro (Figura 2.8) tiene alrededor de cada vértice 3 pentágonos equiláteros,

entonces se cumple que 108° x 3 = 324° < 360°.

5. El icosaedro (Figura 2.9) tiene alrededor de cada vértice 3 triángulos equiláteros,

entonces se cumple que 60° x 5 = 300° < 360°.

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

que se mantienen las siguientes restricciones:

1. Al menos tres celdas deben localizarse en una arista.

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

politopo no puede ser envuelto en la cuarta dimensión, en otras palabras, el ángulo

diédrico cubierto por las celdas que se localizan en una arista debe ser menor a 360°).

Estas restricciones, aunado al tamaño de los ángulo diédricos en los poliedros

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

regulares 4D (Figura 2.10 – Figura 2.15).

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

4D regular tiene el mismo valor.

• Simplex 4D {3, 3, 3} formado por cinco tetraedros, conteniendo tres por arista,

entonces se cumple que 70.53° x 3 = 211.59° < 360°.

24
Figura 2.10: Simplex 4D.

• Hipercubo {4, 3, 3} formado de seis cubos, conteniendo tres por arista, entonces se

cumple que 90° x 3 = 270° < 360°.

Figura 2.11: Hipercubo 4D.

• 16-celdas {3, 3, 4}, también conocido como politopo cruz, está formado por dieciséis

tetraedros, conteniendo cuatro por arista, entonces se cumple que 70.53° x 4 =

282.12° < 360°.

Figura 2.12: 16 celdas (Politopo cruz 4D).

• 24-celdas {3, 4, 3} formado por 24 octaedros, conteniendo tres por arista, entonces se

cumple que 109.45° x 3 = 328.35° < 360°.

25
Figura 2.13: 24-celdas.

• 120-celdas {5, 3, 3} formado por 120 dodecaedros, conteniendo tres por arista,

entonces se cumple que 116.57° x 3 = 349.71° < 360°.

Figura 2.14: 120-celdas.

• 600-celdas {3, 3, 5} formado por 600 tetraedros, conteniendo cinco por arista,

entonces se cumple que 70.53° x 5 = 352.65° < 360°.

26
Figura 2.15: 600 celdas.

2.1.5 Politopos Regulares nD

Por argumentos similares al caso 3D y 4D, en dimensiones superiores existen solo 3

politopos regulares “canónicos”, el simplex, el hipercubo y politopo cruz [Coxeter 63].

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

politopo nD regular tiene el mismo valor.

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),

que a su vez se deriva del punto (0D).

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

examinar cómo un fenómeno geométrico en particular en una dimensión inferior (n-1) se

relaciona con un fenómeno geométrico equivalente la dimensión n, y entonces aplicar el

mismo principio para relacionar está dimensión a una más grande (n+1).

2.2.1 Hipercubo

Se puede hacer uso de una extrusión (barrido) ortogonal para la producción de

politopos de la familia del hipercubo para dimensiones superiores.

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;

ninguna de estas propiedades puedes describirse en este espacio.

Figura 2.16: Un punto.

En 1D para poder obtener un segmento de recta a partir de un punto, se crea un eje, y

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

coordenadas de los vértices se pueden representar con (1) bit.

X1 Representación Representación
binaria decimal
0 0 0
1 1 1

Tabla 2.1: Vértices del segmento de recta.

El cuadrado se puede obtener de manera análoga, creando un nuevo eje perpendicular

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

4 vértices y 4 aristas (Figura 2.18). El nuevo eje representado por X2 es la segunda

dimensión.

X2 X2

01 11

X1 X1
00 10

Figura 2.18: Extrusión ortogonal de un segmento de recta para formar un cubo.

Si uno de los vértices del cuadrado se posiciona en el origen y los vértices se

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

representar con (2) bits.

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

Tabla 2.2: Vértices del cuadrado.

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

Figura 2.19: Extrusión ortogonal de un cuadrado para formar un cubo.

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

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
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

Tabla 2.3: Vértices del cubo.

Siguiendo esta analogía dimensional, se puede obtener el hipercubo 4D a partir del

cubo, desplazándolo hacia un eje perpendicular a su espacio de soporte, a una distancia

igual a la medida de uno de sus lados. El camino formado por la extrusión produce un

hipercubo 4D, el cuál tiene 16 vértices, 32 aristas, 24 caras, y 8 volúmenes [Pérez-Águila

03] (Figura 2.20). El nuevo eje representado por X4 es la cuarta dimensión.

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

poner perpendicularmente a los otros tres en 3D (o en su proyección en 2D), no implica

que el hipercubo o la cuarta dimensión no exista.

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

Figura 2.20: Extrusión ortogonal de un cubo para formar un hipercubo 4D.

Nuevamente, si uno de los vértices del hipercubo se posiciona en el origen y los

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

pueden representar con (4) bits.

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

Tabla 2.4: Vértices del hipercubo 4D.

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

hipercubo nD con la creación de la tabla de la representación binaria de los números

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.

X1 X2 … Xn-1 Xn Representación Representación


binaria Decimal
0 0 …0… 0 0 00…00 0
0 0 …0… 0 1 00…01 1
M M O M M M M
1 1 …1… 0 1 11…01 2n-3
1 1 …1… 1 0 11…10 2n-2
1 1 …1… 1 1 11…11 2n-1

Tabla 2.5: Vértices del hipercubo nD.

2.2.2 Simplex

En [Coxeter 63] se muestra un método para obtener la familia de politopos llamados

simplex. Se comienza por el espacio 0D, donde al igual que en el caso del hipercubo 0D, el

único objeto cero-dimensional que existe es el punto (Figura 2.21).

Figura 2.21: Simplex 0D (un punto).

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

Figura 2.22: Simplex 1D (segmento de recta).

Si un punto se encuentra sobre el origen, y el otro a una distancia de una unidad, se

pueden definir los vértices del simplex 1D como muestra la Tabla 2.6. Y las coordenadas

de los vértices se pueden representar con (1) bit.

X1 Representación Representación
binaria decimal
0 0 0
1 1 1

Tabla 2.6: Vértices del simplex 1D (segmento de recta).

Esta definición de vértices coincide con el caso del hipercubo 1D, pero aquí en la

primera dimensión terminan las similitudes.

En 2D se debe seleccionar un punto fuera del eje donde se encuentra el segmento de

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

politopo simplex que se generará para las simulaciones, no será regular.

X2 X2

01

X1 X1
00 10

Figura 2.23: Simplex 2D (triángulo).

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

Tabla 2.7: Vértices simplex 2D (triángulo).

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

tetraedro trazado no es regular.

X2 X2

010

X1 000 100 X1

001
X3 X3

Figura 2.24: Simplex 3D (tetraedro).

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

Tabla 2.8: Vértices del simplex 3D (tetraedro).

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).

Nuevamente, el simplex 4D formado no es regular.

X2 X2

0100
X4 X4
0001

X1 0000 1000 X1

0010
X3 X3

Figura 2.25: Simplex 4D.

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

Tabla 2.9: Vértices del simplex 4D.

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

definir los vértices de un simplex nD (recordando que no es regular) con la creación de la

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.

X1 X2 … Xn-1 Xn Representación Representación


binaria Decimal
0 0 …0… 0 0 00…00 0
0 0 …0… 0 1 00…01 20=1
0 0 …0… 1 0 00…10 21=2
M M O M M M M
0 1 …0… 0 0 01…00 2n-2
1 0 …0… 0 0 10…00 2n-1

Tabla 2.10: Vértices del simplex nD.

2.2.3 Politopo Cruz

Utilizando la metodología presentada en [Coxeter 63] se hará la construcción de la

familia de politopos llamados politopos cruz. Al igual que en las metodologías anteriores,

se comienza por el espacio 0D, con el punto (Figura 2.26).

Figura 2.26: Politopo cruz 0D (un punto).

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

Figura 2.27: Politopo cruz 1D (segmento de recta).

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

Tabla 2.11: Vértices del politopo cruz 1D (segmento de recta).

El politopo cruz 1D coincide en forma con el hipercubo 1D y el simplex 1D, pero no

geométricamente en esta definición, pues difieren en la coordenada de uno de sus vértices

(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

Figura 2.28: Politopo cruz 2D (cuadrado).

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

Tabla 2.12: Vértices del politopo cruz 2D (cuadrado).

Aunque en esta definición, el politopo cruz 2D difiere con el simplex 2D, coincide

con el hipercubo 2D en forma, pero no geométricamente. Y es aquí, en la segunda

dimensión, donde terminan las similitudes entre estos politopos.

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

caras triangulares (Figura 2.29).

X2 X2

0,1,0

0,0,-1

X1 X1
-1,0,0 1,0,0

0,0,1
X3 X3 0,-1,0

Figura 2.29: Politopo cruz 3D (octaedro).

De esta forma, el politopo cruz 3D está representado por los siguientes vértices que se

muestran en la Tabla 2.13.

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

Tabla 2.13: Vértices del politopo cruz 3D (octaedro).

Siguiendo esta analogía dimensional, se puede obtener el politopo cruz 4D a partir del

octaedro, se crea el eje X4 y se generan dos nuevos puntos en el origen y se desplazan en

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

caras y 16 volúmenes [Pérez-Águila 03] (Figura 2.30).

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

Figura 2.30: Politopo cruz 4D.

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

Tabla 2.14: Vértices del politopo cruz 4D.

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

coordenadas de los vértices se pueden representar con (n) bits.

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

Tabla 2.15: Vértices del politopo cruz nD.

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

de politopos de dimensiones mayores a 4D.

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

y tener finalmente el modelo de alambres de los politopos regulares nD.

Como se observó anteriormente, todos los politopos se derivan del punto 0D, pero

para fines de representación y propuesta de la solución del trazo automático, se comienza

desde el espacio 2D.

2.3.1 Trazo del Hipercubo

Un cuadrado 2D está representado por los siguientes vértices:

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

Figura 2.31: El hipercubo 2D (cuadrado) y sus vértices.

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).

La observación geométrica que ayuda a realizar el trazo de este cuadrado es la

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

0= (0,0) forma aristas con los vértices: 1= (0,1) y 2= (1,0).

Se toma ahora el vértice 1= (0, 1) y si se hace la misma operación, se observa que

éste forma aristas sólo con el vértice 3= (1, 1). El vértice 2= (1,0) forma una arista con el

vértice 3= (1,1). El vértice 3 no contiene 0’s.

No se consideran los cambios de 1 a 0, porque esto representaría una arista ya

contemplada, solo que el trazo sería en sentido inverso.

Entonces siguiendo esta idea para el trazo del cuadrado 2D, las aristas se forman con

los pares de vértices de la Tabla 2.16:

0= (0,0) Æ 1= (0,1) 1= (0,1) Æ 3= (1,1)


0= (0,0) Æ 2= (1,0) 2= (1,0) Æ 3= (1,1)
Tabla 2.16: Las cuatro aristas del cuadrado.

Un cubo 3D está representado por los siguientes vértices.

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

Figura 2.32: El hipercubo 3D (cubo) y sus vértices.

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

5= (1,0,1). El vértice 2= (0,1,0) forma aristas con 3= (0,1,1) y 6= (1,1,0), y si se continua

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.

0= (0,0,0) Æ 1= (0,0,1) 1= (0,0,1) Æ 5= (1,0,1) 4= (1,0,0) Æ 5= (1,0,1)


0= (0,0,0) Æ 2= (0,1,0) 2= (0,1,0) Æ 3= (0,1,1) 4= (1,0,0) Æ 6= (1,1,0)
0= (0,0,0) Æ 4= (1,0,0) 2= (0,1,0) Æ 6= (1,1,0) 5= (1,0,1) Æ 7= (1,1,1)
1= (0,0,1) Æ 3= (0,1,1) 3= (0,1,1) Æ 7= (1,1,1) 6= (1,1,0) Æ 7= (1,1,1)
Tabla 2.17: Las 12 aristas del cubo.

En su representación decimal, la forma en que se pueden obtener los vértices que

forman aristas con un vértice dado es, tan solo sumar 2k al valor del vértice, donde k es la

posición donde se hace el cambio de 0 a 1.

Por ejemplo:

0 0 1

0 1 1 1 0 1
22 21 20 22 21 20

Figura 2.33: Ejemplo de cálculo de aristas para el cubo.

Se observa que el vértice 1 forma aristas con los vértices obtenidos de las

operaciones: (1+21) = 3 y (1+22) = 5.

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

generación de los vértices de un hipercubo nD conociendo su dimensión.

Las variables importantes del siguiente algoritmo son:

• dimension = Variable entera para indicar la dimensión del politopo a crear, sirve

como parámetro para determinar la cantidad de dígitos del número binario.

• numVertex = Variable entera para el número de vértices de politopo a crear.

• vertexChar = Variable tipo cadena para almacenar el número binario del vértice.

• vertexes[v][i] = Arreglo de arreglos de enteros del vértice, donde v indica el número

de vértice, e i, cada uno de los dígitos que forman el vértice.

• edges[i] = Arreglo de enteros para representar la secuencia en que deben ser trazados

los vértices para el trazo de las aristas.

Procedure getEdges (dimension)


numVertex = 2dimension
i=0;
for v=0 to numVertex-2
vertexChar=bin(v,dimension)
vertexChar=reverse(vertex) //Invertir el número binario
//Se buscan los lugares donde hay 0’s
for k=0 to dimension-1
if vertexChar[k]==’0’
edges[i]=v
v2 = v+2k
edges[i+1]=v2;
i=i+2;
vertexes[v][dimension-k]=0;
endIf
vertexes[v][dimension-k]=1;
endFor
endFor
endProcedure

La entrada del algoritmo es la dimensión del hipercubo, 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, 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

unir los últimos 2 vértices del arreglo.

Para un hipercubo 4D, el algoritmo indica que el trazo de aristas deber ser de acuerdo

a los pares de vértices de la Tabla 2.18:

0= (0,0,0,0)Æ1= (0,0,0,1) 3= (0,0,1,1)ÆB= (1,0,1,1) 8= (1,0,0,0)ÆC= (1,1,0,0)


0= (0,0,0,0)Æ2= (0,0,1,0) 4= (0,1,0,0)Æ5= (0,1,0,1) 9= (1,0,0,1)ÆB= (1,0,1,1)
0= (0,0,0,0)Æ4= (0,1,0,0) 4= (0,1,0,0)Æ6= (0,1,1,0) 9= (1,0,0,1)ÆD= (1,1,0,1)
0= (0,0,0,0)Æ8= (1,0,0,0) 4= (0,1,0,0)ÆC= (1,1,0,0) A= (1,0,1,0)ÆB= (1,0,1,1)
1= (0,0,0,1)Æ3= (0,0,1,1) 5= (0,1,0,1)Æ7= (0,1,1,1) A= (1,0,1,0)ÆE= (1,1,1,0)
1= (0,0,0,1)Æ5= (0,1,0,1) 5= (0,1,0,1)ÆD= (1,1,0,1) B= (1,0,1,1)ÆF= (1,1,1,1)
1= (0,0,0,1)Æ9= (1,0,0,1) 6= (0,1,1,0)Æ7= (0,1,1,1) C= (1,1,0,0)ÆD= (1,1,0,1)
2= (0,0,1,0)Æ3= (0,0,1,1) 6= (0,1,1,0)ÆE= (1,1,1,0) C= (1,1,0,0)ÆE= (1,1,1,0)
2= (0,0,1,0)Æ6= (0,1,1,0) 7= (0,1,1,1)ÆF= (1,1,1,1) D= (1,1,0,1)ÆF= (1,1,1,1)
2= (0,0,1,0)ÆA= (1,0,1,0) 8= (1,0,0,0)Æ9= (1,0,0,1) E= (1,1,1,0)ÆF= (1,1,1,1)
3= (0,0,1,1)Æ7= (0,1,1,1) 8= (1,0,0,0)ÆA= (1,0,1,0)
Tabla 2.18: Las 32 aristas del hipercubo 4D.

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

n= 4, se tiene que: 4(2 3 ) = 32 .

2.3.2 Trazo del Simplex

Un simplex 2D (triángulo) está representado por los siguientes vértices:

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

Figura 2.34: El simplex 2D (triángulo) y sus vértices.

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

por los pares de vértices que se muestran en la Tabla 2.19.

0= (0,0) Æ 1= (0,1) 1= (0,1) Æ 2= (1,0)


0= (0,0) Æ 2= (1,0)
Tabla 2.19: Las tres aristas del triángulo.

Un simplex 3D (tetraedro) está representado por los siguientes vértices

X2

X1 X2 X3 Representación Representación 010


binaria Decimal
0 0 0 000 0
0 0 1 001 1
0 1 0 010 2 000 X1
100
1 0 0 100 4

001
X3

Figura 2.35: El simplex 3D (tetraedro) y sus vértices.

Se comienza nuevamente con el vértice 0= (0,0,0), y se une con el resto de vértices,

1= (0,0,1), 2= (0,1,0) y 4= (0,1,0), enseguida se toma el vértice 1= (0,0,1) y se une con

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:

0= (0,0,0) Æ 1= (0,0,1) 1= (0,0,1) Æ 2= (0,1,0)


0= (0,0,0) Æ 2= (0,1,0) 1= (0,0,1) Æ 4= (1,0,0)
0= (0,0,0) Æ 4= (1,0,0) 2= (0,1,0) Æ 4= (1,0,0)
Tabla 2.20: Las seis aristas del tetraedro.

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

0≤k<n-1, donde n es la dimensión del politopo.

Con esta idea, se puede definir en general, un algoritmo para la generación de los

vértices del simplex nD.

Las variables importantes del siguiente algoritmo son:

• dimension = Variable entera para indicar la dimensión del politopo a crear, sirve

como parámetro para determinar la cantidad de dígitos del número binario.

• numVertex = Variable entera para el número de vértices de politopo a crear.

• vertexChar = Variable tipo cadena para representar el número binario del vértice.

• vertexes[v][i] = Arreglo de arreglos de enteros del vértice, donde v indica el número

de vértice, e i, cada uno de los dígitos que forman el vértice.

• edges[i] = Arreglo de enteros para representar la secuencia en que deben ser trazados

los vértices para el trazo de las aristas.

Procedure getEdges (dimension)


numVertex = dimension+1
vertexes[0]= bin(0,dimension)
for v=-1 to numVertex-2 //Creación de vértices
if v==-1 //Caso especial del 0.
vertexChar[v]=bin(0,dimension);
else
vertexChar[v]=bin(2v,dimension)
for k=0 to dimension-1
if vertexChar[k]==’0’
vertexes[v+1][k]=0
else
vertexes[v+1][k]=1
endfor
//Creación de aristas
i=0;
for v=0 to numVertex-2
for k=v+1 to numVertex-1
edges[i]=v;
edges[i+1]=k;
i=i+2;
endfor
endProcedure

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

los pares de vértices de la Tabla 2.21:

0= (0,0,0,0) Æ 1= (0,0,0,1) 1= (0,0,0,1) Æ 4= (0,1,0,0)


0= (0,0,0,0) Æ 2= (0,0,1,0) 1= (0,0,0,1) Æ 8= (1,0,0,0)
0= (0,0,0,0) Æ 4= (0,1,0,0) 2= (0,0,1,0) Æ 4= (0,1,0,0)
0= (0,0,0,0) Æ 8= (1,0,0,0) 2= (0,0,1,0) Æ 8= (1,0,0,0)
1= (0,0,0,1) Æ 2= (0,0,1,0) 4= (0,1,0,0) Æ 8= (1,0,0,0)
Tabla 2.21: Las 10 aristas del simplex 4D.

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

para n= 4, se tiene que:

⎛ 4 + 1⎞ 5! 120
C ⎜⎜ ⎟⎟ = = = 10
⎝ 2 ⎠ 2!(5 − 2)! 12

2.3.3 Trazo del Politopo Cruz.

Un politopo cruz 2D (cuadrado) está representado por los siguientes vértices:

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

Figura 2.36: El politopo cruz 2D (cuadrado) y sus vértices.

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,

representados por los pares de vértices que se muestran en la Tabla 2.22.

0= (-1,0) Æ 2= (0,-1) 1= (1,0) Æ 2= (0,-1)


0= (-1,0) Æ 3= (0,1) 1= (1,0) Æ 3= (0,1)
Tabla 2.22: Las cuatro aristas del politopo cruz 2D (cuadrado).

Un politopo cruz 3D (octaedro) está representado por los siguientes vértices:

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

Figura 2.37: El politopo cruz 3D (octaedro) y sus vértices.

Utilizando la misma observación, se comienza con el vértice 0= (-1,0,0), se une con

2= (0,-1,0), 3= (0,1,0), 4= (0,0,-1) y 5=(0,0,1), después se toma el vértice 1= (1,0,0), que

también se une a 2= (0,-1,0), 3= (0,1,0), 4= (0,0,-1) y 5= (0,0,1), enseguida se toma el

vértice 2= (0,-1,0), que se une a 4= (0,0,-1) y 5=(0,0,1), y finalmente el vértice 3= (0,1,0) se

50
une a 4= (0,0,-1) y 5=(0,0,1), de esta forma los trazos de aristas quedan determinadas por la

unión de los pares de vértices de la Tabla 2.23.

0= (-1,0,0) Æ 2= (0,-1,0) 1= (1,0,0) Æ 2= (0,-1,0) 2= (0,-1,0) Æ 4= (0,0,-1)


0= (-1,0,0) Æ 3= (0,1,0) 1= (1,0,0) Æ 3= (0,1,0) 2= (0,-1,0) Æ 5= (0,0,1)
0= (-1,0,0) Æ 4= (0,0,-1) 1= (1,0,0) Æ 4= (0,0,-1) 3= (0,1,0) Æ 4= (0,0,-1)
0= (-1,0,0) Æ 5= (0,0,1) 1= (1,0,0) Æ 5= (0,0,1) 3= (0,1,0) Æ 5= (0,0,1)
Tabla 2.23: Las 12 aristas del politopo cruz 3D (octaedro).

Algo importante notar aquí es que los vértices del politopo cruz están representados

por la permutación de las coordenadas (±1, 0, . . . , 0), con n dígitos, donde n es la

dimensión del politopo.

Con esta idea, se puede definir en general, un algoritmo para la generación de los

vértices del politopo cruz nD.

Las variables importantes del siguiente algoritmo son:

• dimension = Variable entera para indicar la dimensión del politopo a crear.

• numVertex = Variable entera para el número de vértices de politopo a crear.

• vertexes[v][i] = Arreglo de arreglos de enteros del vértice, donde v indica el número

de vértice, e i, cada uno de los dígitos que forman el vértice.

• edges[i] = Arreglo de enteros para representar la secuencia en que deben ser trazados

los vértices para el trazo de las aristas.

La entrada del algoritmo es la dimensión del politopo cruz, 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 de los

algoritmos para el hipercubo y el simplex.

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

acuerdo a los pares de vértices de la Tabla 2.24:

0= (-1,0,0,0) Æ 2= (0,-1,0,0) 1= (1,0,0,0) Æ 4= (0,0,-1,0) 3= (0,1,0,0) Æ 4= (0,0,-1,0)


0= (-1,0,0,0) Æ 3= (0,1,0,0) 1= (1,0,0,0) Æ 5= (0,0,1,0) 3= (0,1,0,0) Æ 5= (0,0,1,0)
0= (-1,0,0,0) Æ 4= (0,0,-1,0) 1= (1,0,0,0) Æ 6= (0,0,0,-1) 3= (0,1,0,0) Æ 6= (0,0,0,1)
0= (-1,0,0,0) Æ 5= (0,0,1,0) 1= (1,0,0,0) Æ 7= (0,0,0,1) 3= (0,1,0,0) Æ 7= (0,0,0,-1)
0= (-1,0,0,0) Æ 6= (0,0,0,-1) 2= (0,-1,0,0) Æ 4= (0,0,-1,0) 4= (0,0,-1,0) Æ 6= (0,0,0,1)
0= (-1,0,0,0) Æ 7= (0,0,0,1) 2= (0,-1,0,0) Æ 5= (0,0,1,0) 4= (0,0,-1,0) Æ 7= (0,0,0,-1)
1= (1,0,0,0) Æ 2= (0,-1,0,0) 2= (0,-1,0,0) Æ 6= (0,0,0,1) 5= (0,0,1,0) Æ 6= (0,0,0,1)
1= (1,0,0,0) Æ 3= (0,1,0,0) 2= (0,-1,0,0) Æ 7= (0,0,0,-1) 5= (0,0,1,0) Æ 7= (0,0,0,-1)

Tabla 2.24: Las 24 aristas del politopo cruz 4D.

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

03], donde para n= 4, se tiene que:

⎛ 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

posibles 3 de ellos: el hipercubo, el simplex y el politopo cruz.

Se analizó la representación topológica de estos tres politopos regulares y se

propusieron los algoritmos para su trazo automático. La finalidad de esto, es poder generar

automáticamente objetos n-dimensionales, a los cuales se les pueda aplicar las

transformaciones geométricas n-dimensionales, analizadas en el siguiente capítulo, y poder

obtener los efectos de tales transformaciones.

53
Capítulo 3: Transformaciones Geométricas
En matemáticas, nunca entiendes las cosas, sólo te acostumbras a ellas.

– John von Newmann

En este capítulo se hace un breve repaso de transformaciones geométricas 2D y 3D

que son ampliamente conocidas y su extensión a otras dimensiones. Existen varias

transformaciones geométricas, pero sólo se revisan el escalamiento, la translación y la

rotación. Se analizan las analogías que hay de estas transformaciones para llevarlas a 4D y

su generalización a cualquier espacio nD, poniendo mayor énfasis en la rotación, donde se

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.

En la mayoría de los libros y trabajos relacionados con transformaciones geométricas,

se revisan estos temas organizándolos en orden de dimensiones, es decir, primero se

explican todas las transformaciones 2D y enseguida las transformaciones 3D. En este

trabajo se propone un orden distinto, donde primero se explican los temas por

transformación, es decir, primero se explica la transformación de escalamiento en todas sus

dimensiones, enseguida la translación y por último la rotación. Esta idea es con la intensión

de darle al lector un mejor entendimiento de las extensiones de las trasformaciones 2D a 3D

y a dimensiones superiores.

3.1 Representación Matricial y Coordenadas Homogéneas


En el área de la graficación por computadora, es común encontrar la representación de

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

por la derecha para obtener el nuevo punto p'.

p = [x1 x 2 ] , p ' = [x1 x2 ] = p ⋅ M

La segunda notación es representando las coordenadas de un punto p como vectores

columna, en este caso una matriz de transformación M, multiplica al punto por la izquierda

para obtener el nuevo punto p'.

⎡ 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

embargo se puede obtener una matriz de transformación en la otra notación calculando su

transpuesta.

No todas las transformaciones son aplicadas a un punto como una multiplicación de

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.

En coordenadas homogéneas, a cada punto 2D se le agrega una tercera coordenada, de

esta forma, en lugar de representar los puntos como p = ( x1 , x 2 ) son representados como

una terna p = ( x1 , x 2 , ω ) , al mismo tiempo se dice que un par de coordenadas homogéneas

( 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

tanto la terna (0, 0, 0) no es válida. Si la coordenada ω ≠ 0, la terna ( x1 , x 2 , ω ) se puede

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

elección conveniente es hacer el valor de ω = 1, así cada posición 2D es representada con

las coordenadas homogéneas ( x1 , x 2 ,1) . A los puntos con la forma ( x1 , x 2 ,0) se les llama

puntos al infinito, los cuales no se tratarán en esta investigación.

En general para cualquier dimensión las coordenadas homogéneas de un punto p en

nD se escribe como p = ( x1 , x 2 ,K , x n , ω ) , el cuál es un vector de longitud n+1.

3.2 Extensión de las Transformaciones a Otras Dimensiones


Las trasformaciones geométricas 3D son extensiones de las transformaciones

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.

Como se verá enseguida, muchas de las operaciones matemáticas utilizadas en las

transformaciones de escalamiento y translación se extienden fácilmente, pero la rotación no

es tan intuitiva y requiere de un poco más de análisis, para comprender su generalización a

otras dimensiones.

3.3 Escalamiento
El escalamiento permite cambiar el tamaño de un objeto expandiéndolo o

contrayéndolo en sus dimensiones.

56
3.3.1 Escalamiento 2D

El escalamiento 2D implica el cambio de tamaño de un polígono, donde cada punto

p = ( x1 , x 2 ) es transformado por la multiplicación de dos factores de escalamiento: s1 y s2 a

lo largo de los ejes X1 y X2 respectivamente, de esta forma, las coordenadas del nuevo punto

p ' = ( x1 ' , x 2 ' ) se obtienen como:

x1 ' = x1 ⋅ s1
x2 ' = x2 ⋅ s2

Sea s = ( s1 , s 2 ) el vector de factores de escalamiento, y S(s) la matriz de

escalamiento, en coordenadas homogéneas el escalamiento de un punto p en 2D se puede

expresar como el producto matricial p' = p ⋅ S ( s ) , es decir:

⎡ s1 0 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢ 0 s2 0⎥⎥
⎣⎢ 0 0 1⎦⎥

Ecuación 3.1: Expresión matricial para el escalamiento 2D.

La Figura 3.1 muestra el efecto de escalamiento de una figura con s1 = 1.5 y s2 = 2.

X2 X2

5 5

4 4

3 3

2 2

1 1

X1 X1
1 2 3 4 5 1 2 3 4 5

Figura 3.1: Ejemplo de escalamiento 2D.

57
3.3.2 Escalamiento 3D

Extendiendo la idea anterior a 3D, el escalamiento implica el cambio de tamaño de un

poliedro, donde cada punto p = ( x1 , x 2 , x3 ) es transformado por la multiplicación de tres

factores de escalamiento: s1, s2 y s3 a lo largo de los ejes X1, X2 y X3 respectivamente, de

esta forma, las coordenadas del nuevo punto p' = ( x1 ' , x 2 ' , x3 ' ) se obtienen como:

x1 ' = x1 ⋅ s1
x2 ' = x2 ⋅ s2
x3 ' = x3 ⋅ s 3

Sea s = ( s1 , s 2 , s3 ) el vector de factores de escalamiento, y S(s) la matriz de

escalamiento, en coordenadas homogéneas el escalamiento de un punto p en 3D se puede

expresar como el producto matricial p' = p ⋅ S ( s ) , es decir:

⎡ 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⎦

Ecuación 3.2: Expresión matricial para el escalamiento 3D.

La Figura 3.2 muestra el efecto de escalamiento de una figura con s1 = 2, s2 = 2.5 y

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

Figura 3.2: Ejemplo de escalamiento 3D.

3.3.3 Escalamiento 4D

Extendiendo nuevamente la idea anterior a 4D, el escalamiento implica el cambio de

tamaño de un politopo 4D, donde cada punto p = ( x1 , x 2 , x3 , x 4 ) es transformado por la

multiplicación de cuatro factores de escalamiento: s1, s2, s3 y s4 a lo largo de ejes que

forman el espacio 4D, de esta forma, las coordenadas del nuevo punto

p ' = ( x1 ' , x 2 ' , x3 ' , x 4 ' ) se obtienen como:

x1 ' = x1 ⋅ s1
x2 ' = x2 ⋅ s2
x3 ' = x3 ⋅ s 3
x4 ' = x4 ⋅ s4

Sea s = ( s1 , s 2 , s3 , s 4 ) el vector de factores de escalamiento, y S(s) la matriz de

escalamiento, en coordenadas homogéneas el escalamiento de un punto p en 4D se puede

expresar como el producto matricial p' = p ⋅ S ( s ) , es decir:

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⎥⎦

Ecuación 3.3: Expresión matricial para el escalamiento 4D.

3.3.4 Escalamiento nD

De esta forma, el escalamiento nD implica el cambio de tamaño de un politopo nD en

todas sus dimensiones, como se observó anteriormente, se puede representar el

escalamiento nD en su forma matricial, donde los factores de escalamiento se localizan en

la diagonal principal, cada uno colocado en la columna que le corresponde a su respectivo

eje. Así, se obtiene la expresión matricial de escalamiento para cualquier dimensión:

⎡ 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⎦⎥

Ecuación 3.4: Expresión matricial para el escalamiento nD.

En general, la matriz de escalamiento S(s) para nD en coordenadas homogéneas

tendrá un tamaño de (n+1) × (n+1), en la cual, si se sustituyen los valores para n=2 y n=3,

se obtienen las matrices de escalamiento 2D y 3D respectivamente.

3.4 Translación
La translación permite desplazar un objeto a lo largo de sus dimensiones, como

resultado se obtiene un cambio de posición.

60
3.4.1 Translación 2D

La translación 2D implica el desplazamiento de un polígono, donde cada punto

p = ( x1 , x 2 ) es trasladado d1 unidades en el eje X1 y d2 unidades en el eje X2, de esta forma,

las coordenadas del nuevo punto p' = ( x1 ' , x 2 ' ) , se obtienen como:

x1 ' = x1 + d1
x2 ' = x2 + d 2

Sea d = (d 1 , d 2 ) el vector de distancias, y T(d) la matriz de translación, en

coordenadas homogéneas la translación de un punto p en 2D se puede expresar como el

producto matricial p' = p ⋅ T (d ) , es decir:

⎡1 0 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢ 0 1 0⎥⎥
⎢⎣d1 d2 1⎥⎦

Ecuación 3.5: Expresión matricial para la translación 2D.

La Figura 3.3 muestra el efecto de translación de una figura con d1 = 1 y d2 = 2.

X2 X2
5 5

4 4

3 3

2 2

1 1

X1 X1
1 2 3 4 5 1 2 3 4 5

Figura 3.3: Ejemplo de translación 2D.

3.4.2 Translación 3D

Basándose en la idea anterior, se tiene que la translación 3D implica el

desplazamiento de un poliedro, donde cada punto p = ( x1 , x 2 , x3 ) es trasladado d1 unidades

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

Sea d = (d1 , d 2 , d 3 ) el vector de distancias, y T(d) la matriz de translación, en

coordenadas homogéneas la translación de un punto p en 3D se puede expresar como el

producto matricial p' = p ⋅ T (d ) , es decir:

⎡1 0 0 0⎤
⎢0 1 0 0⎥⎥
[x1 ' x 2 ' x3 ' 1] = [x1 x2 x3 1] ⋅ ⎢
⎢0 0 1 0⎥
⎢ ⎥
⎣d1 d2 d3 1⎦

Ecuación 3.6: Expresión matricial para la translación 3D.

La Figura 3.4 muestra el efecto de translación de una figura con d1 = 2, d2 = 0 y d3 = 2.

X2 X2
5 5

4 4

3 3

2 2

1 1

X1 X1
1 2 3 4 5 1 2 3 4 5
1 1
2 2
3 3
X3 4 X3 4
5 5

Figura 3.4: Ejemplo de translación 3D.

62
3.4.3 Translación 4D

Nuevamente tomando como base esta idea, se tiene que la translación 4D implica el

desplazamiento de un politopo 4D, donde cada punto p = ( x1 , x 2 , x3 , x 4 ) es trasladado por

la suma de cuatro distancias: d1, d2, d3, d4 a cada uno de los ejes que forman el espacio 4D,

de esta forma, las coordenadas del nuevo punto p ' = ( x1 ' , x 2 ' , x3 ' , x 4 ' ) se obtiene como:

x1 ' = x1 + d1
x2 ' = x2 + d 2
x3 ' = x 3 + d 3
x4 ' = x4 + d 4

Sea d = (d1 , d 2 , d 3 ,d 4 ) el vector de distancias, y T(d) la matriz de translación, en

coordenadas homogéneas la translación de un punto p en 4D se puede expresar como el

producto matricial p' = p ⋅ T (d ) , es decir:

⎡1 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⎥⎦

Ecuación 3.7: Expresión matricial para la translación 4D.

3.4.4 Translación nD

De esta forma, la translación nD implica el desplazamiento de un politopo nD

sumando parámetros de distancias a todas sus dimensiones, como se observó anteriormente,

se puede representar la translación nD en su forma matricial, donde los parámetros de

distancia se localizan en el último renglón de la matriz, cada uno colocado en la columna

que le corresponde a su respectivo eje, y colocando valores de 1 en la diagonal principal.

Así, se obtiene la expresión matricial de translación para cualquier dimensión:

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⎥⎦

Ecuación 3.8: Expresión matricial para la translación nD.

En general, la matriz de translación T(d) para nD en coordenadas homogéneas tendrá

un tamaño de (n+1) × (n+1), en la cual, si se substituyen los valores para n=2 y n=3, se

obtienen las matrices de translación 2D y 3D respectivamente.

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

La rotación de un objeto en 2D se lleva a cabo alrededor de un punto, que es el eje

puntual (cero-dimensional) de rotación. Las rotaciones principales 2D son aquellas que se

llevan a cabo alrededor del origen, las rotaciones sobre cualquier otro punto arbitrario se

llaman rotaciones generales 2D. En esta Sección 3.5 , se analizan sólo las rotaciones

principales para todas las dimensiones, en la Sección 3.6 se discuten las rotaciones

generales.

Para generar una rotación, se especifica el ángulo de rotación θ, y el punto de rotación

(pivote) sobre el cuál el objeto será rotado. Los ángulos de rotación positivos definen una

rotación en sentido contrario a las manecillas del reloj sobre el punto pivote (del eje X1 al

eje X2), entonces los ángulos de rotación negativos producen una rotación en el sentido de

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

que pasa a través del punto pivote.

Si el punto pivote se encuentra sobre el origen (Figura 3.5), se tiene que: r es la

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

Figura 3.5: Rotación de un punto en 2D alrededor del origen.

Utilizando coordenadas polares, el punto p = ( x1 , x 2 ) se puede escribir como

p = (r , φ ) y el punto p ' = ( x1 ' , x 2 ' ) como p ' = (r , φ + θ ) . Pasando después estos puntos de

coordenadas polares a rectangulares se tiene que:

x1 = r cos(φ ) x 2 = r sin(φ )
x1 ' = r cos(φ + θ ) x 2 ' = r sin(φ + θ )

Aplicando algunas propiedades trigonométricas:

x1 ' = r cos(θ + φ ) = r cos φ cos θ − r sin φ sin θ


x 2 ' = r sin(θ + φ ) = r cos φ sin θ + r sin φ cos θ

Substituyendo los valores de x1 = r cos(φ ) y x 2 = r sin(φ ) se obtienen las ecuaciones para

rotar un punto p = ( x1 , x 2 ) alrededor del origen dado un ángulo θ:

65
x1 ' = x1 cos θ − x 2 sin θ

x2 ' = x1 sin θ + x2 cosθ

Ecuación 3.9: Fórmulas para la rotación 2D alrededor del origen.

Sea R(θ) la matriz de rotación sobre el origen, en coordenadas homogéneas la

rotación de un punto p alrededor del origen en 2D se puede expresar como el producto

matricial p' = p ⋅ R(θ ) , es decir:

⎡ cos θ sin θ 0⎤
[x1 ' x 2 ' 1] = [x1 x2 1] ⋅ ⎢⎢− sin θ cos θ 0⎥⎥
⎢⎣ 0 0 1⎥⎦

Ecuación 3.10: Expresión matricial para la rotación 2D.

La Figura 3.6 muestra el efecto de rotación de una figura con θ = 45°.

X2 X2

2 2

1 1

X1 X1
-1 -2 1 2 -1 -2 1 2

-1 -1

-2 -2

Figura 3.6: Ejemplo de rotación 2D.

3.5.2 Rotaciones 3D

A diferencia de la rotación en el espacio 2D, donde para hacer rotar un objeto se

necesita un punto (cero-dimensional), en 3D para hacer rotar un objeto se necesitan dos

puntos no coincidentes que determinan un segmento de recta, cuya línea de soporte define

un eje lineal (uni-dimensional) de rotación.

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 rotaciones principales.

Por convención, los ángulos de rotación positivos producen rotaciones en contra de

las manecillas del reloj sobre el eje de rotación, esto es si se observa el giro desde la parte

positiva del eje hacia el origen. Otra forma de determinar la dirección de un giro positivo es

mediante la regla de la mano derecha (Figura 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.

Para entender el concepto de rotación en 3D como una extensión de la rotación 2D,

hay que recordar que la rotación 2D es el giro sobre el eje de rotación, que es perpendicular

al plano X1X2, el cual en 3D corresponde al eje X3, entonces se tiene la primera de las

rotaciones principales [Hearn 95].

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

formulas para la rotación 2D (Ecuación 3.9) a 3D como: [Hearn 95]

x1 ' = x1 cos θ − x 2 sin θ

x 2 ' = x1 sin θ + x 2 cos θ

x3 ' = x3

Ecuación 3.11: Fórmulas para la rotación 3D alrededor del eje X3.

Sea R3(θ) la matriz de rotación alrededor del eje X3, en coordenadas homogéneas la

rotación de un punto p alrededor de dicho eje, se puede expresar como el producto matricial

p ' = p ⋅ R3 (θ ) , es decir:

⎡ 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

Figura 3.8: Ejemplo de rotación 3D sobre el eje X3.

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

como se muestra en la Figura 3.9

X2 X3 X1

X1 X2 X3

X3 X1 X2

Figura 3.9: Permutaciones cíclicas de los ejes coordenados [Hearn 95].

Entonces, aplicando estas substituciones cíclicas en la Ecuación 3.11, se obtienen las

ecuaciones para la rotación alrededor del eje X1 dado un ángulo θ.

x 2 ' = x 2 cos θ − x 3 sin θ x1 ' = x1

x 3 ' = x 2 sin θ + x 3 cos θ x 2 ' = x 2 cos θ − x 3 sin θ

x1 ' = x1 x 3 ' = x 2 sin θ + x 3 cos θ

Ecuación 3.13: Fórmulas para la rotación 3D alrededor del eje X1.

Sea R1(θ) la matriz de rotación alrededor del eje X1, en coordenadas homogéneas la

rotación de un punto p alrededor de dicho eje, se puede expresar como el producto matricial

p ' = p ⋅ R1 (θ ) , es decir:

⎡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

fórmulas para la rotación alrededor del eje X2 dado un ángulo θ.

x 3 ' = x 3 cos θ − x1 sin θ x1 ' = x1 cos θ + x 3 sin θ

x1 ' = x 3 sin θ + x1 cos θ x2 ' = x2

x2 ' = x2 x 3 ' = − x1 sin θ + x 3 cos θ

Ecuación 3.15: Fórmulas para la rotación 3D alrededor del eje X2.

Sea R2(θ) la matriz de rotación alrededor del eje X2, en coordenadas homogéneas la

rotación de un punto p alrededor de dicho eje, se puede expresar como el producto matricial

p ' = p ⋅ R2 (θ ) , es decir:

⎡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.

3.5.2.1 Entendiendo las Rotaciones 3D Como Rotaciones Paralelas a un Plano

Las rotaciones en el espacio 3D son bien conocidas y entendidas por la mayoría de la

gente, y muchos pueden interpretarla como la rotación de un objeto alrededor de un eje

(uni-dimensional) de rotación, sin embargo, es más adecuado pensar en un conjunto de

rotaciones paralelas a un plano 2D, inmerso en el espacio [Noll 67], esto es útil para

comprender más fácil la analogía en las rotaciones 4D y superiores.

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

planos principales 3D: X1X2, X1X3 y X2X3 (Figura 3.10).

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

mismo plano, el plano X1X2 [Hollasch, 91].

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

de rotación será el plano X2X3 (Figura 3.11 a) b) y c) respectivamente).

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.

También se cumple que las rotaciones 3D dejan fijo un subespacio uni-dimensional,

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

sobre el eje de rotación no se ven afectados durante el giro.

Si se renombran las matrices de rotación 3D, en términos de planos de rotación,

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⎦

Ecuación 3.17: Renombramiento de las matrices de rotación 3D en términos de planos de rotación.

3.5.3 Rotaciones 4D

La rotación en 4D podría resultar en un principio un tanto difícil de comprender,

porque intuitivamente se puede pensar en rotar un objeto alrededor de un eje lineal en el

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

puntos no coincidentes para formar un eje uni-dimensional de rotación, en 4D para hacer

rotar un objeto se necesitan tres puntos no colineales que determinan un triángulo, cuyo

plano de soporte define un eje (bi-dimensional) de rotación.

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,

X2X4 y X3X4 (Figura 3.12).

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⎥⎦

⎡cos θ 0 − sin θ 0 0⎤ ⎡ cos θ 0 0 sin θ 0⎤


⎢ 0 ⎢ 0 0⎥⎥
⎢ 1 0 0 0⎥⎥ ⎢ 1 0 0
R3,1 (θ ) = ⎢ sin θ 0 cos θ 0 0⎥ R1, 4 (θ ) = ⎢ 0 0 1 0 0⎥
⎢ ⎥ ⎢ ⎥
⎢ 0 0 0 1 0⎥ ⎢− sin θ 0 0 cos θ 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⎥⎦

Ecuación 3.18: Matrices de rotación 4D.

Se observa que las matrices de rotación R1,2(θ), R3,1(θ) y R2,3(θ) son básicamente las

mismas matrices de la rotación en 3D (ver Ecuación 3.17). La expresión de estas matrices

lo que indica es el sentido del giro, por ejemplo la matriz de rotación R1,2(θ), indica que la

rotación es del eje X1 hacia el eje X2.

En 3D las rotaciones dejan fijo un subespacio uni-dimensional, tal subespacio es el

eje de rotación. En 4D las rotaciones dejan fijo un subespacio bi-dimensional, este

subespacio es el eje bi-dimensional de rotación, y solo se ven afectados los puntos dentro

del plano de rotación y dentro del conjunto de planos paralelos a él.

Dado que la expresión de la matriz de rotación indica el plano de rotación, entonces el

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

Con las ideas anteriores, se puede generalizar el concepto de rotaciones principales en

el espacio nD (n>2), con las siguientes observaciones:

• En nD, se necesita proporcionar (n-1) puntos no cohiperplanares cuyo hiperplano de

soporte será el eje (n-2)-dimensional de rotación.

• En nD las rotaciones dejan fijo un subespacio (n-2)-dimensional, tal subespacio es el

eje (n-2)-dimensional de rotación, este subespacio está formado por los ejes

coordenados que no pertenecen al plano de rotación. Y solo se ven afectados los

puntos dentro del plano de rotación y dentro del conjunto de planos paralelos a él.

• En el espacio nD hay n ejes coordenados: X1, X2, …, Xn, y se tienen rotaciones

paralelas a los planos formados por todas las posibles combinaciones de 2 de estos

ejes, es decir que se tienen C (n , 2 ) planos principales, esto es precisamente el número

de rotaciones principales en el espacio nD.

En [Duffin 94] se señala que especificando el plano de rotación y el centro de rotación

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

coordenados. De esta forma, la matriz de rotación Ra,b(θ) para la rotación de un eje Xa en la

dirección de un eje Xb (donde ambos definen el plano de rotación) por un ángulo θ, está

dada por la siguiente matriz general de rotaciones principales:

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 ⎥⎦

Ecuación 3.19: Matriz general de rotaciones principales nD [Duffin 94].

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

corresponde a la rotación positiva alrededor del origen en el espacio 2D (Ecuación 3.10), y

con n=3, las matrices R1,2, R2,3 y R3,1, corresponden a las rotaciones positivas alrededor de

los ejes X1, X2 y X3 respectivamente en el espacio 3D (Ecuación 3.17).

Con todos los conceptos generalizados, se puede ver que una rotación puede ser

expresada usando dos notaciones:

• Utilizando los ejes que describen el plano de rotación. Por ejemplo en 3D, se puede

escribir la rotación alrededor del eje X3 como R1,2(θ), y en 4D la rotación alrededor

del plano X3X4 también como R1,2(θ).

• Utilizando los ejes que describen el eje (n-2)-dimensional de rotación. En este caso,

en 3D se puede escribir la rotación alrededor del eje X3 como R3(θ), y en 4D, la

rotación alrededor del plano X3X4 como R3,4(θ).

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.

Número de Eje (n-2)-dimensional Ejes principales Ejes principales


Espacio
rotaciones (subespacio fijo durante la que describen el que describen el
nD
principales rotación) subespacio fijo plano de rotación.
⎛ 2⎞
2D C ⎜⎜ ⎟⎟ = 1 0D – Punto – X1X2
⎝ 2⎠
⎛ 3⎞ X1 X2X3
1D – Segmento de recta
3D C ⎜⎜ ⎟⎟ = 3 X2 X1X3
(línea)
⎝ 2⎠ X3 X1X2
X1X2 X3X4
X1X3 X2X4
⎛ 4⎞ X1X4 X2X3
4D C ⎜⎜ ⎟⎟ = 6 2D – Plano
X2X3 X1X4
⎝ 2⎠ X2X4 X1X3
X3X4 X1X2
X1X2X3 X4X5
X1X2X4 X3X5
X1X2X5 X3X4
X1X3X4 X2X5
⎛5⎞ X1X3X5 X2X4
5D C ⎜⎜ ⎟⎟ = 10 3D – Volumen
X1X4X5 X2X3
⎝ 2⎠ X2X3X4 X1X5
X2X3X5 X1X4
X2X4X5 X1X3
X3X4X5 X1X2
X1X2…Xn-2 Xn-1Xn
⎛ n ⎞ n(n − 1) X1X2…Xn-3Xn-1 Xn-2Xn
nD C ⎜⎜ ⎟⎟ = (n-2)D – Hiperplano (n-2)D M M
⎝ 2⎠ 2 X2X4…Xn X1X3
X3X4…Xn X1X2

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,

X2 y X3 no se ven afectados durante el giro.

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°.

3.6 Rotaciones Generales


Se ha presentado y generalizado la matriz de rotación de rotaciones principales nD,

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

arbitrarios, se necesita de transformaciones adicionales que permitan llevar el eje de

rotación arbitrario hacia a alguno de los ejes principales del espacio, y de esta forma poder

aplicar las técnicas para rotaciones principales anteriormente descritas.

80
3.6.1 Transformaciones Compuestas

Antes de continuar con la generalización de las rotaciones, se introduce el tema de

transformaciones compuestas, que es útil para obtener el efecto combinado de una serie de

transformaciones geométricas.

Con la representación matricial manejada hasta el momento, se puede aplicar una

secuencia de transformaciones, calculando simplemente la multiplicación matricial de cada

una de las matrices de transformación. Dado que se está manejando una representación de

la posición de un punto p como vector renglón, se puede aplicar una transformación

compuesta a un punto p, multiplicando las matrices de izquierda a derecha, comenzando

con el punto p.

Por ejemplo, si se desea aplicar una translación, seguida de un escalamiento a un

punto p, la posición final del punto p' se calcula de la siguiente manera:

p' = ( p ⋅ T (d ) ) ⋅ S ( s )

O bien una translación, seguida de una rotación:

p' = ( p ⋅ T (d ) ) ⋅ Ra ,b (θ )

En [Hearn 95] se demuestra que las matrices de transformaciones compuestas para el

caso que sean del mismo tipo, se comportan de la siguiente manera:

• Las traslaciones sucesivas son aditivas: T (d a ) ⋅ T (d b ) = T (d a + d b )

• Los escalamientos sucesivos son multiplicativos: S ( s a ) ⋅ S ( sb ) = S ( s a ⋅ s b )

• Las rotaciones sucesivas son aditivas: Ra ,b (θ ) ⋅ Ra ,b (φ ) = Ra ,b (θ + φ )

81
3.6.2 Rotación General 2D

La rotaciones generales 2D, implican la rotación de un punto p = ( x1 , x 2 ) , dado un

ángulo θ alrededor de un punto arbitrario (fijo) f = ( f1 , f 2 ) (Figura 3.15). Este problema

se resuelve llevándolo a otro más fácil y conocido, aplicando la técnica de divide y

vencerás, se resuelve en tres etapas.

1. Trasladar el punto f al origen, con una matriz de translación T (− f ) .

2. Aplicar la rotación alrededor del origen, con la matriz de rotación R (θ ) .

3. Regresar el punto f a su posición original, con una matriz de translación T ( f ) .

p’=(x1’,x2’)
X2

r
p=(x1,x2)
r
θ

φ
f =(f1,f2)
X1

Figura 3.15: Rotación de un punto en 2D alrededor de un punto arbitrario.

De esta forma, la rotación de un punto p dado un ángulo θ, alrededor de un punto

arbitrario f = ( f1 , f 2 ) en 2D se puede expresar como el producto matricial

p' = p ⋅ T (− f ) ⋅ R(θ ) ⋅ T ( f ) , es decir:

⎡ 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⎥⎦

Ecuación 3.20: Expresión matricial para la rotación general 2D.

82
3.6.3 Rotaciones Generales 3D

Las rotaciones generales 3D, implican la rotación de un punto p, dado un ángulo θ

alrededor de un segmento arbitrario ab formado por dos puntos no

(0) ( 0) ( 0) (0) (0) ( 0)


coincidentes a = (a1 , a 2 , a3 ) y b = (b1 , b2 , b3 ) , el problema se resuelve

básicamente en tres etapas similares al caso 2D.

1. Trasladar el segmento ab de tal forma que quede sobre alguno de los ejes principales

X1, X2 o X3, esto se logra mediante una secuencia de combinación de traslaciones y

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

se lleva al eje X1 por ejemplo, se aplica la matriz de rotación R2,3 (θ ) .

3. Regresar el segmento ab a su posición original.

Llevar el segmento ab sobre alguno de los ejes principales, implica otra serie de 3

pasos, los cuales se ilustran en la Figura 3.16.

Se le llamará matriz de IDA a la matriz de transformación compuesta por una serie de

transformaciones para llevar un segmento ab sobre el eje X1 (se escoge este eje y no otro, a

manera de visualizar de forma más sencilla la generalización de las rotaciones a

dimensiones superiores). Esta matriz está compuesta de tres transformaciones:

1. En la Figura 3.16 a) se tiene el segmento ab en su posición original en el espacio 3D,

en la Figura 3.16 b) se traslada este segmento, de tal manera que el punto a queda en

el origen, esto se logra mediante la matriz de translación T (− a) .

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)

R2,1(-α2) (2) (1) 2 (1) 2


b2 = b2 + b3
b(3) α2
a(3) X1 a(2) X1

X3 X3

Figura 3.16: Proceso en 3D para llevar un segmento arbitrario ab sobre el eje X1 y regresarlo.

Entonces se tiene que la matriz IDA en 3D esta definida por la ecuación:

IDA = T (−a) ⋅ R3, 2 (α 1 ) ⋅ R2,1 (α 2 ) , es decir:

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⎦

Ecuación 3.21: Expresión matricial para la matriz IDA 3D.

Se le llamará matriz de REGRESO (utilizando la abreviatura REG de aquí en

adelante) a la matriz de transformación compuesta por una serie de transformaciones para

llevar de vuelta un segmento ab a su posición original, como se ve en la Figura 3.16, para

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

secuencia de matrices de transformación: REG = R2,1 (−α 1 ) ⋅ R3, 2 (−α 1 ) ⋅ T ( A) .

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

transformaciones [Hearn 95]:

T (d ) −1 = T (−d )

Ra ,b (θ ) −1 = Ra ,b (−θ ) = Rb ,a (θ )

Se tiene:

REG = IDA −1 = (T (−a) ⋅ R3, 2 (α 1 ) ⋅ R2,1 (α 2 ) )


−1

= R2,1 (α 2 ) −1 ⋅ R3, 2 (α 1 ) −1 ⋅ T (−a ) −1

= R2,1 (−α 2 ) ⋅ R3, 2 (−α 1 ) ⋅ T (a)

= R1, 2 (α 2 ) ⋅ R2,3 (α 1 ) ⋅ T (a)

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⎦

Ecuación 3.22: Expresión matricial para la matriz REG 3D.

Para obtener completamente los valores de las matrices IDA y REG, resta calcular los

ángulos de giro α1 y α2.

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:

α 1 = arctan2(b3 (1) b2 (1) ) , donde b2 (1) = b2 ( 0) − a 2 ( 0) y b3 (1) = b3 ( 0) − a3 ( 0 )

Ecuación 3.23: Ecuación para el cálculo de α1.

Para obtener el valor del ángulo α2, observando el triángulo que se forma en la Figura

3.16 c), se tiene que tan(α 2 ) = b2


( 2) ( 2)
b1 , por lo tanto:

2 2
α 2 = arctan2(b2 ( 2 ) b1 ( 2) ) , donde b1 ( 2 ) = b1 (1) = b1 ( 0 ) − a1 ( 0 ) y b2 ( 2 ) = b2 (1) + b3 (1)

Ecuación 3.24: Ecuación para el cálculo de α2.

Finalmente, la rotación general 3D de un punto p, dado un ángulo θ alrededor de un

segmento arbitrario ab se lleva a cabo aplicándole la siguiente secuencia de

transformaciones:

p' = p ⋅ M

Ecuación 3.25: Formula para la rotación general 3D.

M = IDA ⋅ R2,3 (θ ) ⋅ REG

Ecuación 3.26: Matriz de rotación general 3D.

86
3.6.3.1 Análisis de las Rotaciones Generales 3D

En [Aguilera04] se presenta un trabajo de generalización de las rotaciones

multidimensionales, donde para el caso 3D, el eje de rotación es de igual forma

representado por la línea de soporte de un segmento ab (un simplex 1D), donde

( ) ( )
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,

que en coordenadas homogéneas esto es:

⎡a ( 0) a 2( 0 ) a3( 0 ) 1⎤
V ( 0) = ⎢ 1( 0 ) ⎥
⎣b1 b2( 0 ) b3( 0) 1⎦

y M k como la matriz correspondiente a la k-ésima transformación. Entonces se tiene el

{ }
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

alrededor de un segmento arbitrario, se tiene que M 1 es T (−a ( 0 ) ) y de esta forma:

⎡ 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

origen, es decir valen cero.

Siguiendo el proceso, se tiene que M 2 es la matriz de rotación R3, 2 (α 1 ) , por lo tanto:

⎡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:

Al aplicar la matriz R3, 2 (α 1 ) , se está usando el plano de rotación X2X3, y el ángulo de

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:

Tomando en cuenta las siguientes identidades trigonométricas:

x 1
sin(arctan2( x)) = cos(arctan2( x)) = ,
1+ x2 1+ x2

se calculan los valores de b2( 2 ) y b3( 2) .

b2( 2) = b2(1) cos α 1 + b2(1) sin α 1

( ( )) (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

b3( 2 ) = −b2(1) sin α 1 + b3(1) cos α 1

( ( ))
= −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⎥⎦

Enseguida, se tiene que M 3 es la matriz de rotación R2,1 (α 2 ) , por lo tanto:

⎡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:

Al aplicar la matriz R2,1 (α 1 ) , se está usando el plano de rotación X1X2, y el ángulo de

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:

Este proceso se puede demostrar de la misma forma que la hipótesis anterior, y se ve

claramente que se llega a los siguientes resultados:

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

La aplicación de las matrices M 2 y M 3 muestran que si se desea hacer igual a cero la

j-ésima coordenada, se aplica una rotación dada por la siguiente ecuación:

( (
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

el ángulo θ deseado, por lo tanto M 4 es la matriz de rotación R2,3 (θ ) . El proceso final es

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

ángulo θ alrededor de un segmento arbitrario ab se aplican la Ecuación 3.25 y la Ecuación

3.26.

3.6.4 Rotaciones Generales 4D

Las rotaciones generales 4D, implican la rotación de un punto p, dado un ángulo θ

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

tres puntos no colineales. El problema se resuelve nuevamente en tres etapas similares al

caso 3D.

1. Trasladar el triángulo ∆(abc) de tal forma que quede completamente sobre el plano

principal X1X2, y que el eje ab quede alineado sobre el eje X1.

2. Aplicar la rotación alrededor del plano principal X1X2, mediante la matriz de rotación

R3, 4 (θ ) .

3. Regresar el triángulo ∆(abc) a su posición original.

Llevar el triángulo ∆(abc) al plano X1X2 y que el eje ab quede alineado sobre X1,

implica una serie de 6 pasos, los cuales se ilustran en la Figura 3.17.

{ }
Se define el conjunto V ( 0 ) ,V (1) ,V ( 2 ) , K como la serie de matrices que contienen las

coordenadas modificadas de los vértices del triángulo después de cada transformación,

donde V k = V k −1 ⋅ M k , y V ( 0 ) es la matriz que define los vértices originales del triángulo.

⎡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

punto a queda en el origen. Se tiene entonces que M 1 = T − a ( 0) y por lo tanto: ( )


⎡ 0 0 0 0 1⎤
V (1)
=V ( 0)
⋅ T (− a ) = ⎢⎢b1(1)
( 0)
b (1)
2 b (1)
3 b (1)
4 1⎥⎥
⎢⎣c1(1) c (1)
2 c (1)
3 c (1)
4 1⎥⎦

2. En la Figura 3.17 c) se lleva el segmento ab del triángulo dentro del volumen

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⎥⎦

3. En la Figura 3.17 d) se lleva el segmento ab sobre el plano X1X2. Aplicando de nuevo

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⎥⎦

4. En la Figura 3.17 e) se lleva el segmento ab sobre el eje X1. Aplicando la Ecuación

3.27, se tiene que M 4 = R2,1 (α 3 ) = R2,1 (arctan2(b2( 3) b1( 3) )) y por lo tanto:

⎡ 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ó

modificaciones, se encuentra en alguna parte del espacio 4D. Ahora es necesario

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

como se especifica en las observaciones de la Sección 3.5.4 , una rotación Ra ,b (θ ) ,

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:

5. En la Figura 3.17 f) se lleva el segmento ac dentro del volumen X1X2X3. Aplicando la

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⎥⎦

6. En la Figura 3.17 g) se lleva el segmento ac sobre el plano X1X2. Aplicando la

Ecuación 3.27, se tiene que M 6 = R3, 2 (α 5 ) = R3, 2 (arctan2(c3( 5) c 2( 5) )) y por lo tanto:

⎡ 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⎥⎦

Con esto, se tiene el triángulo ∆(abc) completamente sobre el plano X1X2, el

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

matrices de M8 a M13 que son las matrices inversas de M6 a M1 respectivamente.

Entonces se definen a las matrices IDA y REG 4D como:

6
IDA = ∏ M k
k =1

13
REG = ∏ M k = IDA −1
k =8

De esta forma, la rotación general 4D de un punto p, dado un ángulo θ alrededor de

un plano arbitrario está definida como:

p' = p ⋅ M

Ecuación 3.28: Formula para la rotación general 4D.

M = IDA ⋅ R3, 4 (θ ) ⋅ REG

Ecuación 3.29: Matriz de rotación general 4D.

3.6.5 Rotaciones Generales nD

Las rotaciones generales nD, implican la rotación de un punto p, dado un ángulo θ

alrededor de un hiperplano (n-2)-dimensional arbitrario definido por n-1 puntos no

cohiperplanares, que representan un simplex (n-2)D.

En general, el problema se resuelve en tres etapas similares a los casos 3D y 4D.

1. Trasladar el hiperplano (n-2)-dimensional de tal forma que quede completamente

dentro del hiperplano principal X1X2...Xn-2.

2. Aplicar la rotación alrededor del hiperplano principal X1X2...Xn-2, mediante la matriz

de rotación Rn −1,n (θ ) .

3. Regresar el hiperplano (n-2)-dimensional a su posición original.

95
Llevar el hiperplano (n-2)-dimensional de rotación completamente sobre el hiperplano

X1X2...Xn-2 implica una serie de pasos que se explican a continuación.

{ }
Se define el conjunto V ( 0 ) , V (1) ,V ( 2 ) ,K como la serie de matrices que contienen los

vértices modificados de los vértices del hiperplano (n-2)-dimensional después de cada

transformación, donde V k = V k −1 ⋅ M k y V ( 0 ) es la matriz que define las coordenadas

originales. En general la matriz V (k ) para la rotación en nD se define como:

⎡ v1(,k1) v1(,k2) v1(,k3) L v1(,kn) 1⎤ ⎡V1( k ) ⎤


⎢ (k ) ⎥ ⎢ (k ) ⎥
v v 2( k, 2) v 2( k,3) L v 2( k,n) 1⎥ V
V (k ) = ⎢ 2,1 o bien, V = ⎢ 2 ⎥
(k )
⎢ M M M O M M⎥ ⎢ M ⎥
⎢ (k ) (k ) (k ) (k ) ⎥ ⎢ (k ) ⎥
⎢⎣v n −1,1 v n −1, 2 v n −1,3 L v n −1,n 1⎥⎦ ⎢⎣Vn −1 ⎥⎦

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⎦

De aquí, se generaliza el proceso partiendo de los resultados obtenidos en 3D y 4D.

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

X1X2, utilizando rotaciones principales que no involucren al eje X1 para no alterar la

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

de los vértices V1, V2, …, Vn-2 ya posicionados dentro de este hiperplano.

Entonces la matriz general IDA formada por el conjunto de matrices de

transformación requeridas para llevar el hiperplano (n-2)-dimensional de tal forma que

quede completamente sobre el hiperplano principal X1X2…Xn-2, debe de convertir la matriz

(0)
V a una V (k ) de la siguiente manera:

⎡ v1(,01) v1(,02) v1(,03) L v1(,0n) 1⎤ ⎡ 0 0 L 0 0 1⎤


⎢ (0) ⎥ ⎢ v (k ) 0
⎢ v 2,1 v 2( 0, 2) v 2( 0,3) ( 0)
L v 2,n 1⎥ L 0 0 1⎥⎥
⋅ IDA = ⎢
2 ,1
⎢ M M M O M M⎥ ⎢ M O O M M M⎥
⎢ ( 0) ( 0) (0) (0) ⎥ ⎢ (k ) (k ) ⎥
⎣⎢v n −1,1 v n −1, 2 v n −1,3 L v n −1,n 1⎦⎥ ⎣v n −1,1 L v n −1,n − 2 0 0 1⎦

Después de este proceso lo que se tiene es que el vértice V1( k ) se encuentra en el

origen, el vértice V2( k ) sobre el eje X1, el vértice V3( k ) sobre el plano X1X2, y así

sucesivamente, teniendo finalmente el vértice Vn(−k1) dentro del hiperplano X1X2...Xn-2.

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

3.27, la cual se puede reescribir como:

( (
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,

en el segundo n-1, en el tercero n-2, y así sucesivamente hasta que en el (n-1)-ésimo

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

Se necesitan entonces, n(n − 1) 2 − 1 matrices de rotación para que el hiperplano (n-

2)-dimensional quede completamente sobre el hiperplano principal X1X2…Xn-2. Dado que

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

Ecuación 3.30: Matrices generales IDA y REG nD.

Se puede concluir que las rotaciones generales multidimensionales de un punto p,

dado un ángulo θ alrededor de un hiperplano (n-2)-dimensional arbitrario están dadas por

las siguiente ecuaciones:

p' = p ⋅ M

Ecuación 3.31: Formula para la rotación general nD.

M = IDA ⋅ Rn −1,n (θ ) ⋅ REG

Ecuación 3.32: Matriz de rotación general nD.

A continuación se presenta el algoritmo Aguilera-Perez propuesto en [Aguilera04], en

el cuál se puede apreciar claramente el cálculo de cada una de las matrices de

transformación, necesarias para generar la matriz de rotación general nD.

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

llevadas a su forma general para cualquier espacio nD.

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

cabo las rotaciones alrededor de cualquier eje (n-2)-dimensional de rotación arbitrario,

utilizando una combinación de transformaciones de translación y rotaciones principales,

definiendo de esta forma, las matrices generales IDA y REG, para finalmente obtener la

matriz para rotaciones generales.

El método para rotaciones generales presentado en este capítulo es aplicable cuando

se cuenta con n-1 puntos no cohiperplanares, que representan un simplex (n-2)D. En el

siguiente capítulo se desarrolla un método para rotaciones generales, mediante operaciones

vectoriales, aplicable cuando se proporciona el plano de rotación.

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,

proporcionando n-1 puntos no cohiperplanares, es decir, se proporciona el eje de rotación,

el cual es la representación de un simplex (n-2)D.

En este capítulo se analiza y extiende el proceso planteado en [Teoh 05], para las

rotaciones multidimensionales en base a operaciones vectoriales, en donde, en lugar de

proporcionar el eje (n-2)-dimensional de rotación, se proporciona el plano de rotación, el

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

un punto representado por un vector x ∈ ℜ n en un plano arbitrario, la cual pueda ser

aplicable para cualquier dimensión nD donde n>2.

La forma más intuitiva de describir una rotación, requiere dos elementos: el eje, y el

ángulo de rotación. La rotación en si misma ocurre en un plano perpendicular al eje de

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,

especificar el plano de rotación.

La matriz para la rotación 2D alrededor del origen es ya conocida, y está dada por la

(Ecuación 3.9). Esta fórmula se llevo a su forma general en el Capítulo 3, la cual es

aplicable cuando se proporciona el eje de rotación. En este capítulo se busca nuevamente,

100
generalizar una fórmula para rotaciones generales para cualquier dimensión nD para n≥2,

pero desarrollando una formulación en términos de operaciones vectoriales, evitando

trabajar con coordenadas cartesianas, y en este caso, la fórmula será aplicable cuando se

proporcione el plano de rotación.

4.2 Suposiciones

Sea x ∈ ℜ n un vector, el cual representa un punto en un plano P. Se denota la

rotación de x en un plano P dado un ángulo θ, como rot P ,θ ( x) . Y sin perdida de

generalidad se hacen las siguientes suposiciones:

1. El plano actual de rotación P es paralelo al plano P0 que pasa por el origen. Dos

planos P y P0 son paralelos si sus vectores normales n P y n P0 también lo son

[Grossman 88] La Figura 4.1 muestra dos planos paralelos en un espacio 3D.

X2
c
P

nP
a

nP0
X1

P0
X3
b

Figura 4.1: Un plano P paralelo a un plano P0 que pasa por el origen.

101
2. El centro de rotación c está en el hiperplano (n-2)-dimensional que intersecta al plano

P0 en el origen. Esto significa que la rotación deseada en P alrededor de c, es isomorfa

mediante una translación a una rotación en el plano P0 alrededor del origen.

3. El plano P0 está formado por dos vectores ortonormales (ortogonales y unitarios):

a, b ∈ ℜ n . Y dado que en las rotaciones, los planos de rotación son siempre en 2D, es

suficiente con los vectores a y b para representar al plano P0.

4. Para tener una dirección de giro positivo, se define la rotación del vector a hacia el

vector b, esto es, que se cumple que: rot P0 ,π / 2 (a) = b

4.3 Rotación en el Plano P en Función de la Rotación en P0


Sea θ el ángulo por el cual se desea rotar x. Se obtiene la rotación deseada rotando la

proyección ortogonal de x en P0, y después llevar el resultado de regreso al plano P, en el

cual se encuentra x (ver Figura 4.2).

C
P
x

xa a

xb
xp

b P0

Figura 4.2: Proyección de x sobre el plano P0.

102
4.3.1 Proyección de x Sobre el Plano P0

Sean u y v dos vectores distintos de cero, la proyección ortogonal de u sobre v, es un

vector que se define por [Grossman 88]:

u ⋅v
proy v u = 2
v
v

La proyección ortogonal de un vector u sobre un plano 2D, es la suma de las

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

ortogonales sobre los vectores a y b (ver Figura 4.2).

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

Ecuación 4.1: Proyección de x sobre el plano P0.

4.3.2 Llevar el Resultado de la Rotación en P0 a P

Si se tiene una componente ortogonal al plano P, se cumple que está componente

también es ortogonal al plano P0, lo que significa que al estar fuera del plano de rotación,

no se ve afectada por el giro.

Teorema: (x- xp) es la componente de x ortogonal al plano P0, cuya suma al resultado de

rot P0 ( x p ) , es suficiente para obtener el resultado de la rotación rot P ,θ ( x) deseada.

Demostración: Se demuestra que (x- xp) es ortogonal a los vectores a y b. Considerando

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

producto escalar se tiene que:

2
a ⋅ a = a a cos(0) = a = 1

a ⋅ b = a b cos(π / 2) = 0 , por lo tanto:

( 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.

Entonces, la rotación de x en el plano P dado un ángulo θ es igual a la rotación de xp en el

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 )

Ecuación 4.2: Fórmula inicial para la rotación de x en el plano P.

104
Entonces, resta obtener la ecuación para la rotación de xp en el plano P0 con el ángulo

θ para obtener el resultado deseado.

4.4 Rotación en el Plano P0


En base a la Ecuación 4.1 que obtiene la proyección de x en P0, se tiene que las

coordenadas de xp en P0 con respecto a los vectores a y b son: x ⋅ a y x ⋅ b respectivamente.

Sea φ el ángulo entre xp y a, se tiene que (ver Figura 3.5):

x ⋅ a = x p cos φ
x ⋅ b = x P sin φ

Ecuación 4.3: Fórmulas para obtener las coordenadas de xp en el plano P0.

b
x p ' = rot P0 ,θ ( x p )
(x⋅b)’

|xp|

x⋅b xp
θ |xp|

φ a
(x⋅a)’ x⋅a

Figura 4.3: Rotación de xp en el plano P0.

Entonces, el vector resultante xp' después de rotar xp por el ángulo deseado θ, será

equivalente a la rotación de la proyección de xp desde a por un ángulo de (φ + θ ) (ver

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,

entonces por la fórmula de la proyección se tiene que:

rot P0 ,θ ( x p ) = x p ' = ( x ⋅ a)' a + ( x ⋅ b)' b

= x p cos(φ + θ )a + x p sin(φ + θ )b

De aquí, utilizando algunas identidades trigonométricas:

x p cos(φ + θ ) = x p (cos ϕ cos θ − sin ϕ sin θ )

( ) ( )
= 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(φ + θ ) = x p (sin ϕ cos θ + cos ϕ sin θ )

( ) (
= x p sin ϕ cos θ + x p cos ϕ sin θ )
= ( x ⋅ b) cos θ + ( x ⋅ a) sin θ

Por tanto la rotación de xp dado un ángulo θ en el plano P0 está dada por:

rot P0 ,θ ( x p ) = (( x ⋅ a) cos θ − ( x ⋅ b) sin θ )a + (( x ⋅ b) cos θ + ( x ⋅ a) sin θ )b

Ecuación 4.4: Fórmula para la rotación de xp en el plano P0.

4.5 Rotación en el Plano P


Finalmente, para obtener la rotación de x por el ángulo deseado θ en el plano P, se

substituyen la Ecuación 4.1 y la Ecuación 4.4 en la Ecuación 4.2, y con esto se obtiene una

ecuación en términos de los vectores conocidos x, a y b:

rot P ,θ ( x) = (( x ⋅ a) cos θ − ( x ⋅ b) sin θ )a + (( x ⋅ b) cos θ + ( x ⋅ a ) sin θ )b


+ x − (( x ⋅ a )a + ( x ⋅ b)b)

Ecuación 4.5: Fórmula para la rotación de x en el plano P.

106
Esta fórmula puede ser aplicada a cualquier dimensión nD, con n>2, dado que está

escrita completamente en términos de operaciones vectoriales involucrando los vectores

arbitrarios x, a, b ∈ ℜ n . Se puede reescribir esta fórmula en forma matricial, factorizando

algunos elementos.

rot P ,θ ( x) = x + (( x ⋅ a) cos θ − ( x ⋅ b) sin θ − ( x ⋅ a) )a + (( x ⋅ b) cos θ + ( x ⋅ a ) sin θ − ( x ⋅ b) )b

= x + (( x ⋅ a )(cos θ − 1) − ( x ⋅ b) sin θ )a + (( x ⋅ a ) sin θ + ( x ⋅ b)(cos θ − 1) )b

De esta forma, la rotación de un vector x dado un ángulo θ en el plano P se puede

expresar matricialmente de la siguiente manera:

⎡cos θ − 1 sin θ ⎤
r = [r1 r2 ] = [x ⋅ a x ⋅ b] ⋅ ⎢ ⎥
⎣ − sin θ cos θ − 1⎦

rot P ,θ ( x ) = x + r1 a + r2 b

Ecuación 4.6: Ecuaciones matriciales para la rotación de x en el plano P.

En la expresión de la matriz r, puede verse un parecido a la ya conocida matriz de

rotación 2D.

4.6 Rotación en un Plano Arbitrario


La fórmula de rotación anterior es equivalente a la presentada en [Teoh 05], y es

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

cuando el plano de rotación no necesariamente pasa por el origen.

Entonces, sea f un punto en el espacio ℜn que define el punto de aplicación de los

vectores af y bf, los cuales son una representante de los vectores a y b respectivamente, si se

obtiene la componente de af y bf desde el origen, se tiene que están definidos por

107
a f = a + f y b f = b + f . Con esto, basta restarles f a los vectores af y bf para obtener los

vectores ortonormales a y b (Figura 4.4).

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.

De esta forma, para realizar la rotación de un vector x en un plano arbitrario, donde f,

es el punto de aplicación de los vectores que definen dicho plano, se realizan 3 pasos:

1. Llevar el vector x al plano que pasa por el origen, esto es: x f = x − f .

2. Aplicar la rotación rot P ,θ ( x f ) .

3. Regresar el resultado del giro al plano original de rotación. rot P ,θ ( x) = rot P ,θ ( x f ) + f

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

Ecuación 4.7: Fórmula para la rotación general de un vector x en nD.

4.7 Vectores Ortonormales a un Hiperplano (n-2)-dimensional


Como se observa, basta con proporcionar los vectores a y b que definen el plano de

rotación y el punto de aplicación de ambos vectores, para llevar a cabo cualquier rotación

en nD. Sin embargo, en el enfoque analizado en el Capítulo 3, se deseaba llevar a cabo la

108
rotación alrededor de un eje (n-2)-dimensional (un simplex (n-2)D), proporcionando n-1

puntos no cohiperplanares.

Para poder llevar a cabo la rotación alrededor de un hiperplano (n-2)-dimensional con

éste enfoque vectorial, se necesita un proceso para obtener el plano bidimensional de

rotación a partir del hiperplano dado.

Entonces, se denota la rotación de un vector x alrededor de un hiperplano H (n-2)-

dimensional como rot H ,θ ( x) .

4.7.1 Caso 2D

En 2D no hay mayor problema, ya que solo existe un posible plano de rotación, en

este caso el eje de rotación es un punto fijo (hiperplano 0D) que se puede representar por el

vector V1 ∈ ℜ 2 . De está forma, solamente se lleva V1 al origen, y se pueden definir sin

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

Ecuación 4.7, considerando como punto f al vector V1.

rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1

4.7.2 Base Canónica en ℜn

En el espacio vectorial ℜn, existen los siguientes elementos:

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

completamente sobre el eje Xi para 1≤i≤n.

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.

4.7.3 Producto Vectorial en nD

Se introduce el tema de producto vectorial o producto cruz en ℜn, ya que será de

utilidad en las generalizaciones siguientes.

El producto vectorial está definido normalmente para vectores tridimensionales como

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

espacio, la generalización del productor vectorial nD para n≥1, es fácil de visualizar

[Murray-Lasso 04].

El producto vectorial u × v en 3D, de los vectores u = (u1 , u 2 , u 3 ) y v = (v1 , v 2 , v3 ) ,

utilizando coordenadas cartesianas, está dado por:

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

Ecuación 4.8: Producto vectorial 3D.

Nota: De acuerdo a la Observación 4.1 se tiene que:

e1 e2 e3 i j k
u × v = u1 u2 u 3 = u1 u2 u3
v1 v2 v3 v1 v2 v3

El vector resultado de u × v es un vector tridimensional ortogonal a los vectores u y v.

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

vector resultante es ortogonal a los factores. Entonces en 2D no existe un vector ortogonal a

otros dos vectores no colineales. En 4D y dimensiones superiores, existe un número

infinito de vectores que son ortogonales a un par de vectores dados.

Entonces, si se entiende el producto vectorial como el uso de n-1 factores para 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,

entonces en 4D la definición del producto vectorial de n-1=3 vectores, u = (u1 , u 2 , u 3 , u 4 ) ,

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

Ecuación 4.9: Producto vectorial 4D.

Este producto tiene como resultado un vector tetradimensional ortogonal a los

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

Ecuación 4.10: Producto vectorial nD.

El resultado del producto vectorial nD, es un vector n-dimensional ortogonal a todos

los factores {V1 , V2 ,K,Vn −1 } .

4.7.4 Caso 3D

En 3D y dimensiones superiores existen un número infinito de planos de rotación

arbitrarios. En este espacio, el eje de rotación es un segmento de recta V1V2 , representado

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 .

2. Obtener un vector a ortogonal a w. Esto se puede obtener utilizando la generalización

del producto vectorial de la siguiente manera:

Se tiene el vector w = ( w1 , w2 , w3 ) ∈ ℜ 3 que representa al segmento de recta, si se

ignora una componente, por ejemplo, la que corresponde al eje X3, y se define un

vector w' = ( w1 , w2 ) ∈ ℜ 2 , entonces aplicando la Ecuación 4.10 con n=2, se tiene el

producto vectorial como una operación unaria:

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

se ignoró, esto es, a = ( w2 ,− w1 ,0) , el cuál es linealmente independiente y ortogonal a

w. También se puede omitir la componente en X1 o X2, para el caso de omitir la

componente en X2, esto da un vector w' = ( w1 , w3 ) ∈ ℜ 2 y con el producto cruz 2D se

tiene:

e1 e3
= w3 e1 − w1e3
w1 w3

por lo tanto a = ( w3 ,0,− w1 ) , el cuál también es linealmente independiente y ortogonal

a w.

Observación 4.2:

En este paso se debe tener en cuenta las siguientes observaciones:

a) Al crear el vector a, se coloca un 0 en la posición de la componente que se

ignora, y el resto de componentes estarán dados por el resultado del producto

vectorial.

b) No se debe omitir una componente que haga que el vector w' sea el vector cero,

por ejemplo en el caso de que el vector w = (0,0,1) , se puede omitir cualquier

componente, excepto la tercera.

3. Obtener un segundo vector b ortogonal a w y a. Para obtener el vector b, ahora se

hace uso del producto vectorial 3D como b = w × a , ya que esto da como resultado un

vector b que es ortogonal a los factores. Entonces:

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 )

4. Normalizar los vectores a y b.

5. Realizar el proceso de rotación alrededor del segmento (hiperplano 1D) con la

Ecuación 4.7: Fórmula para la rotación general de un vector x en nD, y dado que el

punto de aplicación de los vectores a y b determinados es el punto representado por el

vector V1, se tiene que:

rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1

4.7.5 Caso 4D

En 4D el eje de rotación es un plano formado por tres puntos no colineales,

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

vectores {W1 ,W2 }∈ ℜ 3 , donde W1 = V2 − V1 y W2 = V3 − V1 .

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

forma, aplicando el producto vectorial 3D se tiene que:

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

independiente y ortogonal a W1 y W2. También se puede escoger omitir la

componente en el eje X1, X2 o X3 y se procede de una forma similar para obtener el

vector a. Supóngase ahora que se desea omitir la componente en X3, entonces

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

por lo tanto a = (a1 , a 2 ,0, a 4 ) , el cuál también es linealmente independiente y

ortogonal a W1 y W2.

Observación 4.3:

Adicionalmente a la Observación 4.2 del caso 3D, en 4D y dimensiones superiores, se

debe cuidar que al omitir una componente, no se vuelvan linealmente dependientes

algunos vectores Wi', porque esto causará que el determinante del producto cruz

genere un resultado igual a cero.

3. Obtener un segundo vector b ortogonal a los vectores {W1 , W2 , a}. Para obtener el

vector b, ahora se hace uso del producto vectorial 4D como b = a × W1 × W2 , ya que

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

vectorial 4D, b = (b1 , b2 , b3 , b4 ) .

4. Normalizar los vectores a y b.

5. Realizar el proceso de rotación alrededor del plano (hiperplano 2D) nuevamente con

la Ecuación 4.7, y dado que el punto de aplicación de los vectores a y b determinados

es el punto representado por el vector V1, se tiene que:

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

el eje de rotación en nD es un hiperplano (n-2)-dimensional formado por n-1 puntos no

cohiperplanares, tales puntos estarán representados por los vectores {V1 , V2 , KVn −1 }∈ ℜ n .

La generalización consta, al igual que los casos anteriores, de 5 pasos:

1. Llevar un vértice del eje (n-2)-dimensional de rotación al origen. Esto se logra

restándole a los n-1 vectores el vector V1, de está forma, el hiperplano estará ahora

representado por los vectores {W1 ,W2 ,K ,Wn − 2 }∈ ℜ n , donde Wi = Vi +1 − V1 para

1≤ i ≤ n − 2.

2. Obtener un vector a, ortogonal a los vectores {W1 , W2 ,K, Wn − 2 } . Se puede ignorar la

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

(n-1)D con estos vectores, en general se tiene lo siguiente:

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

Entonces el vector a, se forma como a = (a1 ,K, ai −1 ,0, ai +1 , K, a n ) .

Observación 4.4: Obsérvese que:

a) Si se ignora la primer componente (X1)

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

El vector a, se forma como a = (0, a 2 , a3 , K, a n ) .

b) Si se ignora la última componente (Xn)

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

El vector a, se forma como a = (a1 , a 2 , K, a n −1 ,0) .

En cualquier caso el vector a, formado con los valores que arroja el producto

vectorial (n-1)D, es linealmente independiente y ortogonal a los vectores

{W1 ,W2 ,K,Wn−2 }.

117
3. Obtener un segundo vector b ortogonal a los vectores {W1 ,W2 ,K ,Wn − 2 , a} . Para

obtener el vector b, ahora se hace uso del producto vectorial nD como

b = a × W1 × W2 × K × Wn − 2 , ya que este producto da como resultado un vector b

ortogonal a todos los factores. Entonces:

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

vectorial nD, b = (b1 , b2 , K, bn ) .

4. Normalizar los vectores a y b.

5. Realizar el proceso de rotación alrededor del hiperplano (n-2)D con la Ecuación 4.7,

ya que en general el punto de aplicación de los vectores a y b determinados es el

punto representado por el vector V1, se tiene que:

rot H ,θ ( x) = rot P ,θ ( x − V1 ) + V1

4.8 Hiperplano Ortogonal a un Plano de Rotación


El caso contrario a la Sección 4.7 , es que se desee utilizar la Ecuación 3.31: Formula

para la rotación general nD., cuando se cuenta con los vectores ortonormales af y bf y su

punto de aplicación f. En este caso, se propone un método para determinar el hiperplano

(n-2)-dimensional que sea ortogonal a los vectores af y bf dados.

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,

entonces el eje estará representado por el punto V1 = f .

4.8.2 Caso 3D

En 3D el eje de rotación es un segmento de recta, definido por dos puntos no

coincidentes. El proceso es el siguiente:

1. Llevar los vectores af y bf al origen. Restándoles su punto de aplicación f. Y de esta

forma se tiene que a = a f − f y b = b f − f , entonces, se obtiene el primer

vértice V1 = f .

2. El segundo y último vértice se obtiene de realizar el producto cruz 3D con los

vectores a y b, y luego sumándole f, entonces:

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

por tanto, V2 = (a 2 b3 − a3 b2 , a3 b1 − a1b3 , a1b2 − a 2 b1 ) + f

El eje de rotación definido por V1 y V2 es ortogonal a los vectores a y b.

4.8.3 Caso 4D

En 4D el eje de rotación es un plano, definido por tres puntos no colineales. El

proceso es el siguiente:

1. Llevar los vectores af y bf al origen. Restándoles su punto de aplicación f. Y de esta

forma se tiene que a = a f − f y b = b f − f , entonces, se obtiene el primer vértice

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

vectores originales a, b ∈ ℜ 4 (El superíndice indica el número de elementos del

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

se ignoró y finalmente obtener el vértice V2 sumándole f. En este caso se tiene que

W 2 = (W 2(,31) , W 2(,32) , W 2(,33) ,0) y V2 = W2 + f

Observación 4.5:

No se debe omitir una componente que haga que los vectores a(3) y b(3) :

a) Sean el vector cero.

b) Sean linealmente dependientes.

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

arroja este producto vectorial 4D y sumándole f. En este caso se tiene que

W3 = (W3(,14 ) , W3(,42) , W3(,43) , W3(,44) ) y V3 = W3 + f .

120
El eje de rotación definido por {V1, V2, V3} es ortogonal a los vectores a y b.

4.8.4 Caso nD

En nD el eje de rotación es un hiperplano (n-2)-dimensional, definido por (n-1)

puntos. El proceso para calcular estos puntos, es el siguiente:

1. Llevar los vectores af y bf al origen. Restándoles su punto de aplicación f. Y de esta

forma se tiene que a = a f − f y b = b f − f , entonces, se obtiene el primer vértice

V1 = f .

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 considerando tres componentes Xr,

Xs, Xt (o ignorando n-3 componentes) de los vectores originales a, b ∈ ℜ n . En general,

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 se ignoraron y finalmente obtener el vértice V2 sumándole f. En este caso se tiene

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

considerando las componentes de a ( k ) , b ( k ) ∈ ℜ k y una adicional de los vectores

121
originales a, b ∈ ℜ n . Este proceso se hace para 3 ≤ k ≤ n − 1 . Entonces se tiene que:

Wk( k +1) = a ( k +1) × b ( k +1) × W2 × K × Wk −1 . De esta forma, se crea el vector Wk∈ℜk+1

constituido con los valores de las componentes que arroja el producto vectorial

(k+1)D, y un cero en la posición de las componentes que se ignoraron y finalmente

obtener el vértice Vk sumándole f. Vk = W k + f .

El eje de rotación definido por {V1, V2,…,Vn-1} es ortogonal a los vectores a y b.

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

sentido contrario. Por tanto, inicialmente se propone cambiar el signo de alguno de

los vectores ortonormales dependiendo de la dimensión para preservar la dirección

de los giros. Se puede utilizar por ejemplo el vector a como (-1)n+1a durante todos los

cálculos de este proceso.

4.9 Comprobación de equivalencia de la Fórmula


La Ecuación 4.6 y el proceso propuesto para determinar los vectores a y b a partir de

la información del eje (n-2)-dimensional de rotación y viceversa, son procesos válidos,

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

cualesquiera 2 vectores a y b ortonormales y observar que en ambos casos se obtiene el

mismo resultado.

4.9.1.1 Vectores a y b Como Bases Canónicas

Si se definen a los vectores ortonormales a y b como las bases canónicas

a = e1 = (1,0) y b = e2 = (0,1) , se tiene que estarán sobre el eje X1 y el eje X2

respectivamente (Figura 4.5).

X2

b = (0,1)

a = (1,0)
X1

Figura 4.5: Vectores ortonormales a y b sobre los ejes principales 2D.

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:

⎡ r ⎤ ⎡cos θ − 1 − sin θ ⎤ ⎡ x1 ⎤ ⎡ x1 (cos θ − 1) − x 2 sin θ ⎤


r = ⎢ 1⎥ = ⎢ ⋅ =
⎣r2 ⎦ ⎣ sin θ cos θ − 1⎥⎦ ⎢⎣ x 2 ⎥⎦ ⎢⎣ x1 sin θ + x 2 (cos θ − 1)⎥⎦

[x1 ' x 2 '] = [x1 x 2 ] + ( x1 (cos θ − 1) − x 2 sin θ )[1 0] + (x1 sin θ + x 2 (cos θ − 1) )[0 1]

[x1 ' x 2 '] = [x1 + ( x1 (cos θ − 1) − x 2 sin θ ) x 2 + ( x1 sin θ + x 2 (cos θ − 1) )]

Así:

x1 ' = x1 + x1 (cos θ − 1) − x 2 sin θ

= x1 + x1 cos θ − x1 − x 2 sin θ

= x1 cos θ − x 2 sin θ

x 2 ' = x 2 + x1 sin θ + x 2 (cos θ − 1)

= 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

rotación 2D (Ecuación 3.9).

4.9.1.2 Vectores a y b Arbitrarios

Si los vectores ortonormales a y b no caen completamente sobre los ejes principales,

entonces, sea α el ángulo entre el eje X1 y el vector ortonormal a, las coordenadas de a

estarán definidas por (cosα,sinα), y las de b por (cos(α+π/2),sin(α+π/2)) = (-sinα,cosα)

(Figura 4.6).

124
X2

b = (-sinα,cosα)

a = (cosα,sinα)
α+π/2
α
X1

Figura 4.6: Vectores ortonormales a y b arbitrarios en 2D.

De esta forma:

a = (cos α , sin α )

b = (− sin α , cos α )

x ⋅ a = x1 cos α + x 2 sin α

x ⋅ b = − x1 sin α + x 2 cos α

Substituyendo en la Ecuación 4.6, se tiene:

⎡ r ⎤ ⎡cos θ − 1 − sin θ ⎤ ⎡ x1 cos α + x 2 sin α ⎤


r = ⎢ 1⎥ = ⎢ ⋅
⎣r2 ⎦ ⎣ sin θ cos θ − 1⎥⎦ ⎢⎣− x1 sin α + x 2 cos α ⎥⎦

⎡(cosθ − 1)( x1 cos α + x2 sin α ) + sin θ ( x1 sin α − x2 cos α )⎤


=⎢ ⎥
⎣sin θ ( x1 cos α + x2 sin α ) − (cosθ − 1)( x1 sin α − x2 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 α ⎦

[x1 ' x 2 '] = [x1 x 2 ] + r1 [cos α sin α ] + r2 [− sin α 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 + x1 cos θ cos 2α − x1 cos 2α − x 2 sin θ cos 2α


+ x1 cos θ sin 2α − x1 sin 2α − x 2 sin θ sin 2α )

= x1 + x1 cos θ (cos 2α + sin 2α ) − x1 (cos 2α + sin 2α ) − x 2 sin θ (cos 2α + sin 2α )

= 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 α )

= x 2 + sin α ( x1 sin θ sin α + x 2 cos θ sin α − x 2 sin α )


+ cos α ( x1 sin θ cos α + x 2 cos θ cos α + x 2 cos α )

= x 2 + x1 sin θ (cos 2α + sin 2α ) + x 2 cos θ (cos 2α + sin 2α ) − x 2 (cos 2α + sin 2α )

= x1 sin θ + x 2 cos θ

Nuevamente, se tiene que el resultado para x1 y x2 es el mismo que en las formulas de

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.

4.9.1.3 Rotación Alrededor de un Punto Fijo

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:

x1 ' = x1 cos θ − x 2 sin θ + f 1 (1 − cos θ ) + f 2 sin θ

x 2 ' = x 2 sin θ + x 2 cos θ − f 1 sin θ + f 2 (1 − cos θ )

Ahora se probará el enfoque vectorial, donde la rotación alrededor de un punto fijo

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

f = (f1, f2) x = (x1,x2)


b = (0,1)

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

con la Ecuación 4.7 se tiene que:

x1 ' = ( x1 − f 1 ) cos θ − ( x 2 − f 2 ) sin θ + f1

= x1 cos θ − f 1 cos θ − x 2 sin θ + f 2 sin θ + f1

= x1 cos θ − x 2 sin θ + f1 (1 − cos θ ) + f 2 sin θ

x 2 ' = ( x1 − f 1 ) sin θ + ( x 2 − f 2 ) cos θ + f 2

127
= x1 sin θ − f1 sin θ + x 2 cos θ − f 2 cos θ + f 2

= x1 sin θ + x 2 cos θ − f1 sin θ + f 2 (1 − cos θ )

Con esto, se tiene que el resultado para x1 y x2 es el mismo que en las formulas de la

rotación 2D en un punto fijo.

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

en el sentido del eje X1 al X2 (rotación positiva en el eje X3).

Se pueden definir los vectores como las bases canónicas a = e1 = (1,0,0) y

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

Entonces substituyendo en la Ecuación 4.6, se tiene:

⎡ r ⎤ ⎡cos θ − 1 − sin θ ⎤ ⎡ x1 ⎤ ⎡ x1 (cos θ − 1) − x 2 sin θ ⎤


r = ⎢ 1⎥ = ⎢ ⋅ =
⎣r2 ⎦ ⎣ sin θ cos θ − 1⎥⎦ ⎢⎣ x 2 ⎥⎦ ⎢⎣ x1 sin θ + x 2 (cos θ − 1)⎥⎦

[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]

[x1 ' x 2 ' x3 '] = [x1 + ( x1 (cos θ − 1) − x 2 sin θ ) x 2 + ( x1 sin θ + x 2 (cosθ − 1) ) x3 ]

Así:

x1 ' = x1 + x1 (cos θ − 1) − x 2 sin θ

= 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

Se observa que si se cambia los vectores a y b ahora sobre X2 y X3 respectivamente es

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

X3 y X1 respectivamente, es una nueva substitución cíclica para obtener la rotación

alrededor del eje X2, con lo cuál se obtienen las tres rotaciones principales en 3D.

4.9.3 Caso nD

Se sabe que las bases canónicas en ℜ n se obtienen de los n vectores base

{ei : 1 ≤ i ≤ n}, donde el vector ei es un vector con valor 1 en la i-ésima coordenada y 0 en el


resto, y es claro ver que dicho vector se encuentra sobre el eje Xi.

En general, si de definen a los vectores a = ei y b = e j , se tiene que

x.a = xi

x.b = x j

⎡ r ⎤ ⎡cos θ − 1 − sin θ ⎤ ⎡ xi ⎤ ⎡ xi (cos θ − 1) − x j sin θ ⎤


r = ⎢ 1⎥ = ⎢ ⋅⎢ ⎥ = ⎢ ⎥
⎣r2 ⎦ ⎣ sin θ cos θ − 1⎥⎦ ⎣ x j ⎦ ⎣ xi sin θ + x j (cos θ − 1)⎦

Por lo tanto:

xi ' = xi sin θ + x j cos θ

x j ' = xi cos θ − x j sin θ

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

equivalencia se puede escribir como:

x ⋅ Ri , j (θ ) = rot P ,θ ( x) , definiendo los vectores a = ei y b = e j .

4.10 Resumen
En este capítulo se desarrolló la formulación de una matriz para rotaciones generales

cuando se proporciona dos vectores ortonormales y su punto de aplicación, los cuales

definen el plano de rotación en el que se desea llevar a cabo la rotación.

Los métodos para rotaciones presentados en este capítulo y el anterior dependen de la

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

(n-2)-dimensional de rotación y viceversa. Finalmente, se presentó la equivalencia en

ambos enfoques para las rotaciones principales nD y para el caso general 2D.

Los resultados de los algoritmos y transformaciones presentados hasta el momento,

solo pueden ser observados mediante proyecciones geométricas del espacio nD hacia el

espacio 3D, o bien 2D si se desean visualizar en el monitor de la computadora. En el

siguiente capítulo se analizan las proyecciones paralelas y perspectivas para llevarlas a su

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

objetos tridimensionales proyectadas en el piso, o en lugares donde se ven imágenes

tridimensionales plasmadas en un plano como las pantallas de las computadoras y las

fotografías. Estos son ejemplos de proyecciones de objetos tridimensionales en un espacio

bidimensional.

5.1 Observando la Tercera Dimensión


En las proyecciones 3D, la información de la tercera dimensión (también llamada

profundidad) no puede ser representada, esto es, que si el observador se aleja o acerca de la

imagen, ésta no cambiará. Sin embargo se puede entender claramente la representación de

la profundidad en este tipo de imágenes, con información indirecta contenida en las

imágenes observadas [Eusebeia 06].

La retina del ojo humano es un dispositivo de recepción en dos dimensiones, sin

embargo el cerebro percibe sin problemas la forma de los objetos tridimensionales,

utilizando la información indirecta contenida en los objetos como son: la perspectiva, 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

Objeto 3D Retina 3D Imagen proyectada 2D

Figura 5.1 Sistema básico de visión 3D.

5.2 Observando Dimensiones Superiores


De acuerdo a lo anterior, para poder ver los objetos 4D, estos deben ser proyectados

matemáticamente al espacio 3D, y en su momento realizar nuevamente una proyección al

espacio 2D para poder visualizarlos en un plano, como el monitor de la computadora.

Una analogía que se plantea, es que la retina de un ser de la cuarta dimensión sería un

dispositivo de recepción en tres dimensiones, este ser, percibiría la forma de objetos 4D

utilizando información indirecta contenida en las imágenes que recibe, comprendiendo

análogamente, una profundidad tetradimensional.

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

un plano 2D para poder ser visualizada por un ser 3D.

132
Línea de visión

Objeto 4D Retina 4D Imagen proyectada 3D

Figura 5.2 Sistema básico de visión 4D.

Las matemáticas detrás de la proyección del espacio 3D pueden ser generalizadas a

cualquier número de dimensiones, de esta forma, un objeto nD puede ser matemáticamente

proyectado a un espacio (n-1)D. Dicha proyección puede ser aplicada repetitivamente hasta

que finalmente obtener un objeto tridimensional o bidimensional, representando la

proyección sucesiva de un objeto nD [Noll 67].

Entonces, es posible observar sombras de objetos, no solo tridimensionales, sino

también de dimensiones superiores, por ejemplo, en Capítulos anteriores se han presentado

imágenes que representan objetos 4D y 5D plasmados en este documento (un plano), y

aunque no se construyeron con el objetivo de explicar las proyecciones, son sin embargo,

una proyección sucesiva de nD a 2D.

Desafortunadamente, las proyecciones tienen el problema de perder información al

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

los objetos y manipular los parámetros de proyección.

133
5.3 Tipos de Proyección
En general, las proyecciones transforman puntos de un sistema de coordenadas de

dimensión n hacia puntos de otro sistema de dimensión menor a n [Foley 92]. La

proyección 3D→2D de un objeto se produce por rayos de proyección en línea recta

(llamados proyectores) que salen del centro de proyección pasando a través de cada punto

del objeto, e intersectando un plano de proyección, lugar donde se forma la proyección.

Las proyecciones geométricas, se dividen en dos clases: paralelas y perspectivas

[Anand 93]. En la proyección paralela, las coordenadas de un objeto son llevadas al plano

de proyección por medio de líneas paralelas, esto se logra colocando el centro de

proyección a una distancia infinita como se muestra en la Figura 5.3. En la proyección

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

Figura 5.3 Proyección paralela.

Las proyecciones paralelas preservan proporciones relativas de los objetos, se

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, se colapsan al ser proyectadas.

Plano de
proyección

Proyectores

Centro de
proyección
Objeto 3D

Figura 5.4 Proyección perspectiva.

La proyección perspectiva, produce vistas realistas, pero no preserva la forma y

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.

5.4 Ecuación Paramétrica de la Recta


En 3D, la ecuación paramétrica de la recta que pasa por un punto p = ( x1 , x 2 , x3 )

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

ecuación en nD, se puede reescribir como:

p' = p + t ⋅ d

( x1 ' , x 2 ' , x3 ' ,K, x n ' ) = ( x1 , x 2 , x3 ,K, x n ) + t ⋅ (d1 , d 2 , d 3 ,K, d n ) , o bien:

135
x1 ' = x1 + t ⋅ d1
x 2 ' = x2 + t ⋅ d 2
x3 ' = x3 + t ⋅ d 3
M
x n ' = xn + t ⋅ d n

Ecuación 5.1: Ecuación paramétrica de la recta en nD.

5.5 Proyección Paralela


La proyección paralela se puede especificar como un vector de proyección que define

la dirección de las líneas de proyección. Cuando la proyección es ortogonal al plano de

proyección (en 3D), se crea una proyección paralela ortográfica, en otro caso, se tiene una

proyección paralela oblicua [Anand 93].

5.5.1 Proyección Paralela 3D→2D

Las ecuaciones para la proyección paralela son simples, si el plano de proyección es

el plano X1X2. De esta forma, la proyección paralela de un punto p = ( x1 , x 2 , x3 ) ∈ ℜ 3 a uno

p ' = ( x1 ' , x 2 ' ) ∈ ℜ 2 , está dado por [Hearn 95]:

x1 ' = x1
x2 ' = x2

Esta es la proyección paralela más simple, donde se ignora la tercera componente,

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⎦

Ecuación 5.2: Expresión matricial para la proyección paralela simple 3D→2D.

136
En la proyección paralela, a los rayos proyectores se les puede asignar una dirección,

siempre y cuando no sea paralela al plano de proyección. Si la dirección de proyección está

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.

Entonces sea p = ( x1 , x 2 , x3 ) ∈ ℜ 3 , un punto cuya proyección en plano X1X2 es

p ' = ( x1 ' , x 2 ' ,0) , los valores de x1' y x2' se pueden calcular haciendo uso de la ecuación

paramétrica de la recta (ver Sección 5.4 ) de la siguiente forma:

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

parámetro t como t = − x3 / d 3 , substituyendo este valor en el resto de ecuaciones se tiene:

x3 d
x1 ' = x1 − d1 = x1 − 1 x3
d3 d3
x3 d
x 2 ' = x2 − d 2 = x2 − 2 x3
d3 d3

Ecuación 5.3: Fórmulas para la proyección paralela 3D→2D [Aguilera 07].

Estas ecuaciones se pueden escribir en forma matricial y utilizando coordenadas

homogéneas de la siguiente manera:

⎡ 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

X1X3 y X2X3, pero estos casos no serán tratados en esta investigación.

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 ⎠

Una de las ventajas de utilizar coordenadas homogéneas, es que se pueden tener

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

que p' = (d 3 x1 − d1 x3 d 3 x 2 − d 2 x3 0 d 3 ) , y la expresión matricial de la proyección se

puede reescribir como:

⎡ 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 ⎦

Ecuación 5.4: Expresión matricial para la proyección paralela 3D→2D.

Puede verificarse que la Ecuación 5.2, donde simplemente se ignora a la tercera

componente, es un caso particular de la Ecuación 5.3 para d = (0,0,1) .

5.5.2 Proyección Paralela 4D→3D

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

el vector d = (d1 , d 2 , d 3 , d 4 ) y el volumen de proyección es el volumen principal X1X2X3,

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

de la ecuación paramétrica de la recta de la siguiente forma:

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

despeja el parámetro t como t = − x 4 / d 4 , substituyendo este valor en el resto de ecuaciones

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

Ecuación 5.5: Fórmulas para la proyección paralela 4D→3D.

Estas ecuaciones se pueden escribir en forma matricial, utilizando coordenadas

homogéneas y eliminando los denominadores de la siguiente manera:

⎡ 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 ⎥⎦

Ecuación 5.6: Expresión matricial para la proyección paralela 4D→3D.

Esta ecuación produce un punto de la forma:

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

En general, en nD los rayos proyectores pueden tener asignada una dirección,

cualquiera que no sea paralela al hiperplano (n-1)-dimensional de proyección. Si la

dirección de proyección está dada por el vector d = (d1 , d 2 , d 3 , K, d n ) y el hiperplano de

proyección es el hiperplano principal X1X2X3…Xn-1, esto implica que dn ≠ 0 para que los

rayos no sean paralelos al hiperplano de proyección.

Entonces sea p = ( x1 , x 2 , x3 , K, x n ) ∈ ℜ n , un punto cuya proyección en el hiperplano

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

calcular haciendo uso de la ecuación paramétrica de la recta de la siguiente forma:

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

La última ecuación asegura que p' está en el hiperplano X1X2X3…Xn-1, y de aquí se

puede despeja el parámetro t como t = − x n / d n , substituyendo este valor en el resto de

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

Ecuación 5.7: Fórmulas para la proyección paralela nD→(n-1)D.

140
Estas ecuaciones se pueden escribir en forma matricial, utilizando coordenadas

homogéneas y eliminando los denominadores de la siguiente manera:

⎡ 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 ⎥⎦

Ecuación 5.8: Expresión matricial para la proyección paralela nD→(n-1)D.

Esta ecuación produce un punto de la forma:

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 ).

5.6 Proyección Perspectiva


En la proyección perspectiva a diferencia de la proyección paralela, los rayos

proyectores tienen una dirección diferente para cada punto del objeto a proyectar.

5.6.1 Proyección Perspectiva 3D→2D

En 3D, la proyección perspectiva se obtiene de la siguiente forma. Sea c = (c1 , c 2 , c3 )

el centro de proyección, X1X2 el plano de proyección y p = ( x1 , x 2 , x3 ) ∈ ℜ 3 , un punto cuya

proyección en el plano X1X2 es p ' = ( x1 ' , x 2 ' ,0) (Ver Figura 5.5).

141
X2

p' = ( x1 ' , x2 ' ,0)


p = ( x1 , x2 , x3 )

Plano de
proyección

X3

Centro de
proyección
X1
c = (c1 , c2 , c3 )

Figura 5.5 Proyección perspectiva de un punto p en el plano X1X2.

Los valores de x1' y x2' se pueden calcular haciendo uso de la ecuación paramétrica de

la recta (ver Sección 5.4 ) de la siguiente forma:

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

el parámetro t como t = x3 (c3 − x3 ) , substituyendo este valor en el resto de ecuaciones se

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

Ecuación 5.9: Fórmulas para la proyección perspectiva 3D→2D [Aguilera 07].

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

en coordenadas homogéneas se tiene que:

p' = (c3 x1 − c1 x3 c3 x 2 − c 2 x3 0 c 3 − x3 )

Entonces, en forma matricial utilizando coordenadas homogéneas se tiene:

⎡ 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 ⎦

Ecuación 5.10: Expresión matricial para la proyección perspectiva 3D→2D.

5.6.2 Proyección Perspectiva 4D→3D

En 4D, la proyección perspectiva se puede obtener de la siguiente forma. Sea

c = (c1 , c 2 , c3 , c 4 ) el centro de proyección, X1X2X3 el volumen de proyección y

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 de la ecuación paramétrica

de la recta, de la siguiente forma:

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

despejar el parámetro t como t = x 4 (c 4 − x 4 ) , substituyendo este valor en el resto de

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

Ecuación 5.11: Fórmulas para la proyección perspectiva 4D→3D.

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 ⎠

Multiplicando por (c 4 − x 4 ) se elimina el denominador, y de esta forma, nuevamente

en coordenadas homogéneas se tiene que:

p' = (c 4 x1 − c1 x 4 c4 x2 − c2 x4 c 4 x 3 − c3 x 4 0 c4 − x4 )

Entonces, en forma matricial utilizando coordenadas homogéneas se tiene:

⎡ 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 ⎥⎦

Ecuación 5.12: Expresión matricial para la proyección perspectiva 4D→3D.

5.6.3 Proyección Perspectiva nD→(n-1)D

En general, en nD, la proyección perspectiva se puede obtener de la siguiente forma.

Sea c = (c1 , c 2 , c3 , K, c n ) el centro de proyección, X1X2X3…Xn-1 el hiperplano (n-1)-

dimensional de proyección y p = ( x1 , x 2 , x3 ,K x n ) ∈ ℜ n , un punto cuya proyección en el

hiperplano X1X2X3…Xn-1 es p' = ( x1 ' , x 2 ' , K, x n' −1 ,0) .

144
Los valores de x1', x2' y x3' se pueden calcular haciendo uso de la ecuación paramétrica

de la recta, de la siguiente forma:

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 )

La última ecuación asegura que p' está en el hiperplano X1X2X3…Xn-1, y de aquí se

puede despejar el parámetro t como t = x n (c n − x n ) , substituyendo este valor en el resto de

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

Ecuación 5.13: Fórmulas para la proyección perspectiva nD→(n-1)D.

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 ⎠

Multiplicando por (c n − x n ) se elimina el denominador, y de esta forma, nuevamente

en coordenadas homogéneas se tiene que:

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 )

Entonces, en forma matricial utilizando coordenadas homogéneas se tiene:

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 ⎥⎦

Ecuación 5.14: Expresión matricial para la proyección perspectiva nD→(n-1)D.

5.7 Proyecciones Sucesivas


Se han analizado las proyecciones para llevar la información de un espacio nD al

espacio inmediato inferior (n-1)D, pero si se desea obtener una proyección nD→kD para

2 ≤ k ≤ n − 1 , se tiene que calcular las proyecciones sucesivas, es decir, primero se calcula

la proyección nD→(n-1)D, enseguida la proyección (n-1)D→(n-2)D y así sucesivamente

hasta obtener la proyección deseada. En el caso particular de la visualización de un espacio

nD en una pantalla de computadora se necesita una proyección sucesiva de nD a 2D.

En [Hollasch 91] se menciona que es posible combinar las proyecciones de 4D→3D y

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

estimación tiene las siguiente desventajas.

• No se pueden especificar independientemente los parámetros de visión para cada

proyección sucesiva.

• No se puede observar la proyección desde diferentes ángulos en los espacios

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,

tanto paralelas como perspectiva nD→2D.

5.8.1 Proyección Paralela nD→2D

Sea P3,2 la matriz de proyección paralela 3D→2D y P4,3 la matriz de proyección

paralela 4D→3D. Es posible obtener en un solo paso la matriz de proyección paralela

4D→2D (P4,2), multiplicando las matrices de proyección P4,3⋅P3,2, si en ambas proyecciones

se consideran los mismos parámetros en cada dimensión para crear los vectores de

dirección, es decir, d = (d1 , d 2 , d 3 ) en 3D y d = (d1 , d 2 , d 3 , d 4 ) en 4D, de esta forma:

⎡ 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 ⎥⎦

Con esto, se puede calcular la matiz de proyección paralela P5,2, multiplicando la

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

d = (d1 , d 2 , d 3 , d 4 ,d 5) en 5D. De esta forma:

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 ⎦⎥

Ecuación 5.15: Matriz de proyección paralela directa nD→2D.

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

Pn+1,2 es igual a Pn+1,n⋅ Pn,2.

Pn+1,2 se escribe como:

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 ⎥⎦

y es claro ver que esta matriz se puede reescribir como:

⎡ 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 ⎥⎦ ⎣

Lo que es equivalente a Pn+1,n⋅ Pn,2.

5.8.2 Proyección Perspectiva nD→2D

Sea Q3,2 la matriz de proyección perspectiva 3D→2D y Q4,3 la matriz de proyección

perspectiva 4D→3D. Si en ambas proyecciones se considera los mismos parámetros en

cada dimensión para crear los centros de proyección (es decir, c = (c1 , c 2 , c3 ) en 3D y

c = (c1 , c 2 , c3 , c 4 ) en 4D), es posible obtener en un solo paso, la matriz de proyección

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 ⎥⎦

Con esto, se puede calcular la matiz de proyección perspectiva Q5,2, multiplicando la

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

c = (c1 , c 2 , c3 , c 4 ,c 5 ) en 5D. De esta forma:

⎡ 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 ⎥⎦

Ecuación 5.16: Matriz de proyección perspectiva directa nD→2D.

Nuevamente se realiza la comprobación por inducción. Se asume que la matriz Qn,2 es

válida para cualquier n, entonces se prueba para n+1. De esta forma, se debe cumplir que la

matriz Qn+1,2 es igual a Qn+1,n⋅ Qn,2.

Qn+1,2 se escribe como:

⎡ 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 ⎦⎥

y es claro ver que esta matriz se puede reescribir como:

⎡ 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 ⎥⎦ ⎣

Lo que es equivalente a Qn+1,n⋅ Qn,2.

151
5.9 Resumen
En este capítulo se ha presentado una generalización de las matrices de proyección

nD→(n-1)D paralela y perspectiva, basándose en la ecuación paramétrica de la recta. Se

sabe que para obtener una proyección de un espacio nD a 2D, se necesitan de proyecciones

sucesivas, entonces se pueden definir diferentes parámetros de proyección (direcciones de

proyección para la proyección paralela y centros de proyección para la proyección

perspectiva) para cada dimensión, y con esto se pueden obtener proyecciones desde

diferentes ángulos de visión.

Para el caso cuando se comparten los valores para los parámetros de proyección en

cada proyección sucesiva, se demostró que la proyección de nD a 2D, puede realizarse 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 este capítulo se describe el desarrollo de un visualizador de rotaciones

multidimensionales. La finalidad de esto, es presentar de forma gráfica los resultados de las

ecuaciones y algoritmos presentados en esta investigación. Por medio del visualizador es

posible observar los fenómenos de las rotaciones en un espacio n-dimensional proyectados

en el monitor de la computadora.

6.1 Características
El visualizador se desarrolló en lenguaje de programación Borland Delphi 7, que

utiliza el compilador Object Pascal. Las principales características implementadas en este

sistema son:

• Generación de politopos regulares nD

- Hipercubo

- Simplex

- Politopo Cruz

• Proyecciones

- Perspectiva

- Paralela

• Definición de las direcciones de proyección para el caso de la proyección paralela y

de los centros de proyección para la proyección perspectiva.

• Rotaciones principales (Rotación alrededor de los hiperplanos principales)

153
• Definición de un eje (n-2)-dimensional de rotación.

• Definición de un plano de rotación.

• Generación del eje (n-2)-dimensional de rotación a partir del plano de rotación.

• Generación del plano de rotación a partir del eje (n-2)-dimensional de rotación.

La siguiente imagen, muestra la pantalla principal del visualizador, que contiene los

controles de las diferentes funciones implementadas.

Figura 6.1 Controles principales del visualizador.

154
6.2 Descripción
A continuación de describen las diferentes funciones con las que cuenta el

visualizador.

6.2.1 Trazo de Politopos

Los algoritmos presentados en la Sección 2.3 , para la generación automática de

vértice y aristas fueron implementados para poder crear politopos de cualquier dimensión.

A continuación se presentan ejemplos de la generación de los tres politopos implementados

en el sistema, para el caso del espacio 5D.

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

Se implementaron las proyecciones paralelas y perspectivas, mediante la técnica de

proyecciones sucesivas analizadas en la Sección 5.7 . Se pueden definir los valores para las

direcciones de proyección en el caso de proyecciones paralelas, o los centros de proyección

en el caso de proyecciones perspectivas. Aunque en la Sección 5.8 se propusieron las

ecuaciones para la proyección directa nD→2D tanto paralela como perspectiva, en el

visualizador se permite especificar independientemente los valores para cada proyección,

ya que esto permite obtener vistas desde diferentes ángulos de visión.

Un punto importante que cabe aclarar, es que si el usuario selecciona la proyección

paralela, todas las proyecciones sucesivas serán paralelas, lo mismo para el caso de la

proyección perspectiva. Es decir, no se manejan proyecciones paralelas y perspectivas

combinadas en una misma visualización.

A continuación se presenta la pantalla donde se pueden especificar los valores para las

direcciones o centros de proyección. Los valores se pueden introducir manualmente, o se

tiene la posibilidad de generar valores aleatorios. También se cuenta con la opción de salvar

y cargar archivos que contienen estos datos.

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

proyecciones de un simplex 5D en el plano 2D de la pantalla de la computadora.

a) b)

c) d)

Figura 6.4 Ejemplos de proyecciones de un simplex 5D: a) y b) proyección perspectiva,


c) y d) proyección paralela

6.2.3 Rotaciones Principales

Para el caso de rotaciones principales, se implementó la Ecuación 3.19: Matriz

general de rotaciones principales nD [Duffin 94]. Para ello, en la pantalla principal en el

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

realiza el giro negativo (del eje Xb al Xa).

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°.

6.2.4 Rotación Alrededor de un Hiperplano (n-2)-dimensional.

La implementación del algoritmo Aguilera-Perez presentado en la Sección 3.6.5 ,

permite llevar a cabo las rotaciones alrededor de un hiperplano (n-2)-dimensional,

proporcionando n-1 puntos no cohiperplanares para definirlo.

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

plano de rotación sean linealmente dependientes, el sistema mandará un mensaje de error.

En esta pantalla, también se cuenta con la opción de salvar y cargar archivos que contienen

los datos del hiperplano.

Figura 6.6 Pantalla de captura del hiperplano (n-2)-dimensional de rotación (ejemplo de caso 5D).

La Figura 6.7 muestra un ejemplo, con cuatro imágenes de la rotación de un politopo

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°.

6.2.5 Rotación en un Plano de Rotación.

La implementación de la Ecuación 4.7: Fórmula para la rotación general de un vector

x en nD., permite llevar a cabo las rotaciones en un plano de rotación definido por dos

vectores ortonormales a y b y su punto de aplicación.

A continuación se presenta la pantalla donde se pueden especificar los valores para

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

linealmente dependientes, el sistema mandará un mensaje de error.

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

el plano de rotación el cuál es ortogonal al hiperplano 3D de rotación. En el sistema, se

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

comportamiento que la rotación alrededor del hiperplano del cual se generó.

A continuación se presenta el ejemplo contrario, definiendo manualmente los datos

del plano de rotación y enseguida generando los valores del hiperplano de rotación.

Figura 6.9 Ejemplo de plano de rotación 5D.

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.

De esta forma, la Figura 6.11 muestra cuatro imágenes de la rotación de un hipercubo

5D, en el plano definido en la Figura 6.9 (o alrededor del hiperplano de la Figura 6.10). En

ambos casos el fenómeno de la rotación es el mismo.

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

multidimensionales. Mediante este software es posible visualizar los fenómenos de las

rotaciones aplicadas a los politopos nD en cualquier dimensión definida, manipulando

libremente los parámetros para cada proyección sucesiva.

Es posible observar los efectos de las rotaciones principales, o bien, se pueden

especificar los valores de los n-1 puntos que definen un eje de rotación, y los valores de los

vectores ortonormales que definen un plano de rotación. Además es posible obtener el

plano de rotación a partir de los datos introducidos en el eje de rotación y viceversa.

163
Capítulo 7: Conclusiones y Trabajo a Futuro.
Lo más bello que podemos experimentar es el misterio de las cosas

– Albert Einstein

7.1 Conclusiones: Resumen de Resultados Obtenidos


Los algoritmos y ecuaciones presentados en esta investigación, más allá de tener una

aplicación directa, pretenden aportar una base matemática, que pueda ser utilizada en

cualquier proyecto a futuro que requiera de transformaciones geométricas n-dimensionales,

principalmente donde se requiera realizar rotaciones. A continuación se mencionan los

resultados sobresalientes en cada una de las etapas de esta investigación.

7.1.1 Politopos

En el Capítulo 2, se analizaron los aspectos geométricos de los politopos regulares nD

(hipercubo, simplex y politopo cruz) y las características que deben cumplir para

considerarse regulares. Se presentaron las analogías para la creación de politopos de mayor

dimensionalidad, manteniendo un esquema homogéneo para la representación de los

vértices. Y gracias a esto fue posible generalizar su representación, y se facilitó el

desarrollo de algoritmos para la generación automática de las coordenadas de los vértices y

el orden en que tienen que ser unidos para crear las aristas.

7.1.2 Rotaciones

En el Capítulo 3, se hizo un repaso de transformaciones geométricas: translación,

escalamiento y rotación, generalizadas a cualquier dimensión, donde en particular la

translación es utilizada dentro del proceso para realizar las rotaciones multidimensionales

generales. Se analizó la evolución de las rotaciones, partiendo de 2D a cualquier dimensión,

164
concluyendo que, una forma de realizar las rotaciones en un espacio n-dimensional en

general, es necesario proporcionar n-1 puntos no cohiperplanares, cuyo hiperplano de

soporte (n-2)-dimensional define el eje de rotación alrededor del cual se desea realizar el

giro.

Otra forma de realizar las rotaciones multidimensionales fue presentada en el Capítulo

4, donde se muestra que es posible llevar a cabo una rotación, cuando se proporciona un

plano de rotación definido por dos vectores ortonormales y su punto de aplicación.

Ambos enfoques presentados son válidos por las propiedades matemáticas que se

utilizaron en su formulación, pero dependen de la información con la que se cuente para

realizar los giros. Aunque se presentó la demostración de equivalencia de ambos enfoques,

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

de rotación y viceversa, y de esta forma poder unificarlos.

Los resultados de esta unificación fueron validados con la publicación de un artículo

en el Encuentro de Estudiantes de Ciencias de la Computación (E2C2) del Centro de

Investigación en Computación del IPN [Cruz-Matías 2007].

7.1.3 Visualización de las Rotaciones Multidimensionales Generales

En el Capítulo 5, se presentó un análisis de las proyecciones geométricas, donde se

obtuvieron las matrices de proyección nD→(n-1)D paralela y perspectiva, con esto es

posible llevar la información de un espacio n-dimensional a un espacio menor, como el

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

proyección general nD→2D paralela o perspectiva, respectivamente.

Para mostrar gráficamente los resultados del trabajo obtenidos en esta investigación,

se desarrolló un visualizador de rotaciones multidimensionales, mediante el cual, es posible

visualizar los fenómenos de las rotaciones en un hiperespacio, proyectados en el monitor de

la computadora.

Gracias a este visualizador, es posible observar de manera gráfica, que los dos

métodos de rotaciones multidimensionales generales presentados en este trabajo, tienen un

mismo comportamiento. Esto además refuerza la validez de los procesos propuestos para la

unificación de ambos métodos.

7.2 Trabajo a Futuro


En esta sección se describen algunas líneas de investigación futuras identificadas

durante el desarrollo de este trabajo.

7.2.1 Visualización

Aunque los algoritmos propuestos en la sección 2.3 , generan correctamente los

vértices y aristas de los politopos regulares nD, se puede optimizar la representación de

ellos, para obtener la lista menor de puntos que represente al mismo politopo, de esta forma

se puede reducir el número de comandos necesarios para realizar el trazo en la

computadora.

Quizá el trabajar con el modelo de alambres resulta insatisfactorio al momento de

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

visualizar las diferentes celdas (n-1)-dimensionales durante las rotaciones, pudiendo

intercambiar interactivamente entre ellas, sombreándolas con un color semi-transparente.

Una representación de esta idea se muestra en la siguiente imagen, de un hipercubo 4D.

Figura 7.1 Celdas (n-1)-dimensionales de un hipercubo 4D sombreadas.

Un trabajo en cuanto a la representación gráfica, es mejorar el visualizador

multidimensional en cuanto al diseño de la interfaz con controles más amigables. También

se puede complementar para crear un navegador multidimensional, dotándolo de funciones

adicionales, como la inclusión de la visión de una cámara virtual n-dimensional, que

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

espacio nD y mostrarla en un espacio 2D, será necesario manipular independientemente

cada una de las cámaras virtuales, de otra forma, mucha de la información se puede

colapsar al momento de generar la escena.

167
7.2.2 Determinación de la Dirección de Giros Positivos en nD

Una dificultad matemática que se encontró durante esta investigación, es determinar

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

“reglas de la mano derecha” para el espacio 4D y superiores. Por tanto un trabajo

interesante, es el determinar la dirección de los giros positivos alrededor de un hiperplano

(n-2)-dimensional de rotación.

El método propuesto en el Capítulo 4 para obtener el plano de rotación a partir del

hiperplano (n-2)-dimensional de rotación y viceversa, garantiza que tanto el plano como el

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

algunas dimensiones, las rotaciones cambiaban de sentido, es decir el giro positivo en un

enfoque correspondían al giro negativo en el otro. El proceso final presentado en este

documento preserva el sentido de los giros en cualquier dimensión, sin embargo, queda

pendiente la demostración matemática que lo compruebe.

7.2.3 Ortonormalizar dos Vectores en un Espacio n-dimensional

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

continuación se presentan las primeras aproximaciones para los casos 2D y 3D.

En 2D, no es necesario realizar proceso alguno, porque únicamente se tiene un posible

plano de rotación, que puede ser sin problemas representado por los vectores de las bases

canónicas e1 y e2, los cuales por definición son ortonormales.

En 3D, dados dos vectores x, y ∈ ℜ3 linealmente independientes, se puede calcular

los vectores â y b̂ ortonormales con los siguientes pasos:

1. El primer paso es calcular un vector b = ( x × y ) × x . El vector resultante de x × y es un

vector ortogonal al plano definido por x e y, entonces b será un vector que se

encuentra en el mismo plano definido por x e y, pero que es ortogonal al vector x.

2. Normalizar el vector x para obtener el vector normal â .

3. Normalizar el vector b para obtener el vector b̂ .

Entonces, â y b̂ definen el mimo plano que x e y, salvo que los primeros son

ortonormales.

En 4D, si se piensa en utilizar una técnica similar al caso 3D, se necesitará de un

vector adicional para poder trabajar con el producto cruz 4D. Y en general en nD se

necesitarán de n-3 vectores adicionales.

169

También podría gustarte