int cols = 20; int rows = 160; Linie[][] Linien; void setup() { size(720, 480,P3D); colorMode(RGB); noStroke(); smooth(); frameRate(60); rectMode(CENTER); Linien = new Linie[cols][rows]; for (int i=0; i < cols; i++) { for (int j=0; j < rows; j++) { Linien[i][j] = new Linie(i*40, j*3, 30, 1,j); } } } void draw() { background(0,0); for (int i=0; i < cols; i++) { for (int j=0; j < rows; j++) { if (j % 3 == 0) { fill(#ff0000); } if (j % 3 == 1) { fill(#00ff00); } if (j % 3 == 2) { fill(#0000ff); } Linien[i][j].display(); Linien[i][j].update(); } } } class Linie { float xpos, xposIn; int ypos, yposIn; float breite, breiteIn, hoehe; float angle = 0; float angle2 = 0; float scalar2; float angleSpeed, angleSpeed2; float init; Linie(float _xpos, int _ypos, float _breite, float _hoehe, float _init) { xposIn = _xpos; ypos = _ypos; breiteIn = _breite; hoehe = _hoehe; init = _init; angleSpeed = 0.07; angleSpeed2 = 0.03; scalar2 = breiteIn * 0.33; //xposInt = random(0,400); rectMode(CENTER); } void display() { rect(xpos, ypos, breite, hoehe); } void update() { xpos = (30 * sin(angle+init)) + xposIn; angle += angleSpeed; breite = breiteIn + (scalar2 * cos(angle2+init)); angle2 += angleSpeed2; } }