269 lines
4.3 KiB
Plaintext
269 lines
4.3 KiB
Plaintext
.TL
|
|
manigraph: Manual de Diseno ( ver 1.0 )
|
|
.AU
|
|
Diaz Camacho Pedro Emilio
|
|
|
|
.SH
|
|
Resumen
|
|
.PP
|
|
manigraph es un graficador de variedades que lee archivos binarios con un forma
|
|
to espacial, este viene con un manual explicando como correr el programa, como
|
|
interactuar con el programa y las especificaciones del archivo binario.
|
|
|
|
.SH
|
|
Tabla de contenidos
|
|
|
|
.QS
|
|
.IP 1
|
|
Tecnologias
|
|
.QS
|
|
.IP 1
|
|
Lenguajes.
|
|
.IP 2
|
|
Librerias.
|
|
.QE
|
|
.IP 2
|
|
Glosario
|
|
.IP 3
|
|
Archivos
|
|
.QS
|
|
.IP 1
|
|
Ejecutable
|
|
.IP 2
|
|
Ejemplo
|
|
.IP 3
|
|
Manual
|
|
.QE
|
|
.IP 4
|
|
Objetivos
|
|
.QS
|
|
.IP 1
|
|
Prioridad Alta
|
|
.IP 2
|
|
Prioridad Media
|
|
.IP 3
|
|
Prioridad Baja
|
|
.QE
|
|
.IP 5
|
|
Camino
|
|
.IP 6
|
|
Problemas
|
|
.QE
|
|
|
|
.NH
|
|
Tecnologias
|
|
.NH 2
|
|
Lenguajes:
|
|
.QS
|
|
.IP \(bu
|
|
C89
|
|
.QE
|
|
|
|
.NH 2
|
|
Librerias:
|
|
.QS
|
|
.IP \(bu
|
|
OpenGL
|
|
.IP \(bu
|
|
GLFW
|
|
.IP \(bu
|
|
cglm
|
|
.QE
|
|
|
|
.NH
|
|
Glosario
|
|
.IP variedad
|
|
Llamaremos variedad al archivo binario con la informacion para graficar
|
|
la variedad matematica.
|
|
|
|
.NH
|
|
Archivos
|
|
.QS
|
|
.IP \(bu
|
|
Ejecutable.
|
|
.IP \(bu
|
|
Ejemplo.
|
|
.QS
|
|
.IP \(bu
|
|
Una libreria tipo STB, con las funciones para hacer variedades con una
|
|
funcion parametrizadora.
|
|
.IP \(bu
|
|
LA PARAMETRIZACION DEBE SER CONTINUA.
|
|
.IP \(bu
|
|
El codigo fuente de un programa que cree la variedad de una botella
|
|
de klein usando esta libreria.
|
|
.QE
|
|
.IP \(bu
|
|
Manual
|
|
.QS
|
|
.IP \(bu
|
|
Explicando como correr el programa desde la terminal.
|
|
.IP \(bu
|
|
Explicando como interactuar con el programa con el teclado y mouse.
|
|
.IP \(bu
|
|
Explicando el formato binario de las variedaedes.
|
|
.IP \(bu
|
|
Explicando la libreria STB.
|
|
.QE
|
|
.QE
|
|
|
|
.NH
|
|
Objetivos
|
|
.NH 2
|
|
Prioridad alta
|
|
.QS
|
|
.IP _
|
|
El programa debe actualizarse cuando interactuan con el.
|
|
.IP _
|
|
El usuario quiere:
|
|
.QS
|
|
.IP X
|
|
Ver 3 ejes en todo momento.
|
|
.IP _
|
|
Ver que ejes esta viendo.
|
|
.IP _
|
|
Ver cuantos ejes hay.
|
|
.QE
|
|
.IP X
|
|
El usuario quiere:
|
|
.QS
|
|
.IP X
|
|
Rotar estos ejes,
|
|
.IP X
|
|
Ver donde quedan los ejes despues de la rotados.
|
|
.QE
|
|
.IP _
|
|
El usuario experimentado quiere ejecutar el programa y pasar la variedad:
|
|
.QS
|
|
.IP _
|
|
Como argumento del programa.
|
|
.IP _
|
|
Desde la entrada standar del programa.
|
|
.QE
|
|
.QE
|
|
|
|
.NH 2
|
|
Prioridad media
|
|
|
|
.QS
|
|
.IP _
|
|
El usuario quiere:
|
|
.QS
|
|
.IP _
|
|
Cambiar los ejes que se ven por pares.
|
|
.IP _
|
|
Cambiar los ejes donde esta la informacion de los ejes.
|
|
.QE
|
|
.IP _
|
|
El usuario quiere interactuar con el programa:
|
|
.QS
|
|
.IP _
|
|
Usando solo el mouse.
|
|
.IP _
|
|
Usando solo el teclado.
|
|
.QE
|
|
.QE
|
|
|
|
.NH 2
|
|
Prioridad baja
|
|
.QS
|
|
.IP _
|
|
El usuario quiere guardar las transformaciones como un archivo GIF.
|
|
.QE
|
|
|
|
.NH
|
|
Camino
|
|
|
|
.QS
|
|
.IP 0
|
|
Graficadora de un cubo.
|
|
.QS
|
|
.IP 1
|
|
Se hace un programa que muestre un cubo.
|
|
.IP 2
|
|
Se muestran los 3 ejes del cubo
|
|
.IP 3
|
|
Se rota el cubo en sus 3 ejes usando el teclado.
|
|
.IP 4
|
|
Se rota el cubo en sus 3 ejes usando el mouse.
|
|
.IP 5
|
|
Se muestran la etiqueta de los ejes.
|
|
.QE
|
|
.IP 1
|
|
Formato.
|
|
.QS
|
|
.IP 1
|
|
Se hace el formato de las variedades.
|
|
.IP 2
|
|
Se hace el codigo fuente ejemplo.
|
|
.QS
|
|
.IP 1
|
|
Libreria STB.
|
|
.IP 2
|
|
Codigo fuente para hacer la variedad de la botella de klein.
|
|
.QE
|
|
.QE
|
|
|
|
.IP 2
|
|
Graficadora de variedades
|
|
.QS
|
|
.IP 1
|
|
Se generaliza el programa para usar este formato.
|
|
.IP 2
|
|
Se muestran la informacion de los ejes mostrados y cuantos hay.
|
|
.IP 3
|
|
Se pueden cambiar los ejes por pares
|
|
.QS
|
|
.IP 1
|
|
Usando el mouse.
|
|
.IP 2
|
|
Usando el teclado.
|
|
.QE
|
|
.QE
|
|
|
|
.IP 3
|
|
Detalles.
|
|
.QS
|
|
.IP 1
|
|
Se anima el cambio de eje.
|
|
.IP 2
|
|
Se hace el generador de GIF.
|
|
.IP 3
|
|
Se puede cambiar el shader
|
|
.IP 4
|
|
Documentacion
|
|
.QE
|
|
|
|
.QE
|
|
|
|
.NH
|
|
Problemas
|
|
.NH 2
|
|
OpenGL esperan objetos tridimensionales, no de n dimensiones.
|
|
.PP
|
|
Usando glVertexAttribPointer podemos pasar las coordenadas que
|
|
queramos de los puntos de las variedades, y con ello usar objetos 3D en
|
|
el shader.
|
|
|
|
.NH 2
|
|
Rotar ejes por pares en una animacion continua.
|
|
.PP
|
|
.QS
|
|
.IP 1
|
|
Con glVertexAttribPointer podemos pasar las coordenadas del eje
|
|
seleccionado, al shader.
|
|
.IP 2
|
|
Con la funcion mix del shader y bloqueando el input, podemos hacer
|
|
una animacion pasando una variable con la cpu.
|
|
.IP 3
|
|
Cuando la animacion termine intercambiar los indices del layout,
|
|
usando glVertexAttribPointer otra vez.
|
|
.QE
|
|
|
|
.NH 2
|
|
Volumen de la variedad.
|
|
.PP
|
|
Dado que la funcion parametrizadora es continua, mandamos la frontera
|
|
de un n-cubo a la frontera de una variedad, por lo que solo basta
|
|
graficar la frontera de la variedad.
|