import processing.pdf.*;
squiggle[] s = new squiggle[20];
float[] sx = new float[20];
float[] sy = new float[20];
PGraphics pdf;
void setup(){
size(200,200);
pdf = createGraphics(4096, 1280, PDF, "output.pdf");
smooth();
for(int i = 0; i < s.length; i++){
s[i] = new squiggle();
s[i].x = random(pdf.width);
s[i].y = random(pdf.height);
s[i].rad = random(0,2*PI);
}
background(255);
noLoop();
}
void draw(){
pdf.beginDraw();
pdf.stroke(0,20);
for(int j = 0; j < 7000; j++){
fill(0,0,255);
rect(map(j, 0,7000, 0,width), 0,1,200);
//println(j);
for(int i = 0; i < s.length; i++){
sx[i] = s[i].x;
sy[i] = s[i].y;
}
float max_x = max(sx);
float max_y = max(sy);
float min_x = min(sx);
float min_y = min(sy);
for(int i = 0; i < s.length; i++){
s[i].forward(1);
pdf.line(map(s[i].x, min_x, max_x, 0,pdf.width), map(s[i].y, min_y, max_y, 0,pdf.height),cos(s[i].rad) * 1 + s[i].x, sin(s[i].rad) * 1 + s[i].y);
s[i].rad += random(-.25,.25);
//ellipse(s[i].x,s[i].y, 5,5);
}
}
pdf.dispose();
pdf.endDraw();
}
class squiggle{
float rad;
float x,y;
void forward(float l){
//line(x,y,cos(rad) * l + x, sin(rad) * l + y);
x = cos(rad) * l + x;
y = sin(rad) * l + y;
}
}