Skip to content

U0208 Punktübung in drei Schritten – Teil 2

Drei Serien mit drei quadratischen Grundflächen (Schritten) pro Zeile (3x3 Matrix). Setzen Sie die Punkte unter Verwendung eines eigenen Rasters: (Entwerfe bei Bedarf neue Werkzeuge)

 1. Gleich große Punkte, Anzahl zunehmend, kein Anschnitt.
 2. Zwei Punktgrößen, Anzahl zunehmend, kein Anschnitt.
 3. Drei Punktgrößen, Anzahl zunehmend, kein Anschnitt.

Welche neuen Fragen ergeben sich? Wie verändert ein Raster ein Entwurf? Vorteile/Nachteile? Welche Ergebnisse gefallen Ihnen besonders? Welche nicht? Dokumentieren sie ihr Ergebnis in MKDocs.

Punkte

Reflexion:

Auch hier ergeben sich nicht wirklich neue Fragen. Ein Raster verändert den Entwurf, weil es eine Ordnung vorgibt und die Möglichkeiten einschränkt. Das ist von Vorteil, da hier das ästhetische Abwägen der interessanten Positionierung von vorneherein verkürzt wird. Der Nachteil ist natürlich, das Mögliche Positionierungen eingeschränkt werden. Ich würde das jedoch nicht zwangsläufig als Nachteil zählen lassen. Eingeschränkte, schwierig bis unmöglich zu lösende Probleme können als interessanter Fixpunkt für Reflexionen und Neueinordnungen dienen. Das Lösen solcher Probleme und das neuartige Scheitern daran ist für mich Ausdruck von Kreativität.

Außerdem bin ich großer Fan von konkreter Kunst. Ich finde rastarisierte und mathematisch konstruierte Gemälde sehr beruhigend. Die Absolutheit der menschlichen Existenz lässt sich auf diese weise aber natürlich nicht(mehr) darstellen. Die Wiederholung der Berechnung der Welt als Ausdruck der Menschlichkeit hat in einem postaufklärerischen Zeitalter einen Beigeschmack restaurativen Fluchtbewegungen und ist damit nicht angebrachter, als eine neue Kindlichkeit.

Code:



// --- Einstellungen ---

int cols = 3;

int rows =3;

int mousefactor = 2;

float padding = 10;

float pointSize = 10;




float cellSize;

float startX, startY;



ArrayList<Dot> dots;



void setup() {

  size(1000, 700);

  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: " + pointSize, 10, height - 10);

}



void mousePressed() {

  // Punkt an Klickposition hinzufügen

  dots.add(new Dot(mouseX, mouseY, pointSize));
 // mousefactor ++; // Schnipsel für U0209 (vergrößert Punkt nach jedem Klick)
 // pointSize = pointSize + 0.75 * mousefactor;
}



void keyPressed() {

  if (key == '+' || key == '=') {

    pointSize += 10;

    if (pointSize > 1000) pointSize = 1000;

  }

  if (key == '\t') { // Lifeimprovement -> löscht alle Punkte nach TAB
   dots.clear();
   //mousefactor = 2; // Schnipsel für U0209
   //pointSize = 10; // Schnipsel für U0209
  }
  if (key == 'z') { // Lifeimprovement -> löscht letzten Punkt nach z
    if (dots.size() - 1 >= 0) {
     dots.remove(dots.size() - 1);
    }
  }

  if (key == '-' || key == '_') { // Punktgröße

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

    circle(pos.x, pos.y,  size);

  }

}