/*Autor: Ylva Brandt, Januar 2023
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Nicht-kommerziell - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz (http://creativecommons.org/licenses/by-nc-sa/4.0/).
*/
//Reihungen für die Koordinaten in 5a
int[] xKoordinaten = new int[10]; 
int[] yKoordinaten = new int[10];
//Reihung für die unterschiedlichen Faben in 5c
int[] rotWerte = new int[10];
int[] blauWerte = new int[10];
int[] gruenWerte = new int[10];
//Wert für die Verschiebung in 5c
int verschiebung = 5;

void setup(){
 size(400, 300);
 background(0, 100, 255);
 frameRate(4);
 //Reihungen mit zufälligen Werten füllen
 for(int i = 0; i < 10; i++){
   xKoordinaten[i] = (int) random(30, width-30);
   yKoordinaten[i] = (int) random(30, height-60);
   rotWerte[i] = (int)random(256);
   blauWerte[i] = (int)random(256);
   gruenWerte[i] = (int)random(256);
 }
}

void draw(){
   background(0, 100, 255);
   for(int i = 0; i < 10; i++){
     //xKoordinaten entsprechend der Verschiebung verändern, könnte auch nur temporär im Methodenaufruf gemacht werden
     xKoordinaten[i] = xKoordinaten[i] + verschiebung;
     blumeZeichnen(xKoordinaten[i], yKoordinaten[i], rotWerte[i], gruenWerte[i], blauWerte[i]);
   }
   //Richtung der Verschiebung ändern
   verschiebung = verschiebung * (-1);
}

//Methode blumeZeichnen, hier erweitert, um die Möglichkeit eine Farbe für die äußere Blüte anzugeben
void blumeZeichnen(int x, int y, int r, int g, int b){
 //Stängel
 stroke(0, 255, 0);
 strokeWeight(5);
 line(x, y, x, y + 60);

//Blüte außen
 stroke(r, g, b);
 strokeWeight(2);
 fill(r, g, b);
 circle(x, y, 30);

 //Blüte innen
 stroke(0, 0, 0);
 fill(255, 255, 0);
 circle(x, y, 10);
}
