Mandelbrot

Post on 02-Nov-2015

216 views 0 download

description

Algoritmo in C per generare Insieme di Mandelbrot

Transcript of Mandelbrot

/* Programma per disegnare l'insieme di Mandelbrot */

C

/* Programma per disegnare l'insieme di Mandelbrot */

/* Autore: Pino Navato */

#include

#include

typedef double Tfloat; /* Tipo delle variabili floating point */

const char* PATH_TO_BGI = "c:\\tc\\bgi";

const Tfloat INFX = -2, SUPX = 2, /* Porzione di piano complesso */

INFY = -2, SUPY = 2; /* da visualizzare */

const unsigned MAXCONT = 61, /* Max num. di ripetizioni del ciclo WHILE */

SHIFT_COL = 7; /* Cambia questa costante per... */

/* ...modificare tutti i colori */

Tfloat cre, cim; /* Parte reale e immaginaria di c */

Tfloat zre, zim; /* Parte reale e immaginaria di z */

Tfloat temp_zre; /* Variabile temporanea per Zre */

Tfloat latox, /* Largh. del rettangolo di piano considerato */

latoy; /* Altezza del rettangolo di piano considerato */

Tfloat incremx, /* Distanza orizz. tra due punti consecutivi */

incremy; /* Distanza vert. tra due punti consecutivi */

unsigned i, j; /* Coordinate di un pixel */

unsigned col; /* Colore scelto per il pixel esaminato */

unsigned contatore; /* Numero di ripetizioni del ciclo WHILE */

int gd, gm;

int err_code;

int main(void)

{

gd = DETECT;

initgraph(&gd, &gm, PATH_TO_BGI);

err_code = graphresult();

if (err_code != grOk)

{

cprintf("%s\n", grapherrormsg(err_code));

return 1;

}

latox = SUPX - INFX; latoy = SUPY - INFY;

incremx = latox/getmaxx(); incremy = latoy/getmaxy();

for (i=0; i-0.5 && cre