xxxxxxxxxx
let rows, cols;
let tileSize;
let patterns = [];
let colors = ["#e06a00", "#000100"];
let bgColor = "#01d801";
function setup() {
createCanvas(1080, 1080);
tileSize = width / 10;
rows = cols = 10;
for (let i = 0; i < rows; i++) {
let row = [];
for (let j = 0; j < cols; j++) {
let pattern = new Pattern(i, j);
row.push(pattern);
}
patterns.push(row);
}
}
function draw() {
background(bgColor);
for (let i = 0; i < rows; i++) {
for (let j = 0; j < cols; j++) {
patterns[i][j].display();
}
}
}
class Pattern {
constructor(x, y) {
this.x = x;
this.y = y;
this.color = random(colors);
this.patternType = floor(random(5)); // 0 to 4 for different pattern types
}
display() {
let x = this.x * tileSize;
let y = this.y * tileSize;
fill(this.color);
rect(x, y, tileSize, tileSize);
// Draw unique pattern based on pattern type
switch (this.patternType) {
case 0:
// Example: Diagonal lines pattern
for (let i = 0; i < tileSize; i += 5) {
line(x + i, y, x + tileSize, y + i);
}
break;
case 1:
// Example: Checkered pattern
let step = tileSize / 5;
for (let i = 0; i < tileSize; i += step) {
for (let j = 0; j < tileSize; j += step) {
if ((i + j) % (step * 2) === 0) {
rect(x + i, y + j, step, step);
}
}
}
break;
case 2:
// Example: Circles pattern
let numCircles = floor(random(3, 8)); // Random number of circles
let circleSize = tileSize / (numCircles + 1);
for (let i = 1; i <= numCircles; i++) {
ellipse(x + tileSize / 2, y + tileSize / 2, i * circleSize);
}
break;
case 3:
// Example: Wavy lines pattern
for (let i = 0; i < tileSize; i += 5) {
line(x, y + i, x + tileSize, y + i + 10 * sin(i / 20));
}
break;
case 4:
// Example: Dots pattern
let dotSize = 5;
for (let i = dotSize; i < tileSize; i += dotSize * 2) {
for (let j = dotSize; j < tileSize; j += dotSize * 2) {
ellipse(x + i, y + j, dotSize);
}
}
break;
}
}
}