Mandelbrot
description
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