Bauhaus Formen

float seg = 0; //Segmentzähler

void setup() {

 size(800, 800);
 smooth();
 noStroke();

}

void draw() {

 background(0);
 fill(255,255,0);
 maleSegmente(100,200,200,0,90);
 fill(255,0,0);
 maleSegmente(100,200,400,1,45);
 fill(0,0,255);
 maleSegmente(80,200,600,40,90);

}

void maleSegmente(int r,float x,float y, float s, float g) {

 float segmente = 0;
 segmente = 3 + seg + s;
 float angleStep = 360/segmente;
 beginShape();
 vertex(x, y); 
 for (float angle=0; angle<=360; angle+=angleStep) {
   float vx = x + cos(radians(angle-g))*r;
   float vy = y + sin(radians(angle-g))*r;
   vertex(vx, vy);
 }
 vertex(x + cos(radians(360-g))*r, y + sin(radians(360-g))*r);
 endShape();

}

void keyReleased() {

 if (key == CODED) {
   if (keyCode == UP) {
     seg += 1;
   } else if (keyCode == DOWN) {
     if (seg >= 1) {
       seg -= 1;
     }
   } 
 }

}