Skip to content

U0210 Balance - Circles

Erzeuge sechzehn Bilder (Vollbild) mit je drei Kreisen. Position sowie die Größe der Kreise 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. Dokumentieren sie ihr Ergebnis in MKDocs. Lernziel: Gewichte und Schwerpunkte gezielt einsetzen

Schönstes Bild (12):

Kopulus

Reflexion:

Ich verstehe die Frage nach den Sinnvollen Parametern nicht. Größe und Position sind zufällig bestimmt und sofern das so sein soll, sind beide Parameter sinvoll. Wirklich schön finde ich keines der Bilder. Visuell am interessantesten die 12. Dieses Bild ist nicht so vollgestopft, wie viele der anderen und ein einzelner Punkt ist separiert. Es hat etwas voyeuristisches und erzählt damit eine räsonierfähige Geschichte. Auch hat das Auge in der Betrachtung die Möglichkeit zur Abwechslung und damit zur Erholung. Es kann schweifen von der großen Überschneidung in der Ecke, über den Weißraum, hin zum kleinen Punkt, der gut ins Blickfeld passt. Damit ist es nicht so fordernd und übergriffig, wie Bild 2 oder 13, bei dem die Aufmerksamkeit auf die großen Flächen gedrängt wird. Ich bin mir auch nicht sicher warum, aber irgendwie wirken die Großen Radien der meisten Punkte im Vergleich zu Grundfläche beängstigend und schlicht unangenehm. Einen schönen Größenkontrast hätte auch Bild 11 gehabt, aber der kleine Punkt geht ein wenig verloren, weshalb ich Bild 12 als Schönstes gewählt habe.

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);
  */
    circle(pos.x, pos.y,  size);

  }

}