0 голосов
 
647 просмотров
1.10.2017 / 18:51  Death

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

Как залить окружность радиусом r?

Попытка
Изм. Death от 1.10.2017 / 18:51
1.10.2017 / 18:56  aNNiMON
Ни вопрос, ни твои теги не говорят конкретно, что тебе нужно.

Алгоритм? Заливка в C++, Java, LibGDX?
Я могу ответить: fillArc, но тебя же не устроит такой ответ, да? Так что уточняй в тегах или в самом вопросе, что тебе нужно.
1.10.2017 / 19:10  vlavolk
ему нужен алгоритм с помощью которого fillarc красит пиксели
6.10.2017 / 04:12  Death
Нужен алгоритм, который проходится по int[][] с заполнением 0. В точке (x,y) с радиусом r и всё что внутри делает 1.
Ответы
 
0 голосов
 
# 6.10.2017 / 03:47  Askalite
В реальности используется алгоритм построчной заливки. Берётся линия Y, Y+1, Y+2 и так далее. На линии ищутся координаты пересечения. [x1,x2], [x3,x4] и так далее. Потом в цикле зарисовываются эти отрезки:
i=x1;
while (i<x2){
  paint (i, y1);
} //ЭТОТ ПРИМЕР МЕДЛЕННЫЙ

Почему построчный метод? Во-первых он быстрее. Во-вторых он экономный по памяти в отличие от рекурсивной заливки.

Сам метод заливки стараются сделать как можно более быстрым и более эффективным. Вероятно в андроиде вся работа с графикой не в байт коде, а в нативных операциях по работе с массивами.
6.10.2017 / 12:31  Витаминыч
Я еще видел пример с заливкой от центра к краю той же окружностью
Всего: 1

Реклама

Мы в соцсетях

tw tg yt gt