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 4 // Ornament // Alles am blinken

5. Oktober 2012

Um repetitive Aufgaben speditiv zu erledigen lernten wir Schleifen kennen. So wird aus einem oder mehreren geometrischen Körpern im linken oberen Eck schnell ein Bildschirmfüllendes Ornament. Indem sie mit einem definierten Abstand mehrere Male neben und übereinander gezeichnet werden ensteht ein durchgängiges Muster. Die Aufgabe war es nun ein Ornament zu kreieren das beliebig lang und ohne Bruch fortgesetzt werden kann. Nachdem ich mit Kreisen und Vierecken ein Muster kreiert habe und es mich schon langsam langweilte statische Bilder zu generieren breitete sich wie gerufen die random Funktion in der Klasse aus. Plötzlich war alles am blinken und funkeln. Indem ich in der draw Funktion für die einzelnen Parameter zufällige Werte generierte welche sich 60 mal pro Sekunde ändern kam leben in die Sache. Die Ästhetik trat dabei leider in den Hintergrund, zu begeistert war ich von dieser Farbenpracht. Mich fasziniert die Möglichkeit seine Projekte als Vektorbasierte Grafiken zu speichern. So ist es einem freigestellt ob man eine Grafik auf ein riesiges Plakat druckt oder es im Web verwendet. Diesbezüglich bin ich bei meinen Recherchen im Internet auf eine Kunstrichtung gestossen, welche sich Generative Art nennt. Stundenlang bestaunte ich Bilder und Animationen welche nur auf Code basieren. Mich fasziniert dieser Spagat zwischen Chaos und Kontrolle. Obwohl man mit dem Code ein Kunstwerk in eine gewisse Richtung steuern kann, so ist das Endprodukt doch sehr unvorhersehbar und zufällig.

void setup()
{
  size(600,600);      // def. fenstergroesse

  smooth();           // aktiviere antialiasing
  strokeWeight(15);   // linienbreite
  background(100);
  stroke(40);
  fill(0, 255,0);
  frameRate(4);
  //noLoop();
  
}

void draw()
{
  
  

  
  
  for(int x = 0; x <= width; x+=100)
  {
    for(int y = 0; y <= height; y+=100)
    {
      pushMatrix();
        translate(x,y);
        //scale(.5);
        ornament();          // funtions aufruf
      popMatrix();
    }
  }
  

}

void keyPressed()
{
  switch(key)
  {
  case 's':
    save("screenShot.jpg");
    println("save the screen to screenShot.jpg");
    break;
  }
}

// funktion
void ornament ()
{
 
  
 
 ellipse(0 ,0 ,30,30);
 pushStyle();
 fill(0,255,0,100);
 ellipse(0 ,30 ,10,10);
 ellipse(30 ,0 ,10,10);
 ellipse(-30 ,0 ,10,10);
 ellipse(0 ,-30 ,10,10);
 pushStyle();
 ellipse(50 , 0 ,2,2);
 ellipse(0 , 50 ,2,2);
 
 pushStyle();
 strokeWeight(5);
 fill(0,255,0, 40);
 ellipse(50 ,50 ,78,78);
 popStyle();
 
 pushStyle();
 strokeWeight(5);
 fill (0,random(0, 255), 0);
 quad(25, 25, 75, 25, 75, 75, 25, 75);
 popStyle();
}