U0411 Ein Parameter ändern - Teil 1
Verändern Sie ein selbst gewähltes grafisches oder geometrisches Element, in einem 4x4 cm (oder 180 px) Kästchen plaziert, in sieben Schritten parametrisch von links nach rechts. Den Parameter den sie schrittweise verändern, legen sie selbst fest. Es bietet sich an, im ersten Schritt mit einem regelmäßigen Raster zu arbeiten.
Dokumentieren Sie Ihr Ergebnis im digitalen Skizzenbuch. Erläutern Sie Ihre Vorgehensweise. Schreiben Sie eine Selbsteinschätzung der Ergebnisse.
Lernziel: Abstraktionsvermögen, (geo-)metrisches Gefühl, Genauigkeit/Präzision

Reflexion:
Eine dieser Aufgaben, die ich gemacht habe, aber nicht ganz verstehe, warum. Ich habe Das dreieck um eine sich durch die Anzahl der Ausführungen ändernden Pixelanzahl verschoben. Hierurch wird die Verschiebung in späteren Wiederholungen größer. Es ist mir jedoch schleierhaft, wie ich hierdurch mein Abstraktionsvermögen schärfen soll.
Code:
// --- Einstellungen ---
int cols = 1;
int rows =1;
float padding = 0;
float pointSize = 40;
float param = 2.3;
// Berechnete Werte
float cellSize;
float startX, startY;
float posX = 20;
float posY = 100;
ArrayList<Dot> dots;
void setup() {
size(180, 180);
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))); }
dots.add(new Dot(posX, posY, pointSize));
}
void keyPressed() {
if (key == '+' || key == '=') {
pointSize += 10;
if (pointSize > 1000) pointSize = 1000;
}
if (key == '\t') {
dots.clear();
}
if (key == '\n') {
dots.clear();
posX = posX + posX/param;
dots.add(new Dot(posX, posY, pointSize));
}
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);
}
}