nlroff -> markdown
This commit is contained in:
9
Makefile
9
Makefile
@@ -14,16 +14,12 @@ OBJ = \
|
|||||||
LIB = \
|
LIB = \
|
||||||
$(LIBGLFW)
|
$(LIBGLFW)
|
||||||
|
|
||||||
DOC = \
|
|
||||||
doc/design.html
|
|
||||||
|
|
||||||
CFLAGS = \
|
CFLAGS = \
|
||||||
-I./ext/cglm/include \
|
-I./ext/cglm/include \
|
||||||
-I./ext/glfw/include \
|
-I./ext/glfw/include \
|
||||||
-Wall -Wno-unused-function -std=c89
|
-Wall -Wno-unused-function -std=c89
|
||||||
|
|
||||||
all: $(BIN) $(LIB)
|
all: $(BIN) $(LIB)
|
||||||
doc: $(DOC)
|
|
||||||
|
|
||||||
$(BIN): $(OBJ) $(LIB)
|
$(BIN): $(OBJ) $(LIB)
|
||||||
$(CC) -lGL -lglfw -L. -o $(BIN) $(OBJ)
|
$(CC) -lGL -lglfw -L. -o $(BIN) $(OBJ)
|
||||||
@@ -40,10 +36,7 @@ clean:
|
|||||||
clean-all:
|
clean-all:
|
||||||
rm $(OBJ) $(DOC) $(LIB) $(BIN)
|
rm $(OBJ) $(DOC) $(LIB) $(BIN)
|
||||||
|
|
||||||
.SUFFIXES: .nr .html .html .c .o
|
.SUFFIXES: .c .o
|
||||||
|
|
||||||
.nr.html:
|
|
||||||
cat $< | nlroff > $@
|
|
||||||
|
|
||||||
.c.o:
|
.c.o:
|
||||||
$(CC) $(CFLAGS) $< -c -o $@
|
$(CC) $(CFLAGS) $< -c -o $@
|
||||||
|
|||||||
121
doc/design.md
Normal file
121
doc/design.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.
|
||||||
|
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.
|
||||||
|
|
||||||
310
doc/design.nr
310
doc/design.nr
@@ -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.
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user