generateEllipseParams function

EllipseParams generateEllipseParams(
  1. double width,
  2. double height,
  3. DrawConfig config
)

Implementation

EllipseParams generateEllipseParams(
    double width, double height, DrawConfig config) {
  final double psq =
      sqrt(pi * 2 * sqrt((pow(width / 2, 2) + pow(height / 2, 2)) / 2));
  final double stepCount =
      max(config.curveStepCount!, (config.curveStepCount! / sqrt(200)) * psq);
  final double increment = (pi * 2) / stepCount;
  final double curveFitRandomness = 1 - config.curveFitting!;

  double rx = (width / 2).abs();
  double ry = (height / 2).abs();
  rx += config.offsetSymmetric(rx * curveFitRandomness);
  ry += config.offsetSymmetric(ry * curveFitRandomness);

  return EllipseParams(increment: increment, rx: rx, ry: ry);
}