xxxxxxxxxx
79
let centerX;
let centerY;
let radius;
let dotRadiusMin = 0.1;
let dotRadiusMax = 50;
let powerBase = 1.01;
let done;
let x;
let chunkSize = 10;
function setup()
{
createCanvas(400, 400);
Clear();
Begin();
}
function keyPressed()
{
switch (keyCode)
{
case 32: // Spacebar
Begin();
break;
case BACKSPACE:
Clear();
break;
}
}
function draw()
{
if (done === true)
return;
for (let target = x + chunkSize; x < target; ++x)
{
for (let y = 0; y < height; ++y)
DrawPoint(x, y);
if (x >= width)
{
done = true;
break;
}
}
}
function Clear()
{
blendMode(BLEND);
background(40);
blendMode(ADD);
}
function Begin()
{
done = false;
x = 0;
centerX = 400 * Math.random();
centerY = 400 * Math.random();
radius = (200 - 10) * Math.random() + 10;
}
function DrawPoint(x, y)
{
let distance = dist(centerX, centerY, x, y);
let delta = abs(distance - radius);
let alpha = pow(powerBase, -8 * delta);
alpha /= 4;
stroke(alpha * 250, alpha * 180, alpha * 50);
strokeWeight((dotRadiusMax - dotRadiusMin) * pow(Math.random(), 200) + dotRadiusMin);
point(x, y);
}