codepens/volumes/dist/script.js

40 lines
939 B
JavaScript

let divisions = 3,
padding = 10,
cell_size,
total_cell;
function setup() {
createCanvas(480, 480);
cell_size = (width - padding * 2) / divisions;
total_cell = divisions * divisions;
noLoop();
noStroke();
}
function draw() {
background(255);
for (let i = 0; i < total_cell; i++) {
let x = padding + (i % divisions) * cell_size,
y = padding + Math.floor(i / divisions) * cell_size;
translate(x + cell_size / 2, y + cell_size * 0.8);
scale(1, 0.6);
let curves = random(0.01, 0.1);
noiseSeed(i);
let seed_offset = random(-200,200);
total_steps = floor(cell_size / 6);
for (let s = 0; s < total_steps; s++) {
fill(map(s, 0, total_steps, 0, 250));
if(s+1 == total_steps) fill(20);
let size = noise(seed_offset + s * curves) * cell_size * 0.8;
ellipse(0, -s * 6, size, size);
}
resetMatrix();
}
}
function mousePressed() {
redraw();
}