ClosedLine

from http://jmartinho.net/digitalArt-html5/index.php?art=closedLine

// JOAO MARTINHO MOURA //
// www.jmartinho.net //
// //
int tamanhoWIDTH = 950;
int tamanhoHEIGHT = 500;
int numeroPontos = 200;
int[] NumerosArrayX = new int[numeroPontos];
int[] NumerosArrayY = new int[numeroPontos];
int[] RND_NumerosArrayX = new int[numeroPontos];
int[] RND_NumerosArrayY = new int[numeroPontos];
int contaMouse=0;
void setup() {
 frameRate(20);
 background(255,255,255);
 size(tamanhoWIDTH, tamanhoHEIGHT);
 for (int i = 0; i < numeroPontos; i++) {
  NumerosArrayX[i] = tamanhoWIDTH/2;
  NumerosArrayY[i] = tamanhoHEIGHT/2;
 }
 for (int i = 0; i < numeroPontos; i++) {
  RND_NumerosArrayX[i] = tamanhoWIDTH/2;
  RND_NumerosArrayY[i] = tamanhoHEIGHT/2;
 }
}

void draw() { fill(255,255,255,50); noStroke rect(0,0,width,height); stroke(0) contaMouse ++; if (contaMouse < numeroPontos){ NumerosArrayX[contaMouse] = mouseX; NumerosArrayY[contaMouse] = mouseY; RND_NumerosArrayX[contaMouse] = mouseX + int(random(-10,10)); RND_NumerosArrayY[contaMouse] = mouseY + int(random(-10,10)); }else{ contaMouse=0; } for (int i = 0; i < numeroPontos; i ++) { if (i>0){ stroke(10,10,10,20); line(RND_NumerosArrayX[i],RND_NumerosArrayY[i],RND_NumerosArrayX[i-1],RND_NumerosArrayY[i-1]); stroke(10,10,10,80); line(NumerosArrayX[i],NumerosArrayY[i],NumerosArrayX[i-1],NumerosArrayY[i-1]); }else{ stroke(10,10,10,20); line(RND_NumerosArrayX[i],RND_NumerosArrayY[i],tamanhoHEIGHT/2,NumerosArrayY[i-1]); stroke(10,10,10,80); line(NumerosArrayX[i],NumerosArrayY[i],tamanhoHEIGHT/2,NumerosArrayY[i-1]); } NumerosArrayX[i] = NumerosArrayX[i] + int(random(-3,3)); NumerosArrayY[i] = NumerosArrayY[i] + int(random(-3,3)); RND_NumerosArrayX[i] = RND_NumerosArrayX[i] + int(random(-4,4)); RND_NumerosArrayY[i] = RND_NumerosArrayY[i] + int(random(-4,4)); } }