24. September 2013
Die Aufgabenstellung lautete: Schreib ein Programm welches einen Smiley am Mauszeiger folgen lässt. Dazu soll ein kleineres Smiley um den grossen Smiley in einer Umlaufbahn kreisen. hierzu zwei praktische memos: dist(x1,y1,x2,y2) berechnet die Distanz, basierend auf Pythagoras map()... basiert auf dem Strahlensatz, bzw. den Gesetzen der Proportionalität Download_Smileysvoid setup() { size(600,600); // def. fenstergroesse smooth(); // aktiviere antialiasing strokeWeight(15); // linienbreite } float rot = 0; void draw() { background(255); // def. hintergrundfarbe float radius = dist(mouseX,mouseY,width/2,height/2); // rechne die distanz vom mousecursor zum fensterzentrum aus radius = map(radius,0,width,1,4); // rechne aus in welchem bereich der radius am schluss sein sollte pushMatrix(); translate(300,300); rotate(calcAngle()); scale (radius); smiley(); // funtions aufruf rotate (rot); translate (130,0); scale(.2); smiley(); popMatrix(); rot += .011; } void smiley() { // grosser 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 } float calcAngle() { return -atan2(mouseX - (width / 2),mouseY - (height / 2)); }