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.

Übung 3: hätte nie gedacht, dass ein Smiley so komplex ist.

18. November 2010

Als totaler Anfänger, Neuling und Greenhorn versuchte ich mir all die Fremdwörter und Theorien zu merken und die vorgegebenen Aufgaben zu löse. Nachdem ich die Übungen 1 und 2 mehr schlecht als recht gelöst habe, wagte ich mich an die Übung 3. Leider verstand ich immer noch nicht sehr viel vom Programmieren, Processing, Codes, Zeilen, Abkürzungen ect. ect. Später, nachdem ich mich einige Zeit mit dem Studieren der vorgegeben Codes auseinandergesetzt habe, ging mir endlich ein kleines Lichtlein auf, und ich sah langsam die Logik hinter dem Problem. Mit der Hilfe von meinen lieben Mitstudenten, habe ich es doch tatsächlich fertiggebracht, dass mein kleines Smiley um mein grosses Smiley dreht. Endlich!



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

  smooth();           // aktiviere antialiasing
  strokeWeight(15);    // linienbreite
}
float drehung = 0; 
void draw()
{
  background(255);    // def. hintergrundfarbe

  float radius = dist(mouseX,mouseY,width/2,height/2);  // rechnet die distanz vom mousecursor zum fensterzentrum aus
  radius = map(radius,0,width,1,4);                     // rechnet aus in welchem bereich der radius am schluss sein sollte

  pushMatrix();
    translate(200,200);
    // rotate(calcAngle());
    // scale(radius);
    smiley();          // funtions aufruf
    pushMatrix();
      rotate(drehung); 
      translate(90,90);
      scale(.2);
      smiley();          // funtions aufruf
     popMatrix();
  popMatrix();

 drehung = drehung + 0.05; 
 }

// funktion
void smiley()
{
  noFill();
  ellipse(0,0,180,180);  // kopf

  fill(0);
  ellipse(0 - 30,0 - 30,20,20);  // linkes augen
  ellipse(0 + 30,0 - 30,20,20);  // rechtes augen

  noFill();
  arc(0,0,100,100,radians(20),radians(180-20));  // mund
}

// berechne den winkel zur fenstermitter vom mausecursor aus
// die winkel sind in radiant
float calcAngle()
{
  return -atan2(mouseX - (width / 2),mouseY - (height / 2));
}