Как мне сделать функцию для рисования дуг внутри матрицы? - PullRequest
0 голосов
/ 18 апреля 2019

Мне нужно сделать функцию / метод, который рисует дуги внутри матрицы. Я бы использовал 1 в качестве точек, которые формируют дугу, и 0 в качестве пустых пятен. Таким образом, функция выдаст что-то похожее на эту матрицу (в действительности я бы использовал матрицу 1400x700):

000000000000000
000100000001000
000010000010000
000000111000000
000000000000000

Мне нужно передать следующие параметры функции:

x: координата х

y: координата y

w: ширина

h: высота

start: начальный угол, в градусах

extent: экстент, в градусах

Теперь я не знаю, как это сделать. Кто-нибудь может мне помочь?

1 Ответ

1 голос
/ 18 апреля 2019

Подсказка:

Дуга окружности является границей области уравнения

(X - Xc)² + (Y - Yc)² ≤ R².

Отправной точкой может быть

(Xc + R, Yc).

Теперь из известной точки вы можете выполнить отслеживание контура, то есть повторно найти следующего 8-соседа, который проверяет неравенство.

Это дает вам глобальную идею. Обработка начальной и конечной точки немного сложнее. И оптимизации возможны, разделив работу на 8 октантов. Но это более длинная история.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...