Skip to content

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

Verschiebung Verschiebung Verschiebung Verschiebung Verschiebung Verschiebung Verschiebung Verschiebung

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

  }

}