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

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

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