function draw(p) {
let rx = 200;
let ry = 200;
const radius = 100;
let deltax = 5;
let deltay = 4;
return () => {
mutable Output = p.frameCount;
rx += deltax;
if (rx > 400) {
deltax = -p.random(5);
}
if (rx < 127) {
deltax = p.random(4);
}
ry += deltay;
if (ry > 400) {
deltay = -p.random(6);
}
if (ry < 127) {
deltay = p.random(6);
}
p.background(255);
p.loadPixels();
for (var y = 0; y < p.height; y++) {
for (var x = 0; x < p.width; x++) {
const distance = (x - rx) * (x - rx) + (y - ry) * (y - ry);
var index = (x + y * p.width) * 4;
if (distance <= radius * radius) {
p.pixels[index + 0] = (2 * x) % 255;
p.pixels[index + 1] = (3 * y) % 255;
p.pixels[index + 2] = (2 * x + y) % 255;
} else {
p.pixels[index + 0] = 255;
p.pixels[index + 1] = 255;
p.pixels[index + 2] = 255;
}
p.pixels[index + 3] = 255;
}
}
p.updatePixels();
};
}