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.

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