Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *
- *
- */
- #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;
- }
Advertisement
Add Comment
Please, Sign In to add comment