draw method

  1. @override
void draw(
  1. Canvas canvas,
  2. ChartsState state
)

Implementation

@override
void draw(Canvas canvas, ChartsState state) {
  _ChartCircularCoordinateState layout = state.layout as _ChartCircularCoordinateState;
  Offset center = layout.center;
  double radius = layout.radius;
  canvas.clipPath(Path()..addOval(Rect.fromCircle(center: center, radius: radius)));

  var index = 0;
  for (T item in data) {
    num po = position.call(item);
    double height = radius * 2;
    if (layout.arcPosition == ArcPosition.none) {
      height = radius * 2;
    } else {
      height = radius;
    }
    double waterHeight = height * po;
    Paint paint = Paint()
      ..color = colors[index]
      ..style = PaintingStyle.fill;
    Path path = _createBezierPath(_transform, radius, waterHeight);
    canvas.drawPath(path, paint);
    index++;
  }
}