точки рисования дуги - PullRequest
       22

точки рисования дуги

1 голос
/ 02 января 2012

Может ли кто-нибудь предоставить мне алгоритм рисования точек на дуге? Я знаю начальную точку, конечную точку и радиус. Мне нужно показать точки на дуге, сделанные этой информацией (начальная точка, конечная точка и радиус).

См. Изображение для более подробной информации enter image description here

У меня есть начальная точка (x, y), конечная точка (a, b). Я должен рассчитать одинаково расстояние 5 точек по дуге. Возможно ли это?

Ответы [ 2 ]

2 голосов
/ 02 января 2012

Стандартным алгоритмом для этого является Алгоритм окружности средней точки (иногда его называют алгоритмом окружности Брешенхэма).

Обратите внимание, что спецификация вашей дуги неполная.Обычно есть две дуги одинакового радиуса, соединяющие две заданные точки, по одной для центра на каждой стороне линии, соединяющей точки.Также, как указывает @In silico, радиус может быть не меньше половины расстояния между точками.

0 голосов
/ 04 января 2012

Способ указания дуги аналогичен тому, который используется в SVG, в котором есть некоторые подробные замечания по реализации , которые слишком длинны для копирования здесь.Для дуг окружности радиусы x и y равны, поэтому угол оси x не важен.Как отметил Тед Хопп, вам нужен флаг, чтобы указать, в каком направлении нарисована дуга (в SVG она называется large-arc-flag).

Как только вы получите центр и углы начала и конца дуги, разделитеугол на шесть и используйте sin / cos этого угла, чтобы построить пять промежуточных точек.

...