Заливка окружности
Заливка окружности, построенной алгоритмом Брезенхэма-Митчнера:
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 до радиуса, будет заполнена вся окружность, благодаря симметрии и рисованию горизонтальных линий.
Таким образом, алгоритм эффективно заполняет окружность, используя математические свойства окружности и симметрию, что позволяет избежать необходимости обрабатывать каждую точку отдельно.