import processing.opengl.*; Point[] pointArray; int numPoints = 601;//must be divisible by 3, plus Bezier mainCurve; float animT = 0; public void setup (){ background(0); smooth(); println("Setup"); size(450,450,OPENGL); createPoints(); } void createPoints(){ println("createPoints()"); pointArray = new Point[numPoints]; //compute first segment float angle = (float)Math.random()*TWO_PI; float maxDist = 500; float dist = 100; pointArray[0] = new Point(width/2,height/2); pointArray[1] = new Point(pointArray[0].x+cos(angle-HALF_PI)*dist/2,pointArray[0].y+sin(angle-HALF_PI)*dist/2); float rand = (float)Math.random(); pointArray[2] = new Point(pointArray[0].x+cos(angle+HALF_PI)*dist*rand,pointArray[0].y+sin(angle+HALF_PI)*dist*rand); pointArray[3] = new Point(pointArray[0].x+cos(angle-HALF_PI)*dist*rand,pointArray[0].y+sin(angle-HALF_PI)*dist*rand); fill(0); ellipse(pointArray[0].x,pointArray[0].y,5,5); ellipse(pointArray[1].x,pointArray[1].y,5,5); ellipse(pointArray[2].x,pointArray[2].y,5,5); ellipse(pointArray[3].x,pointArray[3].y,5,5); //compute the rest of the segments for (int i=4;i