var rgb;
var type = 0;
function setup() {
createCanvas(windowWidth, windowHeight);
frameRate(30);
noStroke();
rgb = [
color(255, 0, 0),
color(0, 255, 0),
color(0, 0, 255)
];
}
function mousePressed() {
if (type == 0) {
type = 1;
} else {
type = 0;
}
}
function draw() {
blendMode(BLEND);
if (type == 0) {
background(0);
blendMode(SCREEN);
} else {
background(255);
blendMode(EXCLUSION);
}
for (var w = -100; w <= width + 100; w += 100) {
for (var h = -100; h <= height + 100; h += 100) {
push();
translate(w, h);
for(var ci = 0; ci < 3; ci++) {
drawBezier(w, h, ci);
}
pop();
}
}
}
function drawBezier(w, h, ci) {
fill(rgb[ci]);
stroke(rgb[ci]);
var nv = w * 0.01 + h * 0.02 + ci * 0.03 + frameCount * 0.035;
var size = 100;
var anchor = createVector(map(noise(nv, 0), 0, 1, -size, size), map(noise(nv, 1), 0, 1, -size, size));
var control1 = createVector(map(noise(nv, 2), 0, 1, -size, size), map(noise(nv, 3), 0, 1, -size, size));
var control2 = createVector(map(noise(nv, 4), 0, 1, -size, size), map(noise(nv, 5), 0, 1, -size, size));
bezier(
anchor.x, anchor.y,
control1.x, control1.y,
control2.x, control2.y,
anchor.x, anchor.y
);
}