20. September 2013
Ein kleines Smiley soll sich ums ein grosses Smiley drehen. Das grosse Smiley soll abhängig vom Mauscursor skaliert werden.int moveCounter = 0; void setup() { size(400,400); // def. fenstergroesse smooth(); // aktiviere antialiasing strokeWeight(15); // linienbreite } 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,2); // rechne aus in welchem bereich der radius am schluss sein sollte pushMatrix(); translate(200,200); rotate(calcAngle()); scale(radius); smiley(); pushMatrix(); // println(radians(moveCounter)); rotate(radians(moveCounter)); translate(140,0); scale(0.2); smiley(); popMatrix(); popMatrix(); moveCounter++; // increase counter } // 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)); }