paintLabels method

void paintLabels(
  1. Canvas canvas,
  2. Offset center,
  3. List<Offset> points,
  4. List<String> labels,
)

Implementation

void paintLabels(
    Canvas canvas, Offset center, List<Offset> points, List<String> labels) {
  var textPainter = TextPainter(textDirection: TextDirection.ltr);
  var textStyle =
      TextStyle(color: Colors.grey.shade600, fontWeight: FontWeight.bold);

  for (var i = 0; i < points.length; i++) {
    textPainter.text = TextSpan(text: labels[i], style: textStyle);
    textPainter.layout();
    if (points[i].dx < center.dx) {
      textPainter.paint(
          canvas, points[i].translate(-(textPainter.size.width + 5.0), -15));
    } else if (points[i].dx > center.dx) {
      textPainter.paint(canvas, points[i].translate(5.0, -15));
    } else if (points[i].dy < center.dy) {
      textPainter.paint(
          canvas, points[i].translate(-(textPainter.size.width / 2), -35));
    } else {
      textPainter.paint(
          canvas, points[i].translate(-(textPainter.size.width / 2), 20));
    }
  }
}