arcOpen method

Path arcOpen()

Implementation

Path arcOpen() {
  double r = max(innerRadius, outRadius).toDouble();
  num oldSweepAngle = this.sweepAngle.abs();
  num sweepAngle = this.sweepAngle % 360;

  ///修复当扫过的角度==360度时绘制异常
  if (oldSweepAngle % 360 == 0 && oldSweepAngle != 0) {
    sweepAngle = 359.9999;
  }

  num sa = startAngle % 360;
  num endAngle = sa + sweepAngle;

  endAngle = endAngle % 360;
  bool largeArc = sweepAngle >= 180;
  Offset startOffset = circlePoint(r, sa, center);
  Offset endOffset = circlePoint(r, endAngle, center);
  Path path = Path();
  path.moveTo(startOffset.dx, startOffset.dy);
  path.arcToPoint(endOffset, radius: Radius.circular(r), largeArc: largeArc, clockwise: true);
  return path;
}