aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Phillips <dbphillipsnz@gmail.com>2016-06-01 13:45:28 +1200
committerDavid Phillips <dbphillipsnz@gmail.com>2016-06-01 13:45:28 +1200
commitda9941939798abe41caa07830a5605f0d131a2f2 (patch)
treeba7d8e12f379d3d632ed02477dc747de58b0bac4
parentf2371dcb179928b8b36587d822daeb919b7d2d84 (diff)
downloadfractal-gen-da9941939798abe41caa07830a5605f0d131a2f2.tar.xz
Coords are now centre of image rather than top left
-rw-r--r--algorithms/burning-ship.c12
-rw-r--r--algorithms/mandelbrot.c11
-rwxr-xr-xextra/burning-ship-lattice-gen.sh2
-rw-r--r--fractal-gen.c12
-rw-r--r--fractal-gen.h4
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;
};