3. Dezember 2010
Das Zeichenmodul mit Jürgen Späth und das Modul Programmierung - Processing - von Max Rheiner flossen zusammen. Wir haben die Permutation begonen zu animieren. Ich habe ich darauf konzentriert, die ganze Programmierung dynamischer und stuerbar zumachen. Jetzt kann ich ohne grosse mühe jedes einzelen Zeichen, wie auch die einezlne Elmente des Zeichen, problemlos ansteuern. Mein nächster Schritt wird das Animieren des Zeichen und der Elmenten sein und es in verbindung mit der Interaktion der Maus verknüpfen.signDev sign; int anzahl = 7, anzSign = 6; int[] xP = {0,0,0,0,0,0}; int[] r = { 87,77,63,54,42,36}; int[] yP = {-2,-6,-13,-15,-21,-23}; int[] y2P = {-2,-9,-12,-18,-21,-27}; int[] y3P = {-2,-11,-13,-20,-21,-27}; int[] y4P = {-2,-13,-13,-22,-21,-29}; int[] y5P = {-2,-15,-13,-24,-21,-31}; int[] y6P = {-2,-17,-13,-26,-21,-33}; int[] y7P = {-2,-19,-13,-28,-21,-35}; boolean[] cS = {true,false,true,false,true,false}; boolean[] cF = {true,false,true,false,true,false}; int wS = 550,rand = 50; float xStep, yStep; 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}; void setup() { size(wS,wS); smooth(); //xStep = (width*1.3 - 2 * rand) / (float)(anzahl-1); //yStep = (height*1.3 - 2 * rand) / (float)(anzahl-1); background(255); sign = new signDev(); noLoop(); } void draw() { sign.add(1,anzSign,xP,yP,r,cS,cF); sign.add(2,anzSign,xP,y2P,r,cS,cF); sign.add(3,anzSign,xP,y3P,r,cS,cF); sign.add(4,anzSign,xP,y4P,r,cS,cF); sign.add(5,anzSign,xP,y5P,r,cS,cF); sign.add(6,anzSign,xP,y6P,r,cS,cF); sign.add(7,anzSign,xP,y7P,r,cS,cF); //pushMatrix(); translate(rand,rand); scale(.75); sign.draw(anzahl,permutationsIndexList); //popMatrix(); }class Sign { int _index, _anzObj; float _xStep,_yStep; float _alpha; int[] _xP = new int[6]; int[] _yP = new int[6]; int [] _r = new int[6]; boolean [] _cS = new boolean [6]; boolean [] _cF = new boolean [6]; Sign(int sindex,int anzObj, int[] xP,int [] yP,int [] r ,boolean [] cS ,boolean [] cF) { _index = sindex; _anzObj = anzObj; _xP = xP; _yP = yP; _r = r; _cS = cS; _cF = cF; _alpha = 1; } void display() { for(int i=0; i< _anzObj; i++) { smooth(); stroke(_cS[i]?0:255); fill(_cF[i]?0:255); ellipse(_xP[i],_yP[i],_r[i],_r[i]); } } void tranx(float x) { translate(x,0.0f); } void trany(float y,float x,int anzahl) { translate(-1*x*anzahl,0); translate(0.0f,y); } }class signDev { ArrayList _signs; float xStep = 100; float yStep = 100; signDev() { _signs = new ArrayList(); } void add(int idx,int anzObj, int[] xP,int [] yP,int [] r ,boolean [] cS ,boolean [] cF){ _signs.add(new Sign(idx,anzObj,xP,yP, r ,cS ,cF)); } void draw(int anzahl,int []i) { int permutationsIndex = 0; for(int y=0; y<anzahl;y++) { for(int x=0; x<anzahl;x++) { //pushMatrix(); Sign sign = (Sign) _signs.get(i[permutationsIndex]); sign.display(); println(i[permutationsIndex]); sign.tranx(xStep); ++permutationsIndex; //popMatrix(); } if(permutationsIndex<(anzahl*anzahl)){ Sign sign = (Sign) _signs.get(i[permutationsIndex]); sign.trany(yStep,xStep,anzahl); } //println (yStep); } } }