xxxxxxxxxx
40
let capture;
function setup() {
createCanvas(600, 600);
capture = createCapture(VIDEO);
capture.size(600, 600);
noStroke();
dim = height/2;
colorMode(HSB, 360, 100, 100,50);
ellipseMode(RADIUS);
}
function draw() {
background(255,255,255,10);
for (var x = 0; x <= width; x+=dim) {
drawGradient(x, height/2);
} 6
capture.loadPixels();
const stepSize = round(constrain(mouseX / 16, 6, 32));
for (let y = 0; y < height; y += stepSize) {
for (let x = 0; x < width; x += stepSize) {
const i = y * width + x;
const darkness = (255 - capture.pixels[i * 4]) / 255;
const radius = stepSize * darkness;
ellipse(x, y, radius, radius);
noStroke();
}
}
}
function drawGradient(x, y) {
var radius = dim/2;
var h = random(0, 360);
for (r = radius; r > 0; --r) {
fill(h, 80, 120);
h = (h - 1) % 720;
}
}