xxxxxxxxxx
77
// Original by Daniel Shiffman
// http://codingtra.in
// http://patreon.com/codingtrain
// Code for: https://youtu.be/6z7GQewK-Ks
let minScale = -2.5;
//let maxScale = Math.abs(minScale);
let maxScale = 2;
let minSet = 0;
let maxSet = 500;
function setup() {
createCanvas(500, 500);
pixelDensity(1);
}
function draw() {
let maxiterations = 150;
loadPixels();
for (let x = minSet; x < maxSet; x++) {
for (let y = minSet; y < maxSet; y++) {
let a = map(x, minSet, maxSet, minScale, maxScale);
let b = map(y, minSet, maxSet, minScale, maxScale);
let ca = a;
let cb = b;
let n = 0;
while (n < maxiterations) {
let aa = a * a - b * b;
let bb = 2 * a * b;
a = aa + ca;
b = bb + cb;
if (a * a + b * b > 8) {
break;
}
n++;
}
let bright = map(n, 0, maxiterations, 0, 255);
let brightR = bright;
let brightG = bright;
let brightB = bright;
if( n < maxiterations/3){
brightB += 112;
}else if( n < maxiterations /2 ){
brightG += 50;
}else if (n > maxiterations / 2){
brightR += 100;
}
if (n == maxiterations) {
brightR = 0;
brightG = 0;
brightB = 0;
}
let pixX = map(x, minSet, maxSet, 0, width);
let pixY = map(y, minSet, maxSet, 0, height);
let pix = (pixX + pixY * width) * 4;
pixels[pix + 0] = brightR;
pixels[pix + 1] = brightG;
pixels[pix + 2] = brightB;
pixels[pix + 3] = 255;
}
}
updatePixels();
// minScale += 0.1;
// maxScale += 0.1;
// minSet += 1;
// maxSet += 1;
noLoop();
}