xxxxxxxxxx
const MAX_ITERATIONS = 20;
const ITER_SHADE_SCALE = 255 / MAX_ITERATIONS;
const ESCAPE_RADIUS = 2;
const LIMIT = ESCAPE_RADIUS * ESCAPE_RADIUS;
const WIDTH = 700;
const HEIGHT = 550;
const PIXEL_SCALE = 1/200; // scales picture up
const X_MOD = 0.8; // pans picture left
function setup() {
createCanvas(WIDTH, HEIGHT);
background(100);
noStroke();
rectMode(CENTER);
frameRate(1);
}
function iterateOnce(z, i, c)
{
if (i <= MAX_ITERATIONS)
{
z = [
sq(z[0]) - sq(z[1]) + c[0],
2 * z[0] * z[1] + c[1]
];
if (sq(z[0]) + sq(z[1]) > LIMIT)
{
return z, i, false;
}
i++
}
return z, i, true;
}
function complexize(x, y)
{
c = [
(x - WIDTH / 2) * PIXEL_SCALE - X_MOD,
(y - HEIGHT / 2) * PIXEL_SCALE
];
return c;
}
function draw() {
let z;
let i;
let result;
for (let x = 1; x <= WIDTH; x++)
{
for (let y = 1; y <= HEIGHT; y++)
{
result, iter = inMandelbrotSet(complexize(x, y));
niter = 100 - iter;
fill (iter * ITER_SHADE_SCALE);
rect (x, y, 1, 1);
}
}
}