From af2c2afa1d1062f046b33e5263975ad30f414902 Mon Sep 17 00:00:00 2001 From: PedroEdiaz Date: Thu, 17 Oct 2024 20:14:50 -0600 Subject: [PATCH] Fix alan --- src/banda_mob.c | 49 ++++++++++++++++++++++++++++++------------------- src/main.c | 4 +++- 2 files changed, 33 insertions(+), 20 deletions(-) diff --git a/src/banda_mob.c b/src/banda_mob.c index bd4b855..76bf8e9 100644 --- a/src/banda_mob.c +++ b/src/banda_mob.c @@ -1,14 +1,21 @@ #include #include "main.h" #include +#include -#define PI 3.14159265358979323846 -#define GRID_SIZE 256 -#define WIDTH 0.5 // Ancho de la cinta de Möbius +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif -void getMobiusPoint(float *p, int i, int j) { - float u = (2*PI) * ( (float)i/(GRID_SIZE+1) ); - float v = (2*WIDTH) * ((float)j/(GRID_SIZE+1) ) - WIDTH; +#define GRID_SIZE 16 +#define WIDTH 0.5 + +typedef void(*function_t)(float*,int,int); + +void mobius(float *p, int i, int j) +{ + float u = (2*M_PI) * ((float)i/(GRID_SIZE) ); + float v = (2*WIDTH) * ((float)j/(GRID_SIZE) ) - WIDTH; p[0] = cos(u) + v * cos(u / 2) * cos(u); p[1] = sin(u) + v * cos(u / 2) * sin(u); @@ -16,10 +23,11 @@ void getMobiusPoint(float *p, int i, int j) { } float * acabron(){ - int k=0; - long size = GRID_SIZE*GRID_SIZE*2*3; - + long size = GRID_SIZE*GRID_SIZE*2*3*3; + function_t f = mobius; float * d_cube; + int k=0; + d_cube = malloc((size+1)*sizeof(float)); d_cube[0] = size; @@ -28,21 +36,24 @@ float * acabron(){ for (int j = 0; j < GRID_SIZE; j++) { // Triángulo 1 - getMobiusPoint(&d_cube[k + 1], i, j); - getMobiusPoint(&d_cube[k + 2], i + 1, j); - getMobiusPoint(&d_cube[k + 3], i + 1, j + 1); + f(&d_cube[k + 1], i, j); + k+=3; + f(&d_cube[k + 1], i + 1, j); + k+=3; + f(&d_cube[k + 1], i + 1, j + 1); + k+=3; // Triángulo 2 - getMobiusPoint(&d_cube[k + 4], i, j); - getMobiusPoint(&d_cube[k + 5], i, j + 1); - getMobiusPoint(&d_cube[k + 6], i + 1, j + 1); - - // Imprimir los triángulos generados - k+=6; + f(&d_cube[k + 1], i, j); + k+=3; + f(&d_cube[k + 1], i, j + 1); + k+=3; + f(&d_cube[k + 1], i + 1, j + 1); + k+=3; } } return d_cube; -} \ No newline at end of file +} diff --git a/src/main.c b/src/main.c index bb60dbe..bfd7331 100644 --- a/src/main.c +++ b/src/main.c @@ -1,8 +1,10 @@ #include "main.h" #include "data/axis.h" #include "data/shaders.h" +#include #include - +#include + #define WIDTH 512 #define HEIGHT 512