U0211 Balance - Squares
Erzeuge sechzehn Bilder (Vollbild) mit je drei Quadraten. Position sowie die Größe der Quadrate soll per Zufall definiert werden. Beurteile jedes Bild nach seiner Balance.
Welche neuen Fragen ergeben sich? Was ist zu beobachten? Welche Parameter sind sinnvoll? Stehen diese in einem Bezug? Markieren dein schönstes Bild. Welche Unterschiede ergeben sich zu der Übung mit den Kreisen? Dokumentieren sie ihr Ergebnis in MKDocs.
Lernziel: Gewichte und Schwerpunkte gezielt einsetzen
Schönstes Bild (12):

Reflexion:
Hier gibt es gleich eine Reihe von schönen Bildern. Vielleicht habe ich auch einfach nur etwas gegen Rundungen. 1, 3, 5, 12, 15 finde ich visuell interessant. Ich habe mich für die 12 entschieden, da hier eine Progression des Zentrums zu sehen ist. Es evoziert ein Gefühl von Fortschritt in mir. In die Wohnung würde ich mir aber am ehesten Bild 3 hängen.
Bilder:
Nr 1

Nr 2

Nr 3

Nr 4

Nr 5

Nr 6

Nr 7

Nr 8

Nr 9

Nr 10

Nr 11

Nr 12

Nr 13

Nr 14

Nr 15

Nr 16

Code:
// --- Einstellungen ---
int cols = 1;
int rows =1;
float padding = 0;
float pointSize = 10;
// Berechnete Werte
float cellSize;
float startX, startY;
ArrayList<Dot> dots;
void setup() {
size(1000, 1000);
dots = new ArrayList<Dot>();
// Quadratgröße richtet sich nach Höhe
cellSize = (height - padding * (rows + 1)) / rows;
float totalWidth = cols * cellSize + (cols + 1) * padding;
startX = (width - totalWidth) / 2 + padding;
startY = padding;
}
void draw() {
background(200); // Hintergrund leicht grau für Kontrast
// Raster zeichnen
for (int i = 0; i < cols; i++) {
for (int j = 0; j < rows; j++) {
float x = startX + i * (cellSize + padding);
float y = startY + j * (cellSize + padding);
fill(255);
stroke(0);
rect(x, y, cellSize, cellSize);
}
}
// Punkte zeichnen
for (Dot d : dots) {
d.display();
}
// Punktgröße anzeigen
fill(0);
//text("Punktgröße (random): " + pointSize, 10, height - 10);
}
void mousePressed() {
// Punkt an Klickposition hinzufügen
for (int i=0; i<3; i++){dots.add(new Dot(random(10, 990), random(10, 990), random(0,1000))); }
}
void keyPressed() {
if (key == '+' || key == '=') {
pointSize += 10;
if (pointSize > 1000) pointSize = 1000;
}
if (key == '\t') {
dots.clear();
}
if (key == '-' || key == '_') {
pointSize -= 10;
if (pointSize < 2) pointSize = 2;
}
}
// Punktklasse
class Dot {
PVector pos;
float size;
Dot(float x, float y, float s) {
pos = new PVector(x, y);
size = s;
}
void display() {
fill(0);
noStroke();
/*float a = pos.x + (size/3);
float ay = pos.y ;
float b = pos.x - (size/3);
float by = pos.y - (size/3);
float c = pos.x + (size/3);
float cy = pos.y + (size/3);
triangle(a, ay, b, by, c, cy);
*/
square(pos.x, pos.y, size);
}
}