nl_tokens: Return a array of objects that represent bezier curves which approximate the circular arc centered at the origin from startAngle to endAngle ( radians ) with the specified radius .
pl_tokens: function createArc ( radius , startAngle , endAngle , anticlockwise ) { var EPSILON = 0.00001 ; // Roughly 1/1000th of a degree, see below        // normalize startAngle, endAngle to [-2PI, 2PI] var twoPI = Math . PI * 2 ; var startAngleN = startAngle ; if ( startAngleN < twoPI || startAngleN > twoPI ) { startAngleN = startAngleN % twoPI ; } var endAngleN = endAngle ; if ( endAngleN < twoPI || endAngleN > twoPI ) { endAngleN = endAngleN % twoPI ; } // Compute the sequence of arc curves, up to PI/2 at a time.        // Total arc angle is less than 2PI. var curves = [ ] ; var piOverTwo = Math . PI / 2.0 ; //var sgn = (startAngle < endAngle) ? +1 : -1; // clockwise or counterclockwise var sgn = anticlockwise ? - 1 : + 1 ; var a1 = startAngle ; for ( var totalAngle = Math . min ( twoPI , Math . abs ( endAngleN - startAngleN ) ) ; totalAngle > EPSILON ; ) { var a2 = a1 + sgn * Math . min ( totalAngle , piOverTwo ) ; curves . push ( createSmallArc . call ( this , radius , a1 , a2 ) ) ; totalAngle -= Math . <mask> ( a2 - a1 ) ; a1 = a2 ; } return curves ; }