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 7 // Time // Münze ist gefallen

5. Oktober 2012

Eine sehr offene Aufgabe. Wir müssen eine Uhr nach unseren Vorstellungen zu kreieren und dabei programmiertechnisch und gestalterisch einen Weg finden unsere Ideen umzusetzen. Inspiriert von einem Tutorial in welchem gezeigt wird, wie man blinkende Sterne animiert, begann ich mit einem Art Radar.  Wenn in der draw Funktion der Background als tranparent definiert wird ergibt dies eine Art Shader Effekt da er sich mit jedem Frame wieder überlagert. So ziehen die animierten Objekte eine Art Schweif hinter sich her. Die Assoziation zu einem sehr abstrakten Planetensystem liegt nahe. In diesem Projekt habe ich bis jetzt am meisten gelernt da ich viele schon  verinnerlichte Techniken kombinieren und auch neue Techniken entdecken musste um mein Ziel zu erreichen.   Mit Hilfe der map Funktion und dem lieben Pi gelang es mir nach langem experimentieren eine funktionierende Uhr zu programmieren. Im Endprodukt repräsentieren einzelne „Planeten“ jeweils Stunden, Minuten und Sekunden. Die länge der Schweife ist über die Tasten ‚m’ und ‚l’ (more/less) in Echtzeit veränderbar. Mit einem Klick auf die Maus wird er neu gestartet.   Die Zeit ist einigermassen gut ablesbar. Die Uhr wirkt ein wenig hypnotisch, die Bewegungen sind sehr fliessend und weich. Ich wollte die Uhr schlicht und einfach gestallten, darum auch die Entscheidung zu Schwarz und Weiss. Ich habe fast das Gefühl ich verstehe nun die grösseren Zusammenhänge und Code ist nicht mehr nur beliebiges Wirrwar.  

float schweif = 3; 
float rot = 0;
float s;
float m;
float h;
float RadiansVerschiebung;
float MillisRadians;

void keyPressed() { if (key == 'l') {schweif++;} // less, Schweif wird kleiner
                    if (key == 'm') {schweif--;} // more, Schweif wird grösser

  
}



void setup(){
  size(700,700);
  noStroke();
  smooth();  
  RadiansVerschiebung = map(second(),0,59,0,TWO_PI) - HALF_PI; //HALF_PI verschiebt eine Viertelumdrehung nach oben weil radians beginnt rechts.
}

void draw(){
  if(mousePressed){
   fill(0); 
  } else {
  fill(0, schweif);
  }
  rect(0, 0, width, height);
  
  fill(255,5);
  
  MillisRadians = map (millis(), 0, (1000 * 60), 0, TWO_PI) + RadiansVerschiebung;
  m = map(minute() + norm(second(), 0, 60), 0, 60, 0, TWO_PI) - HALF_PI; 
  h = map(hour() + norm(minute(), 0, 60), 0, 24, 0, TWO_PI * 2) - HALF_PI;


 
  fill(random(200, 255));
  
  //stunde
  pushMatrix(); 
  translate(width/2, height/2);
  rotate(h);
  ellipse(163,0, 75, 75);
  popMatrix();
  
  //minute
  pushMatrix(); 
  translate(width/2, height/2);
  rotate(m);
  ellipse(95,0, 50, 50);
  popMatrix();
  
  //sekunde
  pushMatrix(); 
  translate(width/2, height/2);
  rotate(MillisRadians);
  ellipse(49,0, 30, 30);
  popMatrix();
  
 

    fill(255, 200);
  
    pushMatrix();
  translate(width/2,height/2);
      rot += 0.02; // rot = rot + 1
   rotate (rot);
   ellipse(115, 115, 75, 75);
   ellipse(35, 35, 30, 30);
   ellipse(5, 5, 5, 5);
   

  popMatrix();
  
  pushMatrix();
  translate(width/2,height/2);
      rot += 0.02; // rot = rot + 1
   rotate (-rot);
  ellipse(15, 15, 15, 15);
  ellipse(67, 67, 50, 50);
  ellipse(183, 183, 105, 105);
 
     popMatrix();


}