arc static method

List<Op> arc(
  1. double increment,
  2. double cx,
  3. double cy,
  4. double rx,
  5. double ry,
  6. double strt,
  7. double stp,
  8. double offset,
  9. DrawConfig config,
)

Implementation

static List<Op> arc(double increment, double cx, double cy, double rx,
    double ry, double strt, double stp, double offset, DrawConfig config) {
  final List<PointD> points = [];
  final double radOffset = strt + config.offsetSymmetric(0.1);
  points.add(PointD(
    config.offsetSymmetric(offset) +
        cx +
        0.9 * rx * cos(radOffset - increment),
    config.offsetSymmetric(offset) +
        cy +
        0.9 * ry * sin(radOffset - increment),
  ));
  for (double angle = radOffset; angle <= stp; angle += increment) {
    points.add(PointD(
      config.offsetSymmetric(offset) + cx + rx * cos(angle),
      config.offsetSymmetric(offset) + cy + ry * sin(angle),
    ));
  }
  points
    ..add(PointD(cx + rx * cos(stp), cy + ry * sin(stp)))
    ..add(PointD(cx + rx * cos(stp), cy + ry * sin(stp)));
  return curve(points, config);
}