a port of the Processing Visualization Language

Brownian

Recording random movement as a continuous line.

Original Processing.org Example: Brownian

// All Examples Written by Casey Reas and Ben Fry

// unless otherwise stated.

int num = 2000;

int range = 4;



float[] ax = new float[num];

float[] ay = new float[num]; 





void setup() 

{

  size(200, 200);

  for(int i=0; i<num; i++) {

    ax[i] = 50;

    ay[i] = height/2;

  }

  frameRate(30);

}



void draw() 

{

  background(51);

  

  // Shift all elements 1 place to the left

  for(int i=1; i<num; i++) {

    ax[i-1] = ax[i];

    ay[i-1] = ay[i];

  }



  // Put a new value at the end of the array

  ax[num-1] += random(-range, range);

  ay[num-1] += random(-range, range);



  // Constrain all points to the screen

  ax[num-1] = constrain(ax[num-1], 0, width);

  ay[num-1] = constrain(ay[num-1], 0, height);

  

  // Draw a line connecting the points

  for(int i=1; i<num; i++) {    

    float val = float(i)/num * 204.0 + 51;

    stroke(val);

    line(ax[i-1], ay[i-1], ax[i], ay[i]);

  }

}
Fork me on GitHub