Заливка окружности

Заливка окружности, построенной алгоритмом Брезенхэма-Митчнера:

1. Инициализация параметров:

• Сначала задаются координаты центра окружности (centerX, centerY) и её радиус (radius). Эти параметры определяют, где будет находиться окружность и насколько она будет большой.

2. Цикл по координатам:

• Алгоритм использует цикл, который проходит по всем возможным значениям x от 0 до радиуса окружности. Это позволяет обрабатывать только одну восьмую часть окружности, так как остальные части симметричны.

3. Вычисление y:

• Для каждого значения x вычисляется соответствующее значение y, используя уравнение окружности: y = √(radius² - x²). Это уравнение позволяет определить высоту точки на окружности для данного значения x.

4. Рисование горизонтальных линий:

• После нахождения y, алгоритм рисует горизонтальные линии в верхней и нижней частях окружности. Для этого вызывается функция drawScanline, которая принимает координаты центра окружности, смещения по осям и цвет.

• В drawScanline рисуются пиксели от (centerX - x, centerY - y) до (centerX + x, centerY - y) для верхней части и от (centerX - x, centerY + y) до (centerX + x, centerY + y) для нижней части.

5. Цвет пикселей:

• Цвет пикселей может изменяться в зависимости от координат x и y, что позволяет создать градиентный эффект при заполнении окружности. Для этого используется функция putPixel, которая закрашивает каждый отдельный пиксель на канвасе.

6. Завершение:

• После того как алгоритм обработает все значения x от 0 до радиуса, будет заполнена вся окружность, благодаря симметрии и рисованию горизонтальных линий.

Таким образом, алгоритм эффективно заполняет окружность, используя математические свойства окружности и симметрию, что позволяет избежать необходимости обрабатывать каждую точку отдельно.