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.

Le Smiley

5. Oktober 2012

Basierend auf den Grundlagen vom Morgen mussten für ein Smiley mit verschiedenen Gemütszuständen visualisiert werden. Diese konnten durch die Tastaturbelegung 1-9 aufgerufen werden. Dies waren meine ersten Schritte in Processing. Grösste Herausforderung, stellte die Tatsache dar, dass mittels PushMatrix der Mittelpunkt des Koordiantensystem verschoben wird. Ebenso war die "unlogische" Orientierung mit der positiven X-Achse nach unten. Knacknüsse an denen ich zuknabbern hatte. Der Code:

int SMILEY_DEFAULT = 1;
int SMILEY_SAD = 2;
int SMILEY_DRUNK = 3;
int SMILEY_ANGRY = 4;
int SMILEY_OLD = 5;
int SMILEY_ASTOUND = 6;
int SMILEY_SLEEPY = 7;
int SMILEY_HORNY = 8;
int SMILEY_PANIC = 9;

int smileyType = SMILEY_DEFAULT;

void setup()
{
 size(480, 480); //Canvas Grösse

 smooth(); //Anti-Alising, Kantenglättung
 strokeWeight(15); //Linien-Breite
}

void keyPressed() //Funktionsaufruf für Tastaturbelegung. Mit dem Drücken einer Taste 'if' wird folgenden Funktion ausgelöst.
{
 if (key == '1')
 { smileyType = SMILEY_DEFAULT; }

 if (key == '2')
 { smileyType = SMILEY_SAD; }

 if (key == '3')
 { smileyType = SMILEY_DRUNK; }

 if (key == '4')
 { smileyType = SMILEY_ANGRY; }

 if (key == '5')
 { smileyType = SMILEY_OLD; }

 if (key == '6')
 { smileyType = SMILEY_ASTOUND; }

 if (key == '7')
 { smileyType = SMILEY_SLEEPY; }

 if (key == '8')
 { smileyType = SMILEY_HORNY; }

 if (key == '9')
 { smileyType = SMILEY_PANIC; }
}

void draw()
{
 background(34,234,234); //Bestimmung der Hintergrundfarbe in RGB

//PushMatrix damit das Smiley in der Mitte ("0.5) angeordnet wird.
pushMatrix();
translate(width * 0.5, width * 0.5);
smiley(smileyType); //Funktionsaufruf)
popMatrix();

}
//Funktion
void smiley(int smileyType)

{
 noFill();
 ellipse(0,0,180,180); //Kreis für Kopf

 fill(0);

 // Smiley auf Taste 1
 if (smileyType == SMILEY_DEFAULT)
 {
 ellipse(0-30, 0-30, 20, 20); //Linkes Auge, (Koordinate X, Koordinate Y, Breite, Höhe)
 ellipse(0+30, 0-30, 20, 20); //Rechtes Auge
 noFill(); //damit der Bogen keine Füllung hat
 arc(0,0,100,100,radians(20),radians(180-20)); //macht den Bogen für den Mund
 }

 // Smiley auf Taste 2
 if (smileyType == SMILEY_SAD)
 {
 noFill();
 arc(0-30, 0-30, 30, 20, radians(20),radians(180-20)); //Rechtes Auge
 arc(0+30, 0-30, 30, 20, radians(20),radians(180-20)); //Rechtes Auge
 line(0-40, 0+40, 0+40, 0+40); //Gerader Mund mit Linie gelöst
 }

// Smiley auf Taste 3
 if (smileyType == SMILEY_DRUNK)
 {
 //rechtes Auge
 line(0-45, 0-30, 0-10, 0);
 line(0-45, 0, 0-10, 0-30);

 //linkes Auge
 line(0+45, 0-30, 0+10, 0);
 line(0+45, 0, 0+10, 0-30);

 line(0-40, 0+40, 0+40, 0+40); //gerader Mund mit Linie gelöst
 }

 // Smile auf Taste 4
 if (smileyType == SMILEY_ANGRY)
 {
 //rechtes Auge
 line(0-45, 0-45, 0-10, 0-30); //Augenbraue Rechts
 ellipse(0-30, 0-30, 15, 15); // Auge Rechts

 line(0+45, 0-45, 0+10, 0-30); //Augenbraue Links
 ellipse(0+30, 0-30, 15, 15); // AUge Links

 quad(0-20, 0+25, 0+20, 0+25, 0+20, 0+10, 0-20, 0+10); //Evil Schnauz

 line(0-30, 0+50, 0+30, 0+50); //gerader Mund mit Linie gelöst //Gerader Mund

 line(0-45, 0-75, 0-35, 0-65); //erstes Haar
 line(0-15, 0-85, 0+5, 0-65); //zweites Haar
 line(0+15, 0-85, 0+35, 0-65); //erstes Haar
 }

 // Smiley auf Taste 5
 if (smileyType == SMILEY_OLD)
 {
 ellipse(0-30, 0-30, 35, 35); // Auge Rechts
 ellipse(0+30, 0-30, 35, 35); // Auge Links
 line(0-85, 0-30, 0+85, 0-30); //Brillenlinie

 line(0-30, 0+50, 0+30, 0+50); //gerader Mund mit Linie gelöst //Gerader Mund
 }

 // Smiley auf Taste 6
 if (smileyType == SMILEY_ASTOUND)
 {
 noFill();
 ellipse(0-40, 0-30, 40, 40); // Auge Rechts
 ellipse(0+40, 0-30, 40, 40); // Auge Links
 ellipse(0,0+35, 60, 60);
 }

 // Smiley auf Taste 7
 if (smileyType == SMILEY_SLEEPY)
 {
 ellipse(0-30, 0-30, 5, 5); // Auge Rechts
 ellipse(0+30, 0-30, 5, 5); // Auge Links
 line(0-30, 0+30, 0+30, 0+30); //Mund
 }

 // Smiley auf Taste 8
 if (smileyType == SMILEY_HORNY)
 {
 line(0-45,0-45, 0+45, 0-45); //Augebraue
 ellipse (0-25, 0-30, 20, 20); // Rechtes Auge
 ellipse (0+25, 0-30, 20, 20); // Linkes Auge

 ellipse (0+35, 0+45, 15, 15); // Zunge
 noFill();
 arc(0,0,100,100,radians(20),radians(180-20)); //macht den Bogen für den Mund
 }

 // Smiley auf Taste 9
 if (smileyType == SMILEY_PANIC)
 {
 ellipse(0-30, 0-30, 20, 20); //Linkes Auge, (Koordinate X, Koordinate Y, Breite, Höhe)
 ellipse(0+30, 0-30, 20, 20); //Rechtes Auge

 }

}