This commit is contained in:
PedroEdiaz
2024-10-17 20:14:50 -06:00
parent 7333f3933c
commit af2c2afa1d
2 changed files with 33 additions and 20 deletions

View File

@@ -1,14 +1,21 @@
#include <stdio.h>
#include "main.h"
#include <math.h>
#include <stdlib.h>
#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;
}
}

View File

@@ -1,8 +1,10 @@
#include "main.h"
#include "data/axis.h"
#include "data/shaders.h"
#include <stdlib.h>
#include <GL/glew.h>
#include <stdlib.h>
#define WIDTH 512
#define HEIGHT 512