В решении грубой силы вы можете определить жесткий ограничивающий прямоугольник области, вычислив четыре вершины и включив в себя четыре крайних крайних точки по мере необходимости. Затем для каждого пикселя вам нужно будет оценить два круга (квадратичные выражения) и две прямые (линейные выражения). Выполняя вычисление инкрементально (X => X + 1), количество операций падает почти до нуля.
Внутри круга
f(X,Y) = X²+Y²-2XXc-2YYc+Xc²+Yc²-R² <= 0
Поэтапно,
f(X+1,Y) = f(X,Y)+2X+1-2Xc <= 0
Если вы действительно хотите, чтобы избежать этого накладные расходы, вы будете прибегать к методам преобразования Scanline. Сначала подумайте о заполнении наклонного прямоугольника. Рисуя две горизонтальные линии промежуточными вершинами, вы разложите прямоугольник в два треугольника и параллелограмм. Затем для любой линии сканирования, которая пересекает одну из этих фигур, вы заранее знаете, какую пару сторон вы пересечете. Оттуда вы знаете, какую часть строки сканирования нужно заполнить.
Вы можете обобщить любую фигуру, в частности ваш круг. Будьте готовы к относительно тонкому анализу случаев, но найти пересечения сами по себе не так сложно. Это может помочь разбить домен вертикально по центру, так что любой горизонталь всегда встречает контур дважды, а не четыре раза.
Какой язык? В зависимости от того, какой язык вы рассматриваете, подход грубой силы может быть довольно эффективным. – rayryeng