bearbear12345 icon

Untitled

bearbear12345 | PRO | 04/16/14 02:23:16 AM UTC | 0 ⭐ | 274 👁️ | Never ⏰ | []
text |

1.82 KB

|

None

|

0 👍

/

0 👎

/*
 *
 *
 */
 #include <stdlib.h>
#include <stdio.h>
#include <assert.h>
#include <math.h>
#include "mandelbrot.h"
 #define MAX_ESCAPESTEPS 256
 int main (int argc, char *argv[]) {
    double xcentre = 0;
   double ycentre = 0;
   int z = 8;
    double pixeldistance = pow(2, -z);
    // start from the top left of the region
   double firstX = (xcentre - 256); //* pixeldistance;
   double lastX = (xcentre + 256);
   double firstY = (ycentre + 256);
   double lastY = (ycentre - 256);
   double middleX = (firstX + lastX);
   double middleY = (firstY + lastY);
    printf("midpoint: (%lf,%lf)\n", middleX, middleY);  
   printf("firstX = %lf\n", firstX);
   printf("lastX = %lf\n", lastX);
   printf("firstY = %lf\n", firstY);
   printf("lastY = %lf\n", lastY);
    int x;
   for (x = -256; x <= 256; x++) {
      double y;
     //  printf("%i\n", escapeSteps(x, y));
        for (y = -256*pixeldistance; y <= 256*pixeldistance; y+=pixeldistance) {
         printf("(%f,%f)", x, y);
 //         printf("%i\n", escapeSteps(x, y));
          if (escapeSteps(x, y) < MAX_ESCAPESTEPS) {
            printf("*");
         } else {
            printf(" ");                   
         }
      }
      printf("\n");
   }
    return EXIT_SUCCESS;
}
 int escapeSteps (double x, double y) {
   int steps = 0;
   double real = 0;
   double imaginary = 0;
   double modSquared = ((real * real) + (imaginary * imaginary));
   double newImaginary;
   double newReal;
   while (modSquared < 4 && steps < MAX_ESCAPESTEPS) {
      newImaginary = (2 * imaginary * real)+y;
      newReal = ((real * real) - (imaginary * imaginary))+x;
      imaginary = newImaginary;
      real = newReal;
      modSquared = ((newReal * newReal) + (newImaginary * newImaginary));
      steps++;
   }
    return steps;
}

Comments