generateSecondaryRulers method

void generateSecondaryRulers(
  1. double totalRulers,
  2. Canvas canvas,
  3. Paint secondaryRulersPaint,
  4. double height,
)

The formula is from the below source (!)https://stackoverflow.com/a/3542512/4565953

Implementation

void generateSecondaryRulers(double totalRulers, Canvas canvas,
    Paint secondaryRulersPaint, double height) {
  Iterable<List<Offset>> offset = primaryRulers.values;
  int i = 0;
  for (var element in offset) {
    if (i != offset.length - 1) {
      Offset a = element[0];
      Offset b = offset.elementAt(i + 1)[0];

      for (int i = 0; i < totalRulers + 1; i++) {
        double x = a.dx * (1 - ((i) / (totalRulers + 1))) +
            b.dx * (i / (totalRulers + 1));
        double y = a.dy * (1 - ((i) / (totalRulers + 1))) +
            b.dy * (i / (totalRulers + 1));
        if (Offset(x, y) != a) {
          canvas.drawLine(
              Offset(x, y), Offset(x, 5 + height), secondaryRulersPaint);
        }
      }
      i = i + 1;
    }
  }
}