Хм, действительно, как-то я не догадался. Я более затратным методом реализовал:
// Это Java
// Уравнение эллипса, если его центр в начале координат: b^2 * x^2 + a^2 + y^2 = a^2 * b^2
// a - радиус по оси X; b - радиус по оси Y
float a2 = a * a;
float b2 = b * b;
float a2b2 = a2 * b2;
for (int y = centerY - b; y <= centerY; y++) {
for (int x = centerX - a; x <= centerX; x++) {
float dx = x - centerX;
float dy = y - centerY;
if (b2 * dx * dx + a2 * dy * dy < a2b2) {
rgb[y][x] = color;
//тут я привел код только для четверти эллипса, остальные три четверти отзеркаливаются
}
}
}