/*
Structure 2
A grid of points in the top half of the surface.
Each point moves downward and returns to the top when it falls off the
bottom edge. Beginning in the upper-left, each row and column moves
faster than the previous one. The speeds combine so that the point in the
upper-left is the slowest and the point in the lower-right is the
fastest. Copy and flip the grid across a central vertical axis and
display simultaneously.
Implemented by Casey Reas <http://groupc.net>
16 April 2004
Processing v.68 <http://processing.org>
*/
Pixel[] pix;
void setup()
{
size(800, 600);
pix = new Pixel[width/10 * height/20];
framerate(30);
for(int i=0; i<width/10; i++) {
for(int j=0; j<height/20; j++) {
pix[i*(height/20)+j] = new Pixel(i*10, j*10, i/100.0*j/100 * 8.0, true);
}
}
}
void loop()
{
background(0);
for(int i=height/10; i<(height/20 * width/10); i++) {
pix[i].update();
pix[i].display();
}
}
class Pixel
{
float x;
float y;
float speed;
float count;
float angle;
boolean curve;
Pixel(float x, float y, float speed, boolean curve) {
this.x = x;
this.y = y;
this.speed = speed;
this.curve = curve;
}
void update() {
y+=speed;
if(y > height) {
y = 0;
}
}
void display() {
stroke(255);
point(x, y+5);
point(width-x, y+5);
}
}