xxxxxxxxxx
63
function setup() {
createCanvas(600, 600);
//noLoop();
noStroke();
pixelDensity(3);
}
function draw() {
background(255);
let numRectangles = 7; // Number of rectangles in each set
let setA = [];
let setB = [];
let padding = 20; // Space between rectangles
// Generate random rectangles for setA
let currentX = width * 0.3; // Start placement for setA
for (let i = 0; i < numRectangles; i++) {
let w = 20;
let h = random(150, 300);
setA.push({ x: currentX, width: w, height: h });
currentX += w + padding; // Add space between rectangles
}
// Generate random rectangles for setB
currentX = width * 0.3 + padding / 2; // Slight offset for setB
for (let i = 0; i < numRectangles; i++) {
let w = 30;
let h = random(150, 300);
// Randomly decide if this rectangle will overlap with setA
if (random() < 0.5) { // 50% chance to overlap
// Find a random rectangle from setA to overlap with
let index = floor(random(numRectangles));
let overlapX = setA[index].x + random(-10, 10); // Adjust X for overlap
setB.push({ x: overlapX, width: w, height: h });
} else {
setB.push({ x: currentX, width: w, height: h });
currentX += w + 30; // Add space between rectangles
}
}
// Draw setA rectangles with vertical lines
for (let rectangleA of setA) {
for (let x = rectangleA.x; x < rectangleA.x + rectangleA.width; x += 2) {
stroke(0, 0, 0, 80); // Green color for vertical lines
line(x, height / 2 - rectangleA.height / 2, x, height / 2 + rectangleA.height / 2);
}
}
// Draw setB rectangles with horizontal lines
for (let rectangleB of setB) {
for (let y = height / 2 - rectangleB.height / 2; y < height / 2 + rectangleB.height / 2; y += 2) {
stroke(0, 0, random(255), 200); // Brighter green for horizontal lines
line(rectangleB.x, y, rectangleB.x + rectangleB.width, y);
}
}
}
function keyPressed() {
if (key === 's') {
saveGif('mySketch', 3, { delay: 2 });
}
}