function setup() {
createCanvas(800, 800); // Erstellt eine 800x800 Pixel große Leinwand
noLoop(); // Verhindert die kontinuierliche Wiederholung der draw-Funktion
}
// Globale Variable für die Größe der Kreise
let circleSize = 14;
function draw() {
background(250); // Setzt den Hintergrund auf eine helle Graufarbe
// Erstellt ein Gitter von Kreisen innerhalb des definierten Bereichs
for (let x = 100; x <= width - 100; x += 60) {
for (let y = 100; y <= height - 100; y += 60) {
// Definiert die zufällige Verschiebung für jeden Kreis
let xOffset = random(-30, 30);
let yOffset = random(-30, 30);
// Zeichnet den primären Kreis mit zufälliger Verschiebung und Größe
fill(0); // Füllfarbe
noStroke(); // Keine Umrandung
ellipse(x + xOffset, y + yOffset, circleSize + random(12), circleSize + random(30));
// Berechnet die Position für gespiegelte Kreise
let symX = width - (x + xOffset);
let symY = height - (y + yOffset);
// Zeichnet gespiegelte Kreise mit variierender Größe
ellipse(symX, y + yOffset, circleSize + random(4), circleSize + random(100));
ellipse(x + xOffset, symY, circleSize + random(100), circleSize + random(3));
ellipse(symX, symY, circleSize + random(10), circleSize + random(4));
}
}
}
// Ermöglicht das Neuzeichnen des Musters bei Mausklick
function mousePressed() {
redraw();
}