www.pudn.com > CG2Programs.rar > mandelbrot.c
/* mandelbrot, Chapter 10, p. 384 */ #include#include /* EXAMPLE STARTS HERE */ #include "graphics.h" typedef struct { float x, y; } Complex; Complex complexSquare (Complex c) { Complex cSq; cSq.x = c.x * c.x - c.y * c.y; cSq.y = 2 * c.x * c.y; return (cSq); } int iterate (Complex zInit, int maxIter) { Complex z = zInit; int cnt = 0; /* Quit when z * z > 4 */ while ((z.x * z.x + z.y * z.y <= 4.0) && (cnt < maxIter)) { z = complexSquare (z); z.x += zInit.x; z.y += zInit.y; cnt++; } return (cnt); } void mandelbrot (int nx, int ny, int maxIter, float realMin, float realMax, float imagMin, float imagMax) { float realInc = (realMax - realMin) / nx; float imagInc = (imagMax - imagMin) / ny; Complex z; int x, y; int cnt; for (x=0, z.x=realMin; x