26. Oktober 2011
Nachdem wir den Smiley mit verschiedenen Stati versehen haben, galt es, den kleinen Smiley eine Umlaufbahn zu verpassen.
![](../../../../files/2011/10/Smiley_drehend-291x300.png)
Dazu der Code
[JAVA]
float klein = 0;
float gross = -1;
void setup()
{
size(600,600); // 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,4); // rechne aus in welchem bereich der radius am schluss sein sollte
pushMatrix();
translate(300,300);
rotate(calcAngle());
gross += 0.01;
rotate(gross);
smiley(); // funtions aufruf
klein += 0.01;
rotate(klein);
translate(150,150);
klein += 0.01;
rotate(klein);
scale (0.2);
smiley(); // funtions aufruf
popMatrix();
}
// 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));
}
[JAVA]