arcOpen method
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;
}