drawCircleTick method

void drawCircleTick(
  1. Canvas canvas,
  2. Paint paint,
  3. double radius,
  4. num startAngle,
  5. num sweepAngle,
  6. List<String> ticks, {
  7. Offset center = Offset.zero,
  8. bool category = false,
})

Implementation

void drawCircleTick(
  Canvas canvas,
  Paint paint,
  double radius,
  num startAngle,
  num sweepAngle,
  List<String> ticks, {
  Offset center = Offset.zero,
  bool category = false,
}) {
  if (ticks.isEmpty || !show) {
    return;
  }
  int count = ticks.length;
  if (!category) {
    count -= 1;
  }
  double angleInterval = sweepAngle / count;
  double r = radius;
  r += tickOffset;
  double gap1 = length.toDouble();
  double gap2 = length + labelPadding.toDouble();
  if (inside) {
    gap1 *= -1;
    gap2 *= -1;
  }

  for (int i = 0; i < ticks.length; i++) {
    double sa = startAngle + i * angleInterval;
    Offset o1 = circlePoint(r, sa, center);
    Offset o2 = circlePoint(r + gap1, sa, center);
    lineStyle.drawPolygon(canvas, paint, [o1, o2]);
    if (ticks[i].isEmpty) {
      continue;
    }
    Offset o3 = circlePoint(r + gap2, sa, center);
    TextDrawConfig config = TextDrawConfig(o3, align: toAlignment(sa, inside));
    labelStyle.draw(canvas, paint, ticks[i], config);
  }
}