drawDashedLine method

void drawDashedLine(
  1. Canvas canvas,
  2. Offset start,
  3. Offset end,
  4. Paint paint,
)

Implementation

void drawDashedLine(Canvas canvas, Offset start, Offset end, Paint paint) {
  const double dashWidth = 3;
  const double dashSpace = 2;
  double distance = (end - start).distance;
  double dashCount = (distance / (dashWidth + dashSpace)).floorToDouble();

  for (int i = 0; i < dashCount; ++i) {
    double startX = start.dx + (end.dx - start.dx) * (i / dashCount);
    double startY = start.dy + (end.dy - start.dy) * (i / dashCount);
    double endX = start.dx + (end.dx - start.dx) * ((i + 0.5) / dashCount);
    double endY = start.dy + (end.dy - start.dy) * ((i + 0.5) / dashCount);
    canvas.drawLine(Offset(startX, startY), Offset(endX, endY), paint);
  }
}