2. Dezember 2010
Meine Permutation habe ich soweit angepasst, dass ich den Hintergrund ganz schwarz gemacht habe, und die Zeichen eigentlich nur noch aus einem weissen Kreis bestehen. Natürlich ist das nicht mehr ganz im Sinne der Aufgabe, aber mich hat die Einfachheit welche diesen doch sehr spannenden Effekt erzeugt fasziniert. Nur durch eine Rotation, entstehen – je nach Position des Cursors – ziemlich unterschiedliche, organisch anmutende Muster. Die Rotation wird wie schon erwähnt über die X- und Y-Position des Cursers gesteuert, was im moment noch oft zu relativ unansehnlichen, viel zu nervösen Resultaten führt, jedoch an der einen oder anderen Stelle diese besonderen Effekte erzeugt.int anzahl = 7; int rand = 50; float xStep; float yStep; float fi = 0.1; float rota = 0; /*int[] permutationsIndexList = {0, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 5, 2, 3, 4, 5, 6, 5, 4, 3, 4, 5, 6, 5, 4, 3, 4, 5, 6, 5, 4, 3, 2, 5, 6, 5, 4, 3, 2, 1, 6, 5, 4, 3, 2, 1, 0};*/ int[] permutationsIndexList = {0, 1, 2, 3, 2, 1, 0, 1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 4, 3, 2, 3, 4, 5, 6, 5, 4, 3, 2, 3, 4, 5, 4, 3, 2, 1, 2, 3, 4, 3, 2, 1, 0, 1, 2, 3, 2, 1, 0}; void setup() { size(600, 600); smooth(); xStep = (width - 2 * rand) / (float)(anzahl-1); yStep = (height - 2 * rand) / (float)(anzahl-1); //noLoop(); frameRate(15); } void draw() { background(0); int permutationsIndex = 0; pushMatrix(); translate(rand,rand); for(int y=0; y<anzahl;y++) { pushMatrix(); for(int x=0; x<anzahl;x++) { drawPermutationObj(permutationsIndexList[permutationsIndex]); print(str(permutationsIndexList[permutationsIndex]) + "\t"); ++permutationsIndex; translate(xStep,0.0f); } println(); popMatrix(); translate(0.0f,yStep); } popMatrix(); } void drawPermutationObj(int type) { //rota = ((mouseX * 0.3) * fi * PI * 2 * mouseY) * 0.8; rota = (map(mouseX, 0, width, 0, 100) * fi * 0.01 * map(mouseY, 0, height, 0, 100) * PI); pushStyle(); switch(type) { case 0: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(3,0,10,10); popMatrix(); fi = fi + 0.09; break; case 1: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(5,0,15,15); noFill(); //stroke(255); //ellipse(-3,0,20,20); popMatrix(); fi = fi + 0.09; break; case 2: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(10,0,30,30); noFill(); //stroke(255); //ellipse(-6,0,30,30); popMatrix(); fi = fi + 0.09; break; case 3: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(15,0,45,45); noFill(); //stroke(255); //ellipse(-9,0,40,40); popMatrix(); fi = fi + 0.09; break; case 4: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(20,0,65,65); noFill(); //stroke(255); //ellipse(-12,0,50,50); popMatrix(); fi = fi + 0.09; break; case 5: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(30,0,80,80); noFill(); //stroke(255); //ellipse(-15,0,60,60); popMatrix(); fi = fi + 0.09; break; case 6: pushMatrix(); rotate(rota); noStroke(); //fill(0); //ellipse(0,0,75,75); fill(255); ellipse(40,0,100,100); noFill(); //stroke(255); //ellipse(-18,0,70,70); popMatrix(); fi = fi + 0.09; break; default: break; } popStyle(); } void keyPressed() { switch(key) { case ' ': // ' ' = character 'space'; save("permutation_22.jpg"); break; } }