22. September 2012
Nach dem Einstieg ging es rasch voran und wir rückten zu komplexeren Formen vor. Neu dazu kamen Funktionsparameter, wobei man Parameter festlegt und die ganze Funktion so beliebig verschieben oder verändern kann anhand der bestimmten Parametern. Bsp. Smiley; Die Koordinaten der Funktion Smiley wird anhand der Parameter int positionX und int positionY dargestellt. Schwierig war für mich zu verstehen wie man diese Parameter und die Push/ PopMateinsetzt und wie man sie richtig schreibt mit den benötigten Klammern und semikolon. Allgemein bereitet mir die Schreibweise Mühe. Das Verständnis der abstrakten Verpackungen und Verschachtelung fehlt noch und muss noch dringend vertieft werden. Aufgabe: Verschiedene Smileys zu kreiieren und sie per Tastatur zu wechseln Diese Aufgabe benötigte all unser bereits Gelerntes, denn darin enthalten waren Funktionen, Bedingungen (if/else),(switchcase), zusätzlich kamen keyPress/ keyRelease und save dazu. Obwohl die Smileys nicht besonders kreativ oder anschaulich waren, bin ich stolz darauf. Es war das erste Ergebnis, auf das ich mit Tastatur Einfluss nehmen konnte. Ich hätte noch mehr auf der visuellen Ebene arbeiten können und detailorientierter arbeiten.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; float rot = 5; void setup() { size(400, 400); // def. fenstergroesse smooth(); // aktiviere antialiasing strokeWeight(15); // linienbreite } void draw() { background(255); // def. hintergrundfarbe // teste ob der mauszeiger innerhalb des smiley ist // if (mouseX > (width * .5 - 90) && mouseX < (width * .5 + 90) && // mouseY > (height * .5 - 90) && mouseY < (height * .5 + 90)) // // die mouse ist im smiley, smiley mag das nicht // smileyType = SMILEY_SAD; // else // smileyType = SMILEY_DEFAULT; pushMatrix(); translate(width * .5, width * .5); smiley(smileyType); // funtions aufruf popMatrix(); } // funktion void smiley(int smileyType) { noFill(); ellipse(0, 0, 180, 180); // kopf fill(0); if (smileyType == SMILEY_SAD) { ellipse(0 - 30, 0 - 30, 20, 5); // linkes augen ellipse(0 + 30, 0 - 30, 20, 5); // rechtes augen noFill(); arc(0, 60, 100, 100, radians(180+20), radians(360-20)); // mund } else if (smileyType == SMILEY_ANGRY) { ellipse(0 - 30, 0 - 30, 30, 4); // linkes augen ellipse(0 + 30, 0 - 30, 30, 4); // rechte augen noFill(); arc(0, 60, 100, 100, radians(180+10), radians(360-10)); // mund line(-10, -10-30, -50, -40-30); line(10, -10-30, 50, -40-30); } else if (smileyType == SMILEY_OLD) { strokeWeight(15); ellipse(0 - 30, 0 - 30, 30, 30); // linkes augen ellipse(0 + 30, 0 - 30, 30, 30); // rechtes augen noFill(); ellipse(0, 0, 180, 160); line (-50, 40, 50, 50); strokeWeight(5); arc(-35, 0, 20, 20, radians(20), radians(180)); arc(35, 0, 20, 20, radians(20), radians(180)); arc(-35, 10, 20, 5, radians(20), radians(180)); arc(35, 10, 20, 5, radians(20), radians(180)); } else if (smileyType == SMILEY_ASTOUND) { noFill(); strokeWeight(20); ellipse(0 - 45, 0 - 30, 50, 50); // linkes augen ellipse(0 + 45, 0 - 30, 50, 50); // rechtes augen fill(0); strokeWeight(10); ellipse(0, 50, 50, 50); } else if (smileyType == SMILEY_SLEEPY) { noFill(); arc(-40, -40, 30, 30, radians(20), radians(180-20)); arc(40, -40, 30, 30, radians(20), radians(180-20)); ellipse(0, 30, 10, 10); } else if (smileyType == SMILEY_HORNY) { noFill(); ellipse(0, 0, 180, 180); fill(255, 0, 0); ellipse(-40, -40, 30, 30); ellipse(40, -40, 30, 30); noFill(); ellipse(0, 30, 40, 20); fill(180, 0, 0); arc(10, 40, 30, 30, radians(50), radians(340)); } else if (smileyType == SMILEY_PANIC) { pushMatrix(); translate(200, 200); rot = rot + 0.01; rotate(rot); eyes(); popMatrix(); } else if (smileyType == SMILEY_DRUNK) { line(-50, -40, -10, -10); line(-50, -10, -10, -40); line(50, -40, 10, -10); line(50, -10, 10, -40); line(-50, 20, 50, 20); arc(-10, 15, 50, 70, radians(20), radians(180-20)); // mund } else { 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 } } void eyes() { } void keyPressed() { if (key == 'a') { println("a"); smileyType = SMILEY_ASTOUND; } else if (key == 's' ) { smileyType =SMILEY_OLD; } else if (key == 'd') { smileyType = SMILEY_ANGRY; println("d"); } else if (key == 'f') { smileyType = SMILEY_HORNY; println("f"); } else if (key == 'q') { smileyType = SMILEY_SLEEPY; println("q"); } else if (key == 'w') { smileyType = SMILEY_SAD; println("w"); } else if (key == 'e') { smileyType = SMILEY_DRUNK; println("e"); } else if (key == 'x' ) { save("smiley.tif"); } else {smileyType = SMILEY_DEFAULT; } } void keyReleased() { smileyType = SMILEY_DEFAULT; }