drawCircle method
Draw a circle outline
This method is ad verbatim translation from the corresponding method on the Adafruit GFX library https://github.com/adafruit/Adafruit-GFX-Library
Implementation
void drawCircle(
int x0,
int y0,
int r,
bool color,
) {
var f = 1 - r;
var ddF_x = 1;
var ddF_y = -2 * r;
var x = 0;
var y = r;
[
[x0, y0 + r, color],
[x0, y0 - r, color],
[x0 + r, y0, color],
[x0 - r, y0, color],
].forEach(
(e) {
drawPixel(e[0] as int, e[1] as int, e[2] as bool);
},
);
while (x < y) {
if (f >= 0) {
y--;
ddF_y += 2;
f += ddF_y;
}
x++;
ddF_x += 2;
f += ddF_x;
[
[x0 + x, y0 + y, color],
[x0 - x, y0 + y, color],
[x0 + x, y0 - y, color],
[x0 - x, y0 - y, color],
[x0 + y, y0 + x, color],
[x0 - y, y0 + x, color],
[x0 + y, y0 - x, color],
[x0 - y, y0 - x, color],
].forEach(
(e) {
drawPixel(e[0] as int, e[1] as int, e[2] as bool);
},
);
}
}