/*
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.
Ported to p5.js by Casey Reas
14 July 2016
p5.js 0.5.2
Restored by Casey Reas <http://reas.com>
22 June 2016
Processing v.3.1.1 <http://processing.org>
Implemented by Casey Reas <http://groupc.net>
16 April 2004
Processing v.68 <http://processing.org>
*/
var pix = [];
function setup() {
createCanvas(800, 600);
frameRate(30);
for (var i = 0; i < width / 10; i++) {
for (var 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);
}
}
}
function draw() {
background(0);
for (var i = height / 10; i < pix.length; i++) {
pix[i].update();
pix[i].display();
}
}
function Pixel(x, y, speed, curve) {
this.x = x;
this.y = y;
this.speed = speed;
this.curve = curve;
this.update = function() {
this.y += this.speed;
if (this.y > height) {
this.y = 0;
}
}
this.display = function() {
stroke(255);
point(this.x, this.y + 5);
point(width - this.x, this.y + 5);
}
}