Вы можете использовать алгоритмы, которые вы нашли для растеризации эллипса, и просто применить вращение или наклонное преобразование к координатам, прежде чем проверять, находятся ли они внутри или вне эллипса. Например, если вы хотите проверить эллипс, повернутый на 45 градусов, вы можете сделать что-то вроде этого:
for (x = 0; x < maxX; x++)
{
for (y = 0; y < maxY; y++)
{
double newX, newY;
Transform (x, y, rotationMatrix, &newX, &newY);
if (PointInEllipse (newX, newY, ellipse))
{
...do whatever here....
}
}
}
Где Transform просто применяет матрицу вращения 2x2 к x и y и помещает результат в newX, newY.