int count =6; // number of control vertices int cap=128; // size of control arrays pt[] P = new pt [6]; int bi=-1; pt Mouse = new pt(0,0); color soft = color(200, 200, 210); color red = color(200, 10, 10); color blue = color(10, 10, 200); color green = color(0, 150, 0); color black = color(10, 10, 10); color magenta = color(250, 150, 200); color brown = color(100, 50, 20); boolean firstTime = true; Arc arc1, arc2; void setup() { size(600, 600); for (int i=0; i10) { // if closest vertex is too far bd=600; // reinitilize distance squared for (int i=0; ibi; i--) {P[i+1].setTo(P[i]);}; // shift down the rest bi++; P[bi].setTo(Mouse); count++; // insert new vertex at mouse position } else {bi=-1;}; // nothing selected }; } float d2(int j) {return (Mouse.disTo(P[j]));}; // squared distance from mouse to vertex P[i] float dm(int j) {return (Mouse.vecToMid(P[j],P[in(j)]).norm());}; void mouseReleased() { // do this when mouse released if ( (bi!=-1) && P[bi].isInWindow() ) { // if outside of port for (int i=bi; i