public static final void drawArc(GL2 gl,double cx,double cy,double r,double sa,double aa){
  double t;
  double x=r;
  double y=0;
  t=x;
  x=Math.cos(sa) * x - Math.sin(sa) * y;
  y=Math.sin(sa) * t + Math.cos(sa) * y;
  double sign=Math.signum(aa);
  double cos=COS;
  double sin=sign >= 0 ? SIN : -SIN;
  gl.glBegin(GL.GL_LINE_STRIP);
  for (int i=0; i < N; i++) {
    gl.glVertex2d(x + cx,y + cy);
    t=x;
    x=cos * x - sin * y;
    y=sin * t + cos * y;
    if (Math.abs(cos * i) >= Math.abs(aa))     break;
  }
  gl.glEnd();
}

public static final void drawArc ( GL2 gl , double cx , double cy , double r , double sa , double aa ) { double t ; double x = r ; double y = 0 ; t = x ; x = Math . cos ( sa ) * x - Math . sin ( sa ) * y ; y = Math . sin ( sa ) * t + Math . cos ( sa ) * y ; double sign = Math . signum ( aa ) ; double cos = COS ; double sin = sign >= 0 ? SIN : - SIN ; gl . glBegin ( GL . GL_LINE_STRIP ) ; for ( int i = 0 ; i < N ; i ++ ) { gl . glVertex2d ( x + cx , y + cy ) ; t = x ; x = cos * x - sin * y ; y = sin * t + cos * y ; if ( Math . abs ( cos * i ) >= Math . abs ( aa ) ) break ; } gl . glEnd ( ) ; }
renders an arc at ( cx , cy ) with the given radius r using n number of lines .
