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.

Samuel: Permutation 2

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