fillCircle method

void fillCircle(
  1. int centerX,
  2. int centerY,
  3. int radius, {
  4. bool value = true,
  5. bool antiAliased = true,
  6. Style? cellStyle,
})

Fills a circle at (centerX, centerY) with radius in sub-pixel coordinates.

Implementation

void fillCircle(
  int centerX,
  int centerY,
  int radius, {
  bool value = true,
  bool antiAliased = true,
  Style? cellStyle,
}) {
  if (radius < 0) return;
  var x = 0;
  var y = radius;
  var d = 1 - radius;

  _drawCircleScanlines(
    centerX,
    centerY,
    x,
    y,
    value,
    antiAliased: antiAliased,
    cellStyle: cellStyle,
  );

  while (x < y) {
    x++;
    if (d < 0) {
      d += 2 * x + 1;
    } else {
      y--;
      d += 2 * (x - y) + 1;
    }
    _drawCircleScanlines(
      centerX,
      centerY,
      x,
      y,
      value,
      antiAliased: antiAliased,
      cellStyle: cellStyle,
    );
  }
}