onPaint method

  1. @override
void onPaint(
  1. Canvas canvas
)
override

Draws segment in series bounds.

Implementation

@override
void onPaint(Canvas canvas) {
  if (points.isEmpty || points.length != 2) {
    return;
  }

  final Offset? start = Offset.lerp(
    _oldPoints[0],
    points[0],
    animationFactor,
  );
  final Offset? end = Offset.lerp(_oldPoints[1], points[1], animationFactor);
  final double controlX1 =
      lerpDouble(_oldStartControlX, startControlX, animationFactor)!;
  final double controlY1 =
      lerpDouble(_oldStartControlY, startControlY, animationFactor)!;
  final double controlX2 =
      lerpDouble(_oldEndControlX, endControlX, animationFactor)!;
  final double controlY2 =
      lerpDouble(_oldEndControlY, endControlY, animationFactor)!;

  if (start != null && end != null) {
    final Path path =
        Path()
          ..moveTo(start.dx, start.dy)
          ..cubicTo(
            controlX1,
            controlY1,
            controlX2,
            controlY2,
            end.dx,
            end.dy,
          );
    final Paint paint = getStrokePaint();
    if (paint.color != Colors.transparent && paint.strokeWidth > 0) {
      drawDashes(canvas, series.dashArray, paint, path: path);
    }
  }
}