Fix size with variable grid
This commit is contained in:
@@ -39,7 +39,7 @@ int factorial(int n)
|
||||
return n * factorial(n - 1);
|
||||
}
|
||||
|
||||
int numero_caras(int n)
|
||||
int faces(int n)
|
||||
{
|
||||
if (n == 2)
|
||||
return 1;
|
||||
@@ -107,27 +107,36 @@ void klein(float *d_surface, int *coord, unsigned char *grid)
|
||||
float *generate_data_surface(unsigned char *dim, unsigned long *vertex)
|
||||
{
|
||||
unsigned int i, j, k, o, p, n;
|
||||
long size, q = 0;
|
||||
unsigned long size, q = 0;
|
||||
float *d_surface;
|
||||
int *cara;
|
||||
|
||||
parm.f = mobius;
|
||||
parm.m = 2;
|
||||
parm.n = 3;
|
||||
parm.grid = (char[2]){16, 2};
|
||||
parm.f = cube;
|
||||
parm.m = 5;
|
||||
parm.n = 5;
|
||||
parm.grid = (char[7]){16, 2, 8, 4, 3, 5, 1};
|
||||
|
||||
#ifdef TEST
|
||||
assert(numero_caras(2) == 1);
|
||||
assert(numero_caras(3) == 6);
|
||||
assert(numero_caras(4) == 24);
|
||||
assert(faces(2) == 1);
|
||||
assert(faces(3) == 6);
|
||||
assert(faces(4) == 24);
|
||||
#endif
|
||||
|
||||
*dim = parm.n;
|
||||
*vertex = 0;
|
||||
|
||||
for (o = 0; o < parm.m; o++)
|
||||
for (p = 0; p < o; p++)
|
||||
*vertex += parm.grid[p] * parm.grid[o] * 6;
|
||||
{
|
||||
unsigned char test = 0;
|
||||
for (o = 0; o < parm.m; o++)
|
||||
{
|
||||
for (p = 0; p < o; p++)
|
||||
{
|
||||
test += 1;
|
||||
*vertex += parm.grid[p] * parm.grid[o] * 6 * faces(parm.n);
|
||||
}
|
||||
}
|
||||
*vertex /= test;
|
||||
}
|
||||
|
||||
cara = malloc(parm.m * sizeof(int));
|
||||
size = (*dim) * (*vertex);
|
||||
@@ -186,6 +195,7 @@ float *generate_data_surface(unsigned char *dim, unsigned long *vertex)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef TEST
|
||||
assert(q == size);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user