drawEllipse method
Draws an ellipse
Use clockwise=false to draw the inside of a donut
Implementation
void drawEllipse(
double x,
double y,
double r1,
double r2, {
bool clockwise = true,
}) {
moveTo(x, y - r2);
if (clockwise) {
curveTo(x + _m4 * r1, y - r2, x + r1, y - _m4 * r2, x + r1, y);
curveTo(x + r1, y + _m4 * r2, x + _m4 * r1, y + r2, x, y + r2);
curveTo(x - _m4 * r1, y + r2, x - r1, y + _m4 * r2, x - r1, y);
curveTo(x - r1, y - _m4 * r2, x - _m4 * r1, y - r2, x, y - r2);
} else {
curveTo(x - _m4 * r1, y - r2, x - r1, y - _m4 * r2, x - r1, y);
curveTo(x - r1, y + _m4 * r2, x - _m4 * r1, y + r2, x, y + r2);
curveTo(x + _m4 * r1, y + r2, x + r1, y + _m4 * r2, x + r1, y);
curveTo(x + r1, y - _m4 * r2, x + _m4 * r1, y - r2, x, y - r2);
}
}