Desarrollo de Videojuegos
|
|
Matemáticas Básicas
Álbegra Matricial. Modelado alámbrico de figuras 3D
|
|
Artículo realizado por
David Isla "Cid"
Capítulo 1.
Introducción.
Bienvenido a este pequeño cursillo. En breves momentos pasaré a explicar algunas de las posibilidades que nos brinda el álgebra matricial. No es mi objetivo dar aquí un curso sobre matemáticas o trigonometría, tan solo explicar, por encima, el uso de estos métodos para su aplicación en el campo de las dos y tres dimensiones. Espero que después de que leáis este texto, podáis pasar fácilmente a algún libro o documento mucho más denso.
Estos artículos no van orientados hacia un tipo de lector concreto. No necesitas saber programar videojuegos para entender esta sencilla introducción. Además, lo aquí expuesto, puede ser desarrollado en cualquier lenguaje de programación si bien, conocer algo del lenguaje C te ayudará a entender todo mejor pues los ejemplos están construidos en dicho lenguaje. Como el DOS ya está obsoleto, el proyecto general de este curso se ha construido como un programa Windows es por esto que, si conoces el sistema de mensajes en Windows (mensaje WM_PAINT), entenderás algunas cosas mejor. Pero repito, no es necesario saber un lenguaje concreto para entender esta breve introducción al álgebra matricial.
Para terminar con esta introducción os comento que, mientras avancemos en los artículos, realizaremos un proyecto en Visual C++. Esta herramienta fue escogida por una sencilla razón, tengo la licencia :). Ya se que ha muchos os resultara 'grotesco', pero para mi y para el objetivo de estos artículos, Visual C++ 6.0 da la talla para explicároslo.
Bueno, al lío que para eso estamos aquí.
Matemáticas con matrices
Todos conocemos el plano cartesiano, en este podemos identificar una coordenada por dos valores, con el valor del eje x y con el valor del eje y. Resulta también sencillo añadir una tercera dimensión a estas dos anteriores (eje z) para obtener un punto en un plano tridimensional.


Existen tres operaciones básicas que podremos realizar con estos puntos, éstas son trasladar, escalar y rotar. Para trasladar un punto, tan solo debemos sumar a sus coordenadas un valor de traslación y el punto se moverá de lugar. Veamos un ejemplo de ello:
Si tenemos el eje tridimensional (3,3,5) y deseamos trasladarlo 2 puntos en el eje de la X y suponiendo que (3,3,5) es una matriz en C, sumaremos 2 a la posición 0, 0 a la posición 1 y de nuevo 0 a la posición 2.
// Inincialización del vector double eje[3]
eje[0] = 3;
eje[1] = 3;
eje[2] = 5;
// Traslacción en el eje de las X
eje[0] += 2;
eje[1] += 0;
eje[2] += 0;
Igual de sencillo nos resultaría escalar un punto, para ello en vez de sumar multiplicaríamos cada coordenada por un valor de "escalación", por ejemplo 2 o 1.2 o 0.5. Esta operación aplicada a todos los puntos de una figura produciría el escalamiento de la misma

Pues bien, esta sencilla operación, junto a la de rotación, son posibles utilizando la matemática matricial. Todo se basa en multiplicar ciertas matrices por el vector eje, consiguiendo los resultados que deseamos: trasladar, escalar y rotar en las tres dimensiones.
¿Y por qué utilizar álgebra matricial?
Pues por algunas razones, la primera sin duda es la claridad del código. Resulta muy lógico y comprensible para el programador mantener y manejar arrays de tres elementos. Otra razón es la facilidad de operación (realmente sencilla ya veréis). En fin, existen varias respuestas a esta pregunta (aunque por supuesto yo no las conozco todas).
¿Y cuales son estas matrices? me preguntareis, pues están todas en el siguiente capitulo, que paso a explicar ahora mismo.
Puedes conseguir el código fuente del artículo pulsando aquí
ÚLTIMA REVISIÓN EN FEBRERO DE 1999
DESARROLLO DE VIDEOJUEGOS
|
|