diff options
author | David Phillips <dbphillipsnz@gmail.com> | 2016-06-01 13:45:28 +1200 |
---|---|---|
committer | David Phillips <dbphillipsnz@gmail.com> | 2016-06-01 13:45:28 +1200 |
commit | da9941939798abe41caa07830a5605f0d131a2f2 (patch) | |
tree | ba7d8e12f379d3d632ed02477dc747de58b0bac4 | |
parent | f2371dcb179928b8b36587d822daeb919b7d2d84 (diff) | |
download | fractal-gen-da9941939798abe41caa07830a5605f0d131a2f2.tar.xz |
Coords are now centre of image rather than top left
-rw-r--r-- | algorithms/burning-ship.c | 12 | ||||
-rw-r--r-- | algorithms/mandelbrot.c | 11 | ||||
-rwxr-xr-x | extra/burning-ship-lattice-gen.sh | 2 | ||||
-rw-r--r-- | fractal-gen.c | 12 | ||||
-rw-r--r-- | fractal-gen.h | 4 |
5 files changed, 24 insertions, 17 deletions
diff --git a/algorithms/burning-ship.c b/algorithms/burning-ship.c index 7e27e4b..6f8c9d9 100644 --- a/algorithms/burning-ship.c +++ b/algorithms/burning-ship.c @@ -34,17 +34,21 @@ void struct frame *f = &(d->parent_frame); unsigned int x,y,i; double a,b; + double left,top; double complex z,c; defaultsd(&d->parent_frame.scale, 3.5f); - defaultsd(&d->parent_frame.top, -2.2f); - defaultsd(&d->parent_frame.left, -2.2f); + defaultsd(&d->parent_frame.x, -0.45f); + defaultsd(&d->parent_frame.y, -0.45f); + + left = d->parent_frame.x - (d->parent_frame.scale / 2); + top = d->parent_frame.y - (d->parent_frame.scale / 2); /* FIXME document this */ - b = clust_id*(f->scale/size)+f->top; /* FIXME document this */ + b = clust_id*(f->scale/size)+top; /* FIXME document this */ for (y = clust_id; y < size; y += clust_total) { - a = d->core*(f->scale/size)+f->left; + a = d->core*(f->scale/size)+left; for (x = d->core; x < size; x += cores) { z = 0; c = a+I*b; diff --git a/algorithms/mandelbrot.c b/algorithms/mandelbrot.c index 51d0c43..33d7cde 100644 --- a/algorithms/mandelbrot.c +++ b/algorithms/mandelbrot.c @@ -34,18 +34,21 @@ void struct frame *f = &(d->parent_frame); unsigned int x,y,i; double a,b; + double left, top; double complex z,c; - defaultsd(&d->parent_frame.top, -1.75f); - defaultsd(&d->parent_frame.left, -2.5f); defaultsd(&d->parent_frame.scale, 3.5f); + defaultsd(&d->parent_frame.x, -0.75f); + defaultsd(&d->parent_frame.y, 0); + left = d->parent_frame.x - (d->parent_frame.scale / 2); + top = d->parent_frame.y - (d->parent_frame.scale / 2); /* FIXME document this */ - b = clust_id*(f->scale/size)+f->top; /* FIXME document this */ + b = clust_id*(f->scale/size)+top; /* FIXME document this */ for (y = clust_id; y < size; y += clust_total) { - a = d->core*(f->scale/size)+f->left; + a = d->core*(f->scale/size)+left; for (x = d->core; x < size; x += cores) { z = 0; c = a + I*b; diff --git a/extra/burning-ship-lattice-gen.sh b/extra/burning-ship-lattice-gen.sh index 1a39c0d..68f483e 100755 --- a/extra/burning-ship-lattice-gen.sh +++ b/extra/burning-ship-lattice-gen.sh @@ -1,3 +1,3 @@ #!/bin/sh -exec ./burning-ship-gen -x -1.8 -y -0.082 -z 0.09 $@ +exec ../burning-ship-gen -x -1.755 -y -0.037 -z 0.09 $@ diff --git a/fractal-gen.c b/fractal-gen.c index e80c96a..73bd25f 100644 --- a/fractal-gen.c +++ b/fractal-gen.c @@ -140,8 +140,8 @@ main(int argc, char **argv) /* FIXME repetition */ sections[i].core = i; sections[i].width = width; - sections[i].parent_frame.top = f.top; - sections[i].parent_frame.left = f.left; + sections[i].parent_frame.y = f.y; + sections[i].parent_frame.x = f.x; sections[i].parent_frame.scale = f.scale; sections[i].datasize = toalloc; fprintf(stderr, " -> Thread %lu\r", i); @@ -207,8 +207,8 @@ parse_args(int argc, char **argv) clust_id = 0; clust_total = 1; - f.left = nan(""); - f.top = nan(""); + f.x = nan(""); + f.y = nan(""); f.scale = nan(""); /* bail out early if no arguments are supplied */ @@ -228,8 +228,8 @@ parse_args(int argc, char **argv) case 'N': clust_id = atoi(optarg); break; case 'T': clust_total = atoi(optarg); break; - case 'x': f.left = atof(optarg); break; - case 'y': f.top = atof(optarg); break; + case 'x': f.x = atof(optarg); break; + case 'y': f.y = atof(optarg); break; case 'z': f.scale = atof(optarg); break; /* redundant case for '?', but explicitness is best */ diff --git a/fractal-gen.h b/fractal-gen.h index a103d1f..210d50f 100644 --- a/fractal-gen.h +++ b/fractal-gen.h @@ -29,8 +29,8 @@ #include <pthread.h> struct frame { - double top; - double left; + double x; + double y; double scale; }; |