xxxxxxxxxx
126
let all_rectangles = [];
let all_ellipses = [];
let incrementingspeed = 2;
function setup() {
createCanvas(500, 500);
background(random(255), random(255), random(255));
console.log('Press Mouse to draw rectangles!')
console.log('Press Space Bar to draw ellipses!')
console.log('When you think that is enough, click ENTER to blend the colors and the shapes!')
for (let i = 0; i < 100; i += 1) {
let emerging_rectangle = {
x: random(width),
y: random(height),
w: 0,
h: 0,
wLimit: random(20, 400),
hLimit: random(20, 400),
colorR: random(255),
colorG: random(255),
colorB: random(255),
time: i * 30,
up_vs_down: floor(random(1, 3))
};
all_rectangles.push(emerging_rectangle);
}
for (let n = 0; n < 100; n += 1) {
let emerging_ellipse = {
x: random(width),
y: random(height),
w: 0,
h: 0,
wLimit: random(20, 400),
hLimit: random(20, 400),
colorR: random(255),
colorG: random(255),
colorB: random(255),
time: n * 30,
};
all_ellipses.push(emerging_ellipse);
}
}
function draw() {
if (mouseIsPressed) {
let width_vs_height = floor(random(1, 3));
for (let j = 0; j < 100; j += 1) {
let emerging_rectangle = all_rectangles[j];
if (frameCount > emerging_rectangle.time) {
if (emerging_rectangle.up_vs_down === 1) {
if (width_vs_height === 1) {
if (emerging_rectangle.w < emerging_rectangle.wLimit) {
emerging_rectangle.w += incrementingspeed;
}
} else if (width_vs_height === 2) {
if (emerging_rectangle.h < emerging_rectangle.hLimit) {
emerging_rectangle.h += incrementingspeed;
}
}
}
else if (emerging_rectangle.up_vs_down === 2) {
if (width_vs_height === 1) {
if (emerging_rectangle.w < emerging_rectangle.wLimit) {
emerging_rectangle.w -= incrementingspeed;
}
}
else if (width_vs_height === 2) {
if (emerging_rectangle.h < emerging_rectangle.hLimit) {
emerging_rectangle.h -= incrementingspeed;
}
}
}
}
fill(emerging_rectangle.colorR, emerging_rectangle.colorG, emerging_rectangle.colorB, random(0, 6));
noStroke();
rect(emerging_rectangle.x, emerging_rectangle.y, emerging_rectangle.w, emerging_rectangle.h);
}
}
if (keyIsPressed && key === ' ') {
let width_vs_height = floor(random(1, 3));
for (let j = 0; j < 100; j += 1) {
let emerging_ellipse = all_ellipses[j];
if (frameCount > emerging_ellipse.time) {
if (width_vs_height === 1) {
if (emerging_ellipse.w < emerging_ellipse.wLimit) {
emerging_ellipse.w += incrementingspeed;
}
} else if (width_vs_height === 2) {
if (emerging_ellipse.h < emerging_ellipse.hLimit) {
emerging_ellipse.h += incrementingspeed;
}
}
}
fill(emerging_ellipse.colorR, emerging_ellipse.colorG, emerging_ellipse.colorB, random(0, 6));
noStroke();
ellipse(emerging_ellipse.x, emerging_ellipse.y, emerging_ellipse.w, emerging_ellipse.h);
}
}
if (keyIsPressed && keyCode === ENTER) {
filter(BLUR, 13);
}
}
function keyPressed() {
if (key === 'r') {
all_rectangles = []
all_ellipses = []
setup()
}
}