From 86ad43c2dc507b5257685c847683a23420eaf752 Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Thu, 19 Sep 2024 08:58:36 +0600 Subject: [PATCH] nlroff -> markdown --- Makefile | 9 +- doc/design.md | 121 ++++++++++++++++++++ doc/design.nr | 310 -------------------------------------------------- 3 files changed, 122 insertions(+), 318 deletions(-) create mode 100644 doc/design.md delete mode 100644 doc/design.nr diff --git a/Makefile b/Makefile index ec14bd2..139423e 100644 --- a/Makefile +++ b/Makefile @@ -14,16 +14,12 @@ OBJ = \ LIB = \ $(LIBGLFW) -DOC = \ - doc/design.html - CFLAGS = \ -I./ext/cglm/include \ -I./ext/glfw/include \ -Wall -Wno-unused-function -std=c89 all: $(BIN) $(LIB) -doc: $(DOC) $(BIN): $(OBJ) $(LIB) $(CC) -lGL -lglfw -L. -o $(BIN) $(OBJ) @@ -40,10 +36,7 @@ clean: clean-all: rm $(OBJ) $(DOC) $(LIB) $(BIN) -.SUFFIXES: .nr .html .html .c .o - -.nr.html: - cat $< | nlroff > $@ +.SUFFIXES: .c .o .c.o: $(CC) $(CFLAGS) $< -c -o $@ diff --git a/doc/design.md b/doc/design.md new file mode 100644 index 0000000..ce4999b --- /dev/null +++ b/doc/design.md @@ -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. + 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. + diff --git a/doc/design.nr b/doc/design.nr deleted file mode 100644 index b23ef48..0000000 --- a/doc/design.nr +++ /dev/null @@ -1,310 +0,0 @@ -.PP CB -manigraph: Manual de Diseno ( ver 1.0 ) -.PP C -Diaz Camacho Pedro Emilio - -.SH 1 -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. - -.NH 1 -Tecnologias -.NH 2 -Lenguajes: -.QS * - .IP - C89 -.QE - -.NH 2 -Librerias: -.QS * - .IP - OpenGL - .IP - GLFW - .IP - cglm -.QE - -.NH 1 -Archivos -.QS * - .IP - Ejecutable. - .IP - Ejemplo. - .QS * - .IP - Una libreria tipo STB, con las funciones para hacer variedades con una - funcion parametrizadora. - .IP - LA PARAMETRIZACION DEBE SER CONTINUA. - .IP - El codigo fuente de un programa que cree la variedad de una botella - de klein usando esta libreria. - .QE - .IP - Manual - .QS * - .IP - Explicando como correr el programa desde la terminal. - .IP - Explicando como interactuar con el programa con el teclado y mouse. - .IP - Explicando el formato binario de las variedaedes. - .IP - Explicando la libreria STB. - .QE -.QE - -.NH 1 -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 X - .IP - Rotar estos ejes, - .IP - 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 X - Usando solo el teclado. - .QE -.QE - -.NH 2 -Prioridad baja -.QS _ - .IP - El usuario quiere guardar las transformaciones como un archivo GIF. -.QE - -.NH 1 -Camino - -.QS - .IP 0 - Graficadora de un cubo. - .QS - .IP - Se hace un programa que muestre un cubo. - .IP - Se muestran los 3 ejes del cubo - .IP - Se rota el cubo en sus 3 ejes usando el teclado. - .IP - Se rota el cubo en sus 3 ejes usando el mouse. - .IP - Se muestran la etiqueta de los ejes. - .IP - Se hace el formato de objetos multidimensionales. - .QE - .IP - Programa ejemplo - .QS - .IP - Se hace un programa que divida un cuadrado en triangulos. - .IP - Se mapea cada vertice del triangulo en un punto de la cinta de - mobius usando una parametrizacion - .IP - Se mapea cada vertice del triangulo en un punto de la botella de - klein usando una parametrizacion - .IP - Se divide cada lado de un cubo de n dimensiones, en triangulos. - .QE - - .IP - Graficadora de variedades - .QS - .IP - Se generaliza el programa para usar este formato. - .IP - Se muestran la informacion de los ejes mostrados y cuantos hay. - .IP - Se pueden cambiar los ejes por pares - .QS - .IP - Usando el mouse. - .IP - Usando el teclado. - .QE - .QE - - .IP - Detalles. - .QS - .IP - Se anima el cambio de eje. - .IP - Se hace el generador de GIF. - .IP - Se puede cambiar el shader - .IP - Documentacion - .QE - -.QE - -.NH 1 -Cronograma -.PP -.TS lclc - .CS - .CL - Persona - .CL - Ver - .CL - Objetivo - .CL - Fecha - .CE - .CS - .CL - Alan - .CL - .CL - Familiarizarse con el codigo - .CL - 15-Sep-2024 - .CE - .CS - .CL - .CL - 3.1 - .CL - Sombreado - .CL - 17-Nov-2024 - .CE - .CS - .CL - Francisco - .CL - .CL - Familiarizarse con el codigo - .CL - 15-Sep-2024 - .CE - .CS - .CL - .CL - 0.4 - .CL - Seleccionar ejes con el mouse - .CL - 29-Sep-2024 - .CE - .CS - .CL - .CL - 0.4 - .CL - Rotar ejes con el scroll del mouse - .CL - 13-Oct-2024 - .CE - .CS - .CL - Roberto - .CL - .CL - Familiarizarse con el codigo - .CL - 15-Sep-2024 - .CE - .CL - .CL - 1.2 - .CL - Programa ejemplo mobius - .CL - 13-Oct-2024 - .CS - .CL - .CL - 1.3 - .CL - Programa ejemplo klein - .CL - 20-Oct-2024 - .CE -.TE - -.NH 1 -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. -.QS - .IP - Con glVertexAttribPointer podemos pasar las coordenadas del eje - seleccionado, al shader. - .IP - Con la funcion mix del shader y bloqueando el input, podemos hacer - una animacion pasando una variable con la cpu. - .IP - 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. -