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;
  double dividerRadius = layout.radius / count;
  if (borderStyle == RadarBorderStyle.circle) {
    for (int ii = 0; ii < count; ii++) {
      canvas.drawCircle(layout.center, dividerRadius * (ii + 1), _linePaint);
    }
  } else if (borderStyle == RadarBorderStyle.polygon) {
    //画边框
    for (var element in _borderLinePaths) {
      canvas.drawPath(element, _linePaint);
    }
  }

  for (var element in _linePathList) {
    canvas.drawPath(element, _linePaint);
  }

  //画数据
  int index = 0;
  for (Path dataPath in _dataLinePathList.values) {
    dataPath.close();
    // 设置绘制属性
    _dataLinePaint.color = colors[index];
    canvas.drawPath(dataPath, _dataLinePaint);

    if (fillColors != null) {
      _fillDataLinePaint?.color = fillColors![index];
      canvas.drawPath(dataPath, _fillDataLinePaint!);
    }
    index++;
  }
  //最后再绘制,防止被挡住
  for (RadarTextPainter textPainter in _textPainterList) {
    textPainter.textPainter.paint(canvas, textPainter.offset);
  }
}