Aprender a diseñar modelos jerárquicos es algo muy sencillo. Aun así es posible que se nos atranque cuando comenzamos en el mundo de la informática gráfica. En este ejemplo usaré un trabajo propio sobre un modelo jerárquico de un objeto articulado, un Robot.
Como requisitos previos necesitamos:
- Un SO con Linux.
- gcc/g++ o similar.
- Librerías de OpenGL y de gráficos actualizadas.
Si no comprendes alguno de los requisitos te recomiendo que vuelvas al libro de teoría antes de meterle mano al asunto en cuestión de programación. No pretendo explicar paso a paso cada linea de código o decisión que tome en el momento de programarlo pero me apasiona la idea de que este proyecto pueda servir de inspiración o ayuda a algún curioso o erudito al que le interese el mundo de la informática gráfica.
Los archivos que os adjunto son:
- Una imagen JPG: «diseñodelmodelo» donde, de forma gráfica, se describe el modelo que va a ser diseñado. Hay que tener en cuenta que la nomenclatura de cada parte del diseño será utilizada más adelante como referencia en el grafo jerárquico.
- Una imagen JPG: «grafojerarquico» donde se ha diseñado el grafo que define el modelo anteriormente diseñado, junto a sus transformaciones geométricas pertinentes.
- Una carpeta: «Código» donde se adjunta todo el código que se ha programado basándose en los modelos anteriores. Como resultado se ha obtenido un objeto 3D.
Cabe destacar que todos los archivos adjuntos están protegidos bajo licencia GPL.
Archivo comprimido Robot: Grafo + Modelo + Código
Se ha procurado que el código sea lo más sencillo posible. También se ha intentando comentar todo el código para facilitar una comprensión más rápida. Aun así, ya sabéis que si os surge alguna duda o problema podéis poneros en contacto conmigo para aclararla.
Para compilar y probarlo simplemente debéis hacer lo siguiente:
- Abrir un Terminal.
- Ir a la carpeta donde hayáis descomprimido todo el código.
%make %chmod +x robot %./robot
En caso de fallar la compilación deberéis editar el makefile y añadir los siguientes parámetros:
En caso de g++
LIBS= -lglut -lGL -lGLU
En caso de gcc
LIBS= -lglut -lGL -lGLU -lc -lm
Espero sinceramente que os sirva de ayuda para esos trabajos o proyectos que a veces se convierten en pequeños problemas. ¡A jugar con el robot!
¡Un saludo!