xxxxxxxxxx
let gSize = 80;
let showRefLines = false;
function setup() {
createCanvas(600, 600);
background(255);
noLoop();
}
function draw() {
background(255);
angleMode(DEGREES);
for (let i = 0; i < 8; i++)
for (let j = 0; j < 8; j++) {
let [x, y, rot] = [i * gSize, j * gSize, floor(random(4)) * 90];
push(), translate(x, y), rotate(rot), drawCustomPattern(), pop();
}
}
function drawCustomPattern() {
push(), translate(-gSize / 2, -gSize / 2);
if (showRefLines) drawReferenceLines();
strokeWeight(9);
stroke(color(random(255), random(255), random(255)));
noFill();
// Draw custom pattern
drawTriangle(0, gSize / 2, gSize / 2, 0, gSize, gSize / 2);
drawTriangle(0, gSize / 2, gSize / 4, gSize, gSize / 2, gSize);
pop();
}
function drawReferenceLines() {
// Draw reference lines
rect(0, 0, gSize, gSize);
stroke(255, 0, 0);
line(0, gSize / 2, gSize, gSize / 2);
line(gSize / 2, 0, gSize / 2, gSize);
}
function drawTriangle(points) {
beginShape();
for (let i = 0; i < points.length; i += 2) vertex(points[i], points[i + 1]);
endShape();
}
function keyPressed() {
if (key == 'r') draw();
if (key == 's') save('test.jpg');
}