Skip to content

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):

Zukunft

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

Schoen

Nr 2

Schoen

Nr 3

Schoen

Nr 4

Schoen

Nr 5

Schoen

Nr 6

Schoen

Nr 7

Schoen

Nr 8

Schoen

Nr 9

Schoen

Nr 10

Schoen

Nr 11

Schoen

Nr 12

Schoen

Nr 13

Schoen

Nr 14

Schoen

Nr 15

Schoen

Nr 16

Schoen

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);

  }

}