code: func traceArc(t *raster.Rasterizer, x, y, rx, ry, start, angle float64, first bool) fixed.Point26_6 {
  	end := start + angle
  	clockWise := true
  	if angle < 0 {
  		clockWise = false
  	}
  	if !clockWise {
  		for start < end {
  			start += math.Pi * 2
  		}
  		end = start + angle
  	}
  	ra := (math.Abs(rx) + math.Abs(ry)) / 2
  	da := math.Acos(ra/(ra+0.125)) * 2
  	//normalize
  	if !clockWise {
  		da = -da
  	}
  	angle = start
  	var curX, curY float64
  	var startX, startY float64
  	for {
  		if (angle < end-da/4) != clockWise {
  			curX = x + math.Cos(end)*rx
  			curY = y + math.Sin(end)*ry
  			t.Add1(floatP(curX, curY))
  			return floatP(startX, startY)
  		}
  		curX = x + math.Cos(angle)*rx
  		curY = y + math.Sin(angle)*ry
  
  		angle += da
  		if first {
  			first = false
  			startX, startY = curX, curY
  			t.Start(floatP(curX, curY))
  		} else {
  			t.Add1(floatP(curX, curY))
  		}
  	}
  }
docs: // TraceArc trace an arc using a Liner