27. Oktober 2011
Als die Aufgabe lautete ein sich wiederholendes Muster zu erstellen, fing ich an mit einem Programm das eine bestimmte Anzahl Punkte gleichmässig verteilt. Ich schweifte dann jedoch ein bisschen von der ursprünglichen Aufgabe ab, und fing an die Punkte zu animieren. Sie gleiten über den Bildschirm, und prallen an den Wänden ab. Dabei werden zufällig transparente Dreiecke aufgezogen zwischen zwei Punkten und der Mausposition. So entstehen interessante Muster.int distance = 70; int pointsPerRowX = (700/distance+1); int pointsPerRowY = (700/distance+1); float[][] dots = new float[pointsPerRowX*pointsPerRowY][4]; float speed = 1; void setup() { size(700, 700); smooth(); for (int i = 0; i<pointsPerRowX*pointsPerRowY; i++) { dots[i][0] = i/pointsPerRowX*distance; dots[i][1] = i%pointsPerRowY*distance; dots[i][2] = random(360); dots[i][3] = int(random(dots.length)); } noStroke(); } void draw() { background(255,255,255); drawPattern(); } void drawPattern() { pushStyle(); fill(0, 0, 0, 20); for (int i = 0; i<dots.length; i++) { if ((dots[i][0] <= 0) || (dots[i][0] >= width) || (dots[i][1] <= 0) || (dots[i][1] >= height)) { dots[i][2] += 180; } dots[i][0] += cos(dots[i][2])*speed; dots[i][1] += sin(dots[i][2])*speed; ellipse(dots[i][0], dots[i][1], 15, 15); strokeWeight(0.8); stroke(0); line(dots[i][0], dots[i][1]-3, dots[i][0], dots[i][1]+3); line(dots[i][0]+3, dots[i][1], dots[i][0]-3, dots[i][1]); if (i <= dots.length/2) { stroke(int(255-random(200)), int(random(200)+0), int((random(100)-50)+135)); } else { stroke(int(0+random(200)), int(227-random(50)), int(255-random(200))); } strokeWeight(0.7); //line(dots[i][0],dots[i][1],dots[int(dots[i][3])][0],dots[int(dots[i][3])][1]); //line(dots[i][0], dots[i][1], width/2, height/2); beginShape(); vertex(mouseX, mouseY); vertex(dots[i][0],dots[i][1]); vertex(dots[int(dots[i][3])][0],dots[int(dots[i][3])][1]); endShape(); noStroke(); } popStyle(); }