Алгоритм рисования линий на плоскости - PullRequest
4 голосов
/ 14 мая 2011

Каков алгоритм рисования линии на плоскости (точечной), если она не горизонтальная или вертикальная?

Ответы [ 2 ]

9 голосов
/ 14 мая 2011
4 голосов
/ 14 мая 2011

Не существует «точечного» алгоритма - точки бесконечно малы, поэтому любой алгоритм, основанный на точках, может занять бесконечное время.

Вместо этого линии рисуются на основе условной ширины пера и расчета количества и интенсивности пикселей, которые будут покрыты штрихом пера.

Если вы просто хотите включать и выключать пиксели, как это было в 1970-х годах, используйте один из алгоритмов Бренсенхама.

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

Многие графические алгоритмы основаны на кривых Безье; Прямые линии - это просто кривые, в которых контрольные точки находятся на одной линии, поэтому алгоритмы их отрисовки одинаковы, хотя могут вносить некоторые оптимизации.

...