#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
+#include <math.h>
#include "point.h"
Point last;
Point rect;
file = fopen (filename, "r");
+ if (file == NULL)
+ {
+ fprintf (stderr, "Could not open file %s\n", filename);
+ exit (1);
+ }
points = g_array_new (FALSE, TRUE, sizeof (Point));
buffer = NULL;
len = 0;
return frames;
}
+GArray *
+get_scales (int n)
+{
+ GArray *scales;
+ double scale;
+ double factor;
+ scales = g_array_new (FALSE, TRUE, sizeof (double));
+ factor = pow (4.0, 1.0/((double) n/2));
+ factor = 1.0/factor;
+ for (scale = 4.00; scale > 1.0 && scales->len < n/2; scale *= factor)
+ scales = g_array_append_val (scales, scale);
+ factor = 1.0/factor;
+ for (scale = 1.0; scale < 4.0 && scales->len < n; scale *= factor)
+ scales = g_array_append_val (scales, scale);
+ return scales;
+}
+
void
-rescale_points (GArray *points)
+rescale_points (GArray *points, GArray *scales)
{
Point *point;
+ double scale;
int i;
for (i = 0; i < points->len; i++)
{
point = &(g_array_index (points, Point, i));
- point->rx = 4.0;
- point->ry = 4.0;
+ scale = g_array_index (scales, double, (i % scales->len));
+ point->rx = scale;
+ point->ry = scale;
point->x *= point->rx;
point->y *= point->ry;
}