long max(long i, long j) { return (i>j)?i:j; } boolean even(int i) { return round(i*.5) == (i/2); } public void drawArrow( float x, float y, float dx, float dy, float r, int c1) { stroke(c1); float l = sqrt(sq(dx) + sq(dy)); if (l>0) { dx = dx/l*r; dy = dy/l*r; line(x,y,x - dx,y - dy); line(x,y,x-dx/2-dy/2,y-dy/2 + dx/2); line(x,y,x-dx/2+dy/2,y-dy/2 - dx/2); } } public void drawDart( float x, float y, float dx, float dy, float r, int c1) { fill(c1); noStroke(); float l = sqrt(sq(dx) + sq(dy)); if (l>0) { dx = dx/l*r; dy = dy/l*r; beginShape(); vertex(x,y); vertex(x-dx-dy/2,y-dy + dx/2); vertex(x-dx+dy/2,y-dy - dx/2); endShape(CLOSE); } }