Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

Resume Zeichen

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);
 }

 }
}