Arrays – create drops on mouseclick
Click on stage to create drops.
boolean locked = false; // regelt das nur einmal in die If Abfrage gesprungen wird //Array initialisieren mit 10Teilnehmern float[] tropfenX = new float[10]; float[] tropfenY = new float[10]; //position des letzten Clicks für den Tropfen zum zeichnen int randomGroesse; //random groesse fur den tropefen beim Clicken int zaehler = 0; //position im Array void setup() { size(400, 400); // tropfenX.length gibt die Anzahl der Teilnehmer im Array zurück for (int i=0; i<tropfenX.length; i++){ //setzt im Array an der position i einen festen wert tropfenX[i] = -10; tropfenY[i] = 1; } } void draw() { background(255); //wenn mouse gedrückt und locked nicht gesetzt ist... if (mousePressed == true && locked == false){ //...wird locked gesetzt locked = true; //parsen der funktion random mit (int) zu einer Integer Zahl //tropfen(mouseX, mouseY, (int)random(20)); //funktion floor rundet eine float zahl auf eine ganzZahl ab randomGroesse = floor( random(5, 20) ); //befüllen der variablen mit aktuiellen MousePosition tropfenX[zaehler] = mouseX; tropfenY[zaehler] = mouseY; //setzt zaehler einen hoch un regelt so die position //im Array an dem die neue MousePosition gespeichert wird zaehler++; //begrenzen des Zählers auf die läge des Arrays if (zaehler==tropfenX.length){ zaehler = 0; } } //zählt durh das gesammte array und zeichnet jeden Teilnehmer i... for (int i=0; i<tropfenX.length; i++){ //lässt tropfen runter fallen tropfenY[i] = tropfenY[i] * 1.02; //springen in die Tropfen Funktion und zeichnen den tropfen an position tropfenX, tropfenY tropfen(tropfenX[i], tropfenY[i], randomGroesse); } } void mouseReleased(){ //wenn die mouse losgelassen wird, wird locked wieder false locked = false; } void tropfen(float theX, float theY, int groesse){ //neue Matrix eröffnen pushMatrix(); //setzt Nullpunkt der matrix auf die übergebene Postion theX / theY translate(theX, theY); //rotieren die matrix um 45grad, damit er gerade erscheint rotate( radians(45) ); //Koordinaten für tropfen zeichnung //abhängig vom Nullpunkt int coord = 0; // X- und Y-Koordinate //wiedeholt solange bis s gleichgroß der übergebenen groesse wird for(int s=0; s<groesse; s++){ //strichstärke wächst bei jeder schleife abhängig zu s strokeWeight(s); //setzt einen punkt an den koordinaten coord / coord point(coord, coord); //setzt coord einen höher coord++; } //schliessen der matrix popMatrix(); }