|
@@ -16,27 +16,27 @@ double map(int value, int min, int max, int map_min, int map_max)
|
|
|
void mandelbrot(double *field, int w, int h, int bail_out, int max_iter)
|
|
|
{
|
|
|
double xPrime, yPrime, real, imaginary, realPrime,
|
|
|
- imaginaryPrime,x2, y2;
|
|
|
+ imaginaryPrime, x2, y2;
|
|
|
int bailed = 0, x, y, k;
|
|
|
for (x = 0; x < w; x++) {
|
|
|
for (y = 0; y < h; y++) {
|
|
|
xPrime = map(x, 0, w, -2, 2);
|
|
|
yPrime = map(y, 0, h, -2, 2);
|
|
|
- x2 = xPrime;
|
|
|
- y2 = yPrime;
|
|
|
+ x2 = xPrime;
|
|
|
+ y2 = yPrime;
|
|
|
|
|
|
- // iterate a^2 - b^2 + 2ab
|
|
|
+ // iterate a^2 - b^2 + 2ab
|
|
|
for (k = 0; k < max_iter; k++) {
|
|
|
- bailed = 0;
|
|
|
- // a^2 - b^2
|
|
|
+ bailed = 0;
|
|
|
+ // a^2 - b^2
|
|
|
real = xPrime * xPrime - yPrime * yPrime;
|
|
|
- // 2ab
|
|
|
+ // 2ab
|
|
|
imaginary = 2 * xPrime * yPrime;
|
|
|
-
|
|
|
- // real + c
|
|
|
+
|
|
|
+ // x = real + c
|
|
|
xPrime = real + x2;
|
|
|
- // imaginary + c
|
|
|
- yPrime = imaginary + y2;
|
|
|
+ // y = imaginary + c
|
|
|
+ yPrime = imaginary +y2;
|
|
|
|
|
|
if ((xPrime * xPrime + yPrime * yPrime) >
|
|
|
bail_out) {
|
|
@@ -47,7 +47,7 @@ void mandelbrot(double *field, int w, int h, int bail_out, int max_iter)
|
|
|
if (k == max_iter) {
|
|
|
field[x * h + y] = 0;
|
|
|
} else {
|
|
|
- field[x * h + y] = k;
|
|
|
+ field[x * h + y] = k;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -58,19 +58,18 @@ int main(int argc, char **argv)
|
|
|
|
|
|
double pix_field[WIDTH][HEIGHT];
|
|
|
|
|
|
- mandelbrot((double *) pix_field, WIDTH, HEIGHT, BAIL_OUT, MAX_ITER);
|
|
|
+ mandelbrot((double *) pix_field, WIDTH, HEIGHT, BAIL_OUT,
|
|
|
+ MAX_ITER);
|
|
|
+
|
|
|
+ for (int i = 0; i < WIDTH; i++) {
|
|
|
+ for (int j = 0; j < HEIGHT; j++) {
|
|
|
+ printf("[%.2lf]", pix_field[i][j]);
|
|
|
+ }
|
|
|
|
|
|
- for (int i=0; i< WIDTH; i++)
|
|
|
- {
|
|
|
- for (int j=0; j<HEIGHT; j++)
|
|
|
- {
|
|
|
- printf("[%.2lf]", pix_field[i][j]);
|
|
|
- }
|
|
|
+ printf("\n");
|
|
|
|
|
|
- printf("\n");
|
|
|
-
|
|
|
- }
|
|
|
+ }
|
|
|
|
|
|
- return (0);
|
|
|
+ return (0);
|
|
|
|
|
|
}
|