mandelbrot generating code code example

Example: mandelbrot generating code

function mandelIter(cx, cy, maxIter) {  var x = 0.0;  var y = 0.0;  var xx = 0;  var yy = 0;  var xy = 0;   var i = maxIter;  while (i-- && xx + yy <= 4) {    xy = x * y;    xx = x * x;    yy = y * y;    x = xx - yy + cx;    y = xy + xy + cy;  }  return maxIter - i;} function mandelbrot(canvas, xmin, xmax, ymin, ymax, iterations) {  var width = canvas.width;  var height = canvas.height;   var ctx = canvas.getContext('2d');  var img = ctx.getImageData(0, 0, width, height);  var pix = img.data;   for (var ix = 0; ix < width; ++ix) {    for (var iy = 0; iy < height; ++iy) {      var x = xmin + (xmax - xmin) * ix / (width - 1);      var y = ymin + (ymax - ymin) * iy / (height - 1);      var i = mandelIter(x, y, iterations);      var ppos = 4 * (width * iy + ix);       if (i > iterations) {        pix[ppos] = 0;        pix[ppos + 1] = 0;        pix[ppos + 2] = 0;      } else {        var c = 3 * Math.log(i) / Math.log(iterations - 1.0);         if (c < 1) {          pix[ppos] = 255 * c;          pix[ppos + 1] = 0;          pix[ppos + 2] = 0;        }        else if ( c < 2 ) {          pix[ppos] = 255;          pix[ppos + 1] = 255 * (c - 1);          pix[ppos + 2] = 0;        } else {          pix[ppos] = 255;          pix[ppos + 1] = 255;          pix[ppos + 2] = 255 * (c - 2);        }      }      pix[ppos + 3] = 255;    }  }   ctx.putImageData(img, 0, 0);} var canvas = document.createElement('canvas');canvas.width = 900;canvas.height = 600; document.body.insertBefore(canvas, document.body.childNodes[0]); mandelbrot(canvas, -2, 1, -1, 1, 1000);

Tags:

Misc Example