draw method
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);
}
}