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.

Lektion 11a: Permutation

25. November 2010

In dieser Lektion ging es darum unsere Zeichen, welche wir im Modul Graphic Design Basics erstellt haben nun in Permutationen zu wandeln. Diese Aufgabe hatten wir bereits im Graphic Modul, doch nun galt es diese bereits erstellten Zeichen und Permutationen in Processing nachzubauen. Ich entschied mich diese Permutation in Processing nachzubauen: Hier der Code dazu:

int     anzahl = 7;
int     rand = 50;
float   xStep;
float   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(600, 600);
  smooth();

  xStep = (width - 2 * rand) / (float)(anzahl-1);
  yStep = (height - 2 * rand) / (float)(anzahl-1);

  noLoop();
}

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:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-27),54,54);
      ellipse(0,-1*(37.5-27),54,54);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,63,63);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,70,70);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,15,15);
    popStyle();
    
    
    break;

  case 1:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-28.5),57,57);
      ellipse(0,-1*(37.5-28.5),57,57);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,60,60);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,66,66);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,16.5,16.5);
    popStyle();
    
    break;

  case 2:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-30),60,60);
      ellipse(0,-1*(37.5-30),60,60);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,54,54);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,60,60);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,18,18);
    popStyle();
    
    break;

  case 3:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-31),62,62);
      ellipse(0,-1*(37.5-31),62,62);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,48,48);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,54,54);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,19.5,19.5);
    popStyle();
   
    break;  

  case 4:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-32.5),65,65);
      ellipse(0,-1*(37.5-32.5),65,65);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,42,42);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,48,48);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,21,21);
    popStyle();
   
    break;

  case 5:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-34.5),69,69);
      ellipse(0,-1*(37.5-34.5),69,69);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,36,36);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,45,45);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,22.5,22.5);
    popStyle();
    
    break;

  case 6:
    pushStyle();
      stroke(0);
      strokeWeight(2);
      noFill();
      ellipse(0,0,75,75);
    popStyle();
    
    pushStyle();
      stroke(0);
      fill(0);
      ellipse(0,(37.5-36),72,72);
      ellipse(0,-1*(37.5-36),72,72);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(255);
      ellipse(0,0,30,30);
    popStyle();
    
    pushStyle();
      stroke(255);
      strokeWeight(1);
      noFill();
      ellipse(0,0,42,42);
    popStyle();
    
    pushStyle();
      noStroke();
      fill(0);
      ellipse(0,0,24,24);
    popStyle();
    break;

  default:
    break;
  }
  popStyle();
}

void keyPressed()
{
  switch(key)
  {
  case ' ':
    save("permutation.jpg");
    break;
  }
}
Im zweiten Teil der Übung ging es darum, die Permutation zu verändern und beispielsweise die Anordnung neu zu gestalten: Beispiel 1: Hier versuchte ich die Mitte heller zu gestalten und einen Verlauf nach aussen zu bewirken. Beispiel 2: Bei diesem Beispiel versuchte ich einen Verlauf von links Unten nach rechts Oben zu gestalten. Beispiel 3: In diesem Beispiel versuchte ich die diagonale Mitte hell zu gestalten und einen Verlauf beidseitig nach Aussen zu generieren. Beispiel 4: Hier versuchte ich eine Art Kreuz durch die Positionierung von den dunkleren Zeichen in der Mitte zu gestalten.