U0207 Punktübung in drei Schritten
Drei Serien mit drei quadratischen Grundflächen (Schritten) pro Zeile (3x3 Matrix).
- Gleich große Punkte, Anzahl zunehmend, kein Anschnitt.
- Zwei Punktgrößen, Anzahl zunehmend, kein Anschnitt.
- Drei Punktgrößen, Anzahl zunehmend, kein Anschnitt.
Welche neuen Fragen ergeben sich? Dokumentieren sie ihr Ergebnis in MKDocs.

Reflexion:
Es ergeben sich keine neuen Fragen.
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);
}
}