В рамках более сложного алгоритма мне нужно следующее:
- допустим, у меня есть круг с радиусом R1, нарисованный на дискретной сетке (изображение) (зеленый на изображении ниже)
- Я хочу нарисовать круг с радиусом R2, который больше, чем R1, на один пиксель (красный на изображении ниже).
- На каждом шаге алгоритма рисовать круги с увеличивающимся радиусом таким образом, чтобы каждый раз, когда я заполнялкружок.
Как найти точки, которые нужно заполнить на каждом шаге, чтобы в конце каждого шага я полностью подал кружок?
Я думаю о каком-то алгоритме растеризации круга, но это приведет к некоторым пробелам в заполнении.Другим способом является использование некоторой математической морфологической операции, такой как расширение, но это кажется вычислительно дорогостоящим делом.
Я обычно ищу способ сделать это для произвольной формы, но изначально будет достаточно алгоритма окружности.