9. Dezember 2011
Some Permutations with and without ArrayLists.int trans = 220; void setup() { size(780,780); background (0); smooth(); } void draw() { rectMode(CENTER); scale(0.5); translate(-220*6+20,20); noStroke(); musterlinie(); translate(-220*19,220); musterlinie(); translate(-220*19,220); musterlinie(); translate(-220*19,220); musterlinie(); translate(-220*19,220); musterlinie(); translate(-220*19,220); musterlinie(); translate(-220*19,220); musterlinie(); } void musterlinie(){ sign1(); //translate translate(trans,0); sign2(); //translate translate(trans,0); sign3(); //translate translate(trans,0); sign4(); //translate translate(trans,0); sign5(); //translate translate(trans,0); sign6(); //translate translate(trans,0); sign7(); //translate translate(trans,0); sign6(); //translate translate(trans,0); sign5(); //translate translate(trans,0); sign4(); //translate translate(trans,0); sign3(); //translate translate(trans,0); sign2(); //translate translate(trans,0); sign1(); //translate translate(trans,0); sign2(); //translate translate(trans,0); sign3(); //translate translate(trans,0); sign4(); //translate translate(trans,0); sign5(); //translate translate(trans,0); sign6(); //translate translate(trans,0); sign7(); } void sign7(){ //SIGN 7 pushMatrix(); fill(0); rect(100,100,200,200); fill(255); translate(100,100); rotate(radians(7.2)); rect(0,0,170,170); rotate(radians(7.2)); fill(0); rect(0,0,145,145); rotate(radians(7.2)); fill(255); rect(0,0,125,125); rotate(radians(7.2)); fill(0); rect(0,0,107,107); rotate(radians(7.2)); fill(255); rect(0,0,95,95); popMatrix(); } void sign6(){ //SIGN 6 pushMatrix(); fill(0); rect(100,100,200,200); fill(255); translate(100,100); rotate(radians(6)); rect(0,0,170,170); rotate(radians(6)); fill(0); rect(0,0,145,145); rotate(radians(6)); fill(255); rect(0,0,125,125); rotate(radians(6)); fill(0); rect(0,0,107,107); rotate(radians(6)); fill(255); rect(0,0,95,95); popMatrix(); } void sign5(){ //SIGN 5 pushMatrix(); fill(0); rect(100,100,200,200); fill(255); translate(100,100); rotate(radians(4.8)); rect(0,0,170,170); rotate(radians(4.8)); fill(0); rect(0,0,145,145); rotate(radians(4.8)); fill(255); rect(0,0,125,125); rotate(radians(4.8)); fill(0); rect(0,0,107,107); rotate(radians(4.8)); fill(255); rect(0,0,95,95); popMatrix(); } void sign4(){ //SIGN 4 pushMatrix(); fill(0); rect(100,100,200,200); fill(255); translate(100,100); rotate(radians(3.6)); rect(0,0,170,170); rotate(radians(3.6)); fill(0); rect(0,0,145,145); rotate(radians(3.6)); fill(255); rect(0,0,125,125); rotate(radians(3.6)); fill(0); rect(0,0,107,107); rotate(radians(3.6)); fill(255); rect(0,0,95,95); popMatrix(); } void sign3(){ //SIGN 3 pushMatrix(); fill(0); rect(100,100,200,200); fill(255); translate(100,100); rotate(radians(2.4)); rect(0,0,170,170); rotate(radians(2.4)); fill(0); rect(0,0,145,145); rotate(radians(2.4)); fill(255); rect(0,0,125,125); rotate(radians(2.4)); fill(0); rect(0,0,107,107); rotate(radians(2.4)); fill(255); rect(0,0,95,95); popMatrix(); } void sign2(){ //SIGN 2 pushMatrix(); fill(0); rect(100,100,200,200); fill(255); translate(100,100); rotate(radians(1.2)); rect(0,0,170,170); rotate(radians(1.2)); fill(0); rect(0,0,145,145); rotate(radians(1.2)); fill(255); rect(0,0,125,125); rotate(radians(1.2)); fill(0); rect(0,0,107,107); rotate(radians(1.2)); fill(255); rect(0,0,95,95); popMatrix(); } void sign1(){ //SIGN 1 fill(0); rect(100,100,200,200); fill(255); rect(100,100,170,170); fill(0); rect(100,100,145,145); fill(255); rect(100,100,125,125); fill(0); rect(100,100,107,107); fill(255); rect(100,100,95,95); }With ArrayList:
int anzahl = 6; int rand = 50; float xStep; float yStep; int[] permutationsIndexList = {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; Lines line1; void setup() { line1=new Lines(); size(600, 600); smooth(); xStep = (width - 2 * rand) / (float)(anzahl); yStep = (height - 2 * rand) / (float)(anzahl); } void draw() { background(255); 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) { pushStyle(); switch(type) { case 0: case 1: strokeWeight(2); line1.display(); break; case 2: strokeWeight(2); break; default: break; } popStyle(); } void keyPressed() { switch(key) { case ' ': save("permutation.jpg"); break; } }Classes:
class Lines{ float lineposY; float lineposX; float distanceX; float distanceY; Lines(){ } void display() { lineposX = 0; lineposY = 0; if (mouseX<=width/2) distanceX = dist(mouseX, 0, lineposX, 0); distanceY = dist(mouseY, 0, lineposY, 0); distanceY = dist(mouseY, 0, lineposY, 0); line(0,-42,distanceX,distanceY); line(distanceX,distanceY,0,42); println("Distance:"+distanceX); } }