function approxBezierUnitArc(a1, a2) {
  var a = (a2 - a1) / 2,
      x4 = Math.cos(a),
      y4 = Math.sin(a),
      x1 = x4,
      y1 = -y4,
      q2 = 1 + x1 * x4 + y1 * y4,
      d = (x1 * y4 - y1 * x4),
      k2 = d && (4/3 * (Math.sqrt(2 * q2) - q2) / d),
      x2 = x1 - k2 * y1,
      y2 = y1 + k2 * x1,
      x3 = x2,
      y3 = -y2,
      ar = a + a1,
      car = Math.cos(ar),
      sar = Math.sin(ar);
  return [
     [x2 * car - y2 * sar, x2 * sar + y2 * car],
     [x3 * car - y3 * sar, x3 * sar + y3 * car],
     [Math.cos(a2), Math.sin(a2)]
  ];
}
// google [riskus approximating circular arcs]
google [riskus approximating circular arcs]
google [ riskus approximating circular arcs ]
function approxBezierUnitArc(a1, a2) {
  var a = (a2 - a1) / 2,
      x4 = Math.cos(a),
      y4 = Math.sin(a),
      x1 = x4,
      y1 = -y4,
      q2 = 1 + x1 * x4 + y1 * y4,
      d = (x1 * y4 - y1 * x4),
      k2 = d && (4/3 * (Math.sqrt(2 * q2) - q2) / d),
      x2 = x1 - k2 * y1,
      y2 = y1 + k2 * x1,
      x3 = x2,
      y3 = -y2,
      ar = a + a1,
      car = Math.cos(ar),
      sar = Math.sin(ar);
  return [
     [x2 * car - y2 * sar, x2 * sar + y2 * car],
     [x3 * car - y3 * sar, x3 * sar + y3 * car],
     [Math.cos(a2), Math.sin(a2)]
  ];
}
function approxBezierUnitArc ( a1 , a2 ) { var a = ( a2 - a1 ) / 2 , x4 = Math . cos ( a ) , y4 = Math . sin ( a ) , x1 = x4 , y1 = - y4 , q2 = 1 + x1 * x4 + y1 * y4 , d = ( x1 * y4 - y1 * x4 ) , k2 = d && ( 4 / 3 * ( Math . sqrt ( 2 * q2 ) - q2 ) / d ) , x2 = x1 - k2 * y1 , y2 = y1 + k2 * x1 , x3 = x2 , y3 = - y2 , ar = a + a1 , car = Math . cos ( ar ) , sar = Math . sin ( ar ) ; return [ [ x2 * car - y2 * sar , x2 * sar + y2 * car ] , [ x3 * car - y3 * sar , x3 * sar + y3 * car ] , [ Math . cos ( a2 ) , Math . sin ( a2 ) ] ] ; }
google [riskus approximating circular arcs]
google [ riskus approximating circular arcs ]