doc/: definir como funcionan los archivos
This commit is contained in:
121
doc/design.md
121
doc/design.md
@@ -1,121 +0,0 @@
|
||||
# Manual de Diseño
|
||||
Diaz Camacho Pedro Emilio
|
||||
|
||||
# Resumen
|
||||
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.
|
||||
|
||||
# Tecnologias
|
||||
## Lenguajes:
|
||||
* C89
|
||||
## Librerias:
|
||||
* OpenGL
|
||||
* GLFW
|
||||
* cglm
|
||||
|
||||
# Archivos
|
||||
* Ejecutable.
|
||||
* Ejemplo.
|
||||
* Una libreria tipo STB, con las funciones para hacer variedades con una
|
||||
funcion parametrizadora.
|
||||
* LA PARAMETRIZACION DEBE SER CONTINUA.
|
||||
* El codigo fuente de un programa que cree la variedad de una botella
|
||||
de klein usando esta libreria.
|
||||
* Manual
|
||||
* Explicando como correr el programa desde la terminal.
|
||||
* Explicando como interactuar con el programa con el teclado y mouse.
|
||||
* Explicando el formato binario de las variedaedes.
|
||||
* Explicando la libreria STB.
|
||||
|
||||
# Objetivos
|
||||
## Prioridad alta
|
||||
_ El programa debe actualizarse cuando interactuan con el.
|
||||
_ El usuario quiere:
|
||||
X Ver 3 ejes en todo momento.
|
||||
_ Ver que ejes esta viendo.
|
||||
_ Ver cuantos ejes hay.
|
||||
X El usuario quiere:
|
||||
X Rotar estos ejes,
|
||||
X Ver donde quedan los ejes despues de la rotados.
|
||||
_ El usuario experimentado quiere ejecutar el programa y pasar la variedad:
|
||||
_ Como argumento del programa.
|
||||
_ Desde la entrada standar del programa.
|
||||
|
||||
## Prioridad media
|
||||
|
||||
_ El usuario quiere:
|
||||
_ Cambiar los ejes que se ven por pares.
|
||||
_ Cambiar los ejes donde esta la informacion de los ejes.
|
||||
_ El usuario quiere interactuar con el programa:
|
||||
_ Usando solo el mouse.
|
||||
_ Usando solo el teclado.
|
||||
|
||||
## Prioridad baja
|
||||
_ El usuario quiere guardar las transformaciones como un archivo GIF.
|
||||
|
||||
# Camino
|
||||
|
||||
0 Graficadora de un cubo.
|
||||
0 Se hace un programa que muestre un cubo.
|
||||
0 Se muestran los 3 ejes del cubo
|
||||
0 Se rota el cubo en sus 3 ejes usando el teclado.
|
||||
0 Se rota el cubo en sus 3 ejes usando el mouse.
|
||||
0 Se muestran la etiqueta de los ejes.
|
||||
0 Se hace el formato de objetos multidimensionales.
|
||||
0 Programa ejemplo
|
||||
0 Se hace un programa que divida un cuadrado en triangulos.
|
||||
0 Se mapea cada vertice del triangulo en un punto de la cinta de
|
||||
mobius usando una parametrizacion
|
||||
0 Se mapea cada vertice del triangulo en un punto de la botella de
|
||||
klein usando una parametrizacion
|
||||
0 Se divide cada lado de un cubo de n dimensiones, en triangulos.
|
||||
|
||||
0 Graficadora de variedades
|
||||
0 Se generaliza el programa para usar este formato.
|
||||
0 Se muestran la informacion de los ejes mostrados y cuantos hay.
|
||||
0 Se pueden cambiar los ejes por pares
|
||||
0 Usando el mouse.
|
||||
0 Usando el teclado.
|
||||
0 Detalles.
|
||||
0 Se anima el cambio de eje.
|
||||
0 Se hace el generador de GIF.
|
||||
0 Se puede cambiar el shader
|
||||
0 Documentacion
|
||||
|
||||
# Cronograma
|
||||
|
||||
| Persona | Ver | Objetivo| Fecha|
|
||||
|.........|....|..........|......|
|
||||
|Alan ||Familiarizarse con el codigo| 15-Sep-2024|
|
||||
||3.1| Sombreado |17-Nov-2024|
|
||||
|...|...|...|...|
|
||||
|Francisco||Familiarizarse con el codigo|15-Sep-2024|
|
||||
||0.4| Seleccionar ejes con el mouse|29-Sep-2024|
|
||||
||0.4|Rotar ejes con el scroll del mouse| 13-Oct-2024|
|
||||
|...|...|...|...|
|
||||
|Roberto||Familiarizarse con el codigo|15-Sep-2024|
|
||||
||1.2 Programa ejemplo mobius|13-Oct-2024|
|
||||
||1.3 Programa ejemplo klein|20-Oct-2024|
|
||||
|
||||
|
||||
## Problemas
|
||||
OpenGL esperan objetos tridimensionales, no de n dimensiones.
|
||||
|
||||
Usando glVertexAttribPointer podemos pasar las coordenadas que
|
||||
queramos de los puntos de las variedades, y con ello usar objetos 3D en
|
||||
el shader.
|
||||
|
||||
## Rotar ejes por pares en una animacion continua.
|
||||
* Con glVertexAttribPointer podemos pasar las coordenadas del eje
|
||||
seleccionado, al shader.
|
||||
* Con la funcion mix del shader y bloqueando el input, podemos hacer
|
||||
una animacion pasando una variable con la cpu.
|
||||
* Cuando la animacion termine intercambiar los indices del layout,
|
||||
usando glVertexAttribPointer otra vez.
|
||||
|
||||
## Volumen de la variedad.
|
||||
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.
|
||||
|
||||
50
doc/es/dev/estructura-archivos.md
Normal file
50
doc/es/dev/estructura-archivos.md
Normal file
@@ -0,0 +1,50 @@
|
||||
# Estructura de archivos
|
||||
Díaz Camacho Pedro Emilio
|
||||
|
||||
# Headers
|
||||
## main.h
|
||||
Este archivo incluye los prototipos internos que va a usar el programa
|
||||
funge como api interna para los desarrolladores y debe estar bien documentada.
|
||||
|
||||
# Datos
|
||||
## data/cube.h
|
||||
## data/axis.h
|
||||
## data/shaders.h
|
||||
|
||||
# codigo fuente
|
||||
## main.c
|
||||
Este archivo inclye la función principal, debe inicializar, ejecutar, y terminar el programa correctamente,
|
||||
así como avisar de los errores cuando aparezcan.
|
||||
## color.c
|
||||
Incluye las funciones para escoger y pintar el color de fondo.
|
||||
### Depende de
|
||||
- <GL/gl.h>
|
||||
## input.c
|
||||
Incluye el código necesario para interactuar con el program
|
||||
### Depende de
|
||||
- <GLFW/glfw3.h>
|
||||
- <cglm/quat.h>
|
||||
## matrix.c
|
||||
Debe cargar en la gpu las matrices que use el programa.
|
||||
### Depende de
|
||||
- <cglm/mat4.h>
|
||||
- <cglm/cam.h>
|
||||
- <cglm/quat.h>
|
||||
## mesh.c
|
||||
Debe crear, destruir y dibujar los mesh, que son la representación de objetos tridimensionales.
|
||||
### Depende de
|
||||
- <GL/gl.h>
|
||||
- <stdlib.h>
|
||||
## shader.c
|
||||
Debe crear, destruir y usar los shaders, que son programas para la gpu, así como tener funciones
|
||||
para cargar estructuras a la gpu.
|
||||
### Depende de
|
||||
- <GL/gl.h>
|
||||
## texture.c
|
||||
Debe cargar, usar, destruir las texturas, también crea una textura para una paleta de colores.
|
||||
### Depende de
|
||||
- <GL/gl.h>
|
||||
## window.c
|
||||
Crea, usa, y cierra una ventana, también avisa cuando la ventana está abierta.
|
||||
### Depende de
|
||||
- <GLFW/glfw3.h>
|
||||
121
doc/es/tech/diseno.md
Normal file
121
doc/es/tech/diseno.md
Normal file
@@ -0,0 +1,121 @@
|
||||
# Manual de Diseño
|
||||
Diaz Camacho Pedro Emilio
|
||||
|
||||
# Resumen
|
||||
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.
|
||||
|
||||
# Tecnologias
|
||||
## Lenguajes:
|
||||
- C89
|
||||
## Librerias:
|
||||
- OpenGL
|
||||
- GLFW
|
||||
- cglm
|
||||
|
||||
# Archivos
|
||||
- Ejecutable.
|
||||
- Ejemplo.
|
||||
- Una libreria tipo STB, con las funciones para hacer variedades con una
|
||||
funcion parametrizadora.
|
||||
- LA PARAMETRIZACION DEBE SER CONTINUA.
|
||||
- El codigo fuente de un programa que cree la variedad de una botella
|
||||
de klein usando esta libreria.
|
||||
- Manual
|
||||
- Explicando como correr el programa desde la terminal.
|
||||
- Explicando como interactuar con el programa con el teclado y mouse.
|
||||
- Explicando el formato binario de las variedaedes.
|
||||
- Explicando la libreria STB.
|
||||
|
||||
# Objetivos
|
||||
## Prioridad alta
|
||||
- [] El programa debe actualizarse cuando interactuan con el.
|
||||
- [] El usuario quiere:
|
||||
- [X] Ver 3 ejes en todo momento.
|
||||
- [] Ver que ejes esta viendo.
|
||||
- [] Ver cuantos ejes hay.
|
||||
- [X] El usuario quiere:
|
||||
- [X] Rotar estos ejes,
|
||||
- [X] Ver donde quedan los ejes despues de la rotados.
|
||||
- [] El usuario experimentado quiere ejecutar el programa y pasar la variedad:
|
||||
- [] Como argumento del programa.
|
||||
- [] Desde la entrada standar del programa.
|
||||
|
||||
## Prioridad media
|
||||
|
||||
- [] El usuario quiere:
|
||||
- [] Cambiar los ejes que se ven por pares.
|
||||
- [] Cambiar los ejes donde esta la informacion de los ejes.
|
||||
- [] El usuario quiere interactuar con el programa:
|
||||
- [] Usando solo el mouse.
|
||||
- [] Usando solo el teclado.
|
||||
|
||||
## Prioridad baja
|
||||
- [] El usuario quiere guardar las transformaciones como un archivo GIF.
|
||||
|
||||
# Camino
|
||||
|
||||
0. Graficadora de un cubo.
|
||||
1. Se hace un programa que muestre un cubo.
|
||||
1. Se muestran los 3 ejes del cubo
|
||||
1. Se rota el cubo en sus 3 ejes usando el teclado.
|
||||
1. Se rota el cubo en sus 3 ejes usando el mouse.
|
||||
1. Se muestran la etiqueta de los ejes.
|
||||
1. Se hace el formato de objetos multidimensionales.
|
||||
0. Programa ejemplo
|
||||
1. Se hace un programa que divida un cuadrado en triangulos.
|
||||
1. Se mapea cada vertice del triangulo en un punto de la cinta de
|
||||
mobius usando una parametrizacion
|
||||
1. Se mapea cada vertice del triangulo en un punto de la botella de
|
||||
klein usando una parametrizacion
|
||||
1. Se divide cada lado de un cubo de n dimensiones, en triangulos.
|
||||
|
||||
0. Graficadora de variedades
|
||||
1. Se generaliza el programa para usar este formato.
|
||||
1. Se muestran la informacion de los ejes mostrados y cuantos hay.
|
||||
1. Se pueden cambiar los ejes por pares
|
||||
1. Usando el mouse.
|
||||
1. Usando el teclado.
|
||||
0. Detalles.
|
||||
0. Se anima el cambio de eje.
|
||||
0. Se hace el generador de GIF.
|
||||
0. Se puede cambiar el shader
|
||||
0. Documentacion
|
||||
|
||||
# Cronograma
|
||||
|
||||
| Persona | Ver | Objetivo| Fecha|
|
||||
|.........|....|..........|......|
|
||||
|Alan ||Familiarizarse con el codigo| 15-Sep-2024|
|
||||
||3.1| Sombreado |17-Nov-2024|
|
||||
|...|...|...|...|
|
||||
|Francisco||Familiarizarse con el codigo|15-Sep-2024|
|
||||
||0.4| Seleccionar ejes con el mouse|29-Sep-2024|
|
||||
||0.4|Rotar ejes con el scroll del mouse| 13-Oct-2024|
|
||||
|...|...|...|...|
|
||||
|Roberto||Familiarizarse con el codigo|15-Sep-2024|
|
||||
||1.2 Programa ejemplo mobius|13-Oct-2024|
|
||||
||1.3 Programa ejemplo klein|20-Oct-2024|
|
||||
|
||||
|
||||
## Problemas
|
||||
OpenGL esperan objetos tridimensionales, no de n dimensiones.
|
||||
|
||||
Usando glVertexAttribPointer podemos pasar las coordenadas que
|
||||
queramos de los puntos de las variedades, y con ello usar objetos 3D en
|
||||
el shader.
|
||||
|
||||
## Rotar ejes por pares en una animacion continua.
|
||||
- Con glVertexAttribPointer podemos pasar las coordenadas del eje
|
||||
seleccionado, al shader.
|
||||
- Con la funcion mix del shader y bloqueando el input, podemos hacer
|
||||
una animacion pasando una variable con la cpu.
|
||||
- Cuando la animacion termine intercambiar los indices del layout,
|
||||
usando glVertexAttribPointer otra vez.
|
||||
|
||||
## Volumen de la variedad.
|
||||
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.
|
||||
|
||||
Reference in New Issue
Block a user