Как изменить алгоритм круга средней точки, чтобы получить начальный угол и конечный угол?

Я просмотрел много мест и не нашел никаких ресурсов (которые я понимаю), которые объясняют, как превратить стандартный алгоритм круга средней точки (который использует октанты для создания всего круга) только для рассмотрения определенного «кусочка» круга. Я использую это, чтобы найти тайлы в радиусе прямой видимости.

код, который я использую, является базовым кодом Википедии для реализации алгоритма.

Я использую java внутри «Обработки» для создания прототипов.

Я пытаюсь понять, как работает этот алгоритм, чтобы изменить его, но у меня возникли проблемы.


person Evan J Besser    schedule 01.05.2017    source источник


Ответы (1)


Алгоритм средней точки или алгоритм Брезенхэма можно расширить условием, если точка, которую вы растрируете, попадает в диапазон, указанный вами по углам (точкам). Чтобы получить диапазон, вам нужно найти начальную и конечную точки на круге. Это легко сделать с помощью полярных координат. Если у нас есть круг с радиусом r, углом theta и центром C(x0,y0), точка на круге может быть вычислена как pCircle(x,y) = (x0 + r * cos theta, y0 + r * sin theta). Обратите внимание, что угол указан в радианах.

person Croolman    schedule 01.05.2017
comment
Спасибо, я знаком с тригонометрией и полярной системой координат. После дальнейших исследований я нашел кое-что, что демонстрирует то, что вы описали. Для тех, кто столкнулся с той же проблемой, вот ссылка на практику. answers.google.com/answers/threadview/id/769733.html Спасибо, Крулман! - person Evan J Besser; 02.05.2017