addEllipse method
Add an ellipse approximated by Bezier curves.
Implementation
void addEllipse(double x, double y, double width, double height) {
// Approximate ellipse with 4 cubic Bezier curves.
final cx = x + width / 2;
final cy = y + height / 2;
final rx = width / 2;
final ry = height / 2;
// Magic number for Bezier approximation of a circle quadrant.
const k = 0.5522847498;
moveTo(cx + rx, cy);
curveTo(cx + rx, cy + ry * k, cx + rx * k, cy + ry, cx, cy + ry);
curveTo(cx - rx * k, cy + ry, cx - rx, cy + ry * k, cx - rx, cy);
curveTo(cx - rx, cy - ry * k, cx - rx * k, cy - ry, cx, cy - ry);
curveTo(cx + rx * k, cy - ry, cx + rx, cy - ry * k, cx + rx, cy);
closePath();
}