Lineare Bewegung mit Arrays (1D) in Processing
Powered by Processing.js
float xpos[] = new float[150]; float ypos[] = new float[150];Im setup() -Block durchlaufen wir mit einer for-Schleife beide Arrays und legen mittels random() eine zufällige Startposition in xpos und ypos für jeden Kreis fest:
for (int i=0; i < xpos.length; i++) { xpos[i] = random (width); ypos[i] = random (durchmesser / 2, height - durchmesser); }Die Struktur des draw() bleibt bestehen. Eine weitere for-Schleife bewirkt die Positionsabfragen und Änderungen auf alle Kreise anzuwenden.
Der Sketch
// gloable Arrays für die Ablage der Position float xpos[] = new float[60]; float ypos[] = new float[60]; float durchmesser = 30; void setup () { size(550, 200); smooth (); noStroke (); background (76); // Einmaliges Festlegen der x- und y-Position for (int i=0; i < xpos.length; i++) { xpos[i] = random (width); ypos[i] = random (durchmesser / 2, height - durchmesser / 2); } } void draw () { // Hintergrund leeren noStroke (); fill (76, 20); rect (0, 0, width, height); // Führe die Schleife für jeden einzelnen // Kreis aus, angegeben durch die Länge von 'xpos' for (int i=0; i < xpos.length; i++) { // Position modifiziere xpos[i] = xpos[i] + 1; // Zurücksetzen der Kreisposition auf die linke // Bildschirmseite wenn die Position größer als // Bildschrimbreite + Durchmesser ist if (xpos[i] > width) { xpos[i] = 0; } stroke (236); // Zeichnen des Kreises an die aktuelle Position ellipse (xpos[i], ypos[i], durchmesser, durchmesser); } }