Алгоритм рисования линий - Line drawing algorithm
эта статья может быть расширен текстом, переведенным с соответствующая статья на немецком. (Декабрь 2009 г.) Щелкните [показать] для получения важных инструкций по переводу.
|
В компьютерная графика, а алгоритм рисования линий является алгоритм для аппроксимации отрезок на дискретных графический СМИ, такие как пиксель -на основании отображает и принтеры. На таких носителях для рисования линий требуется приближение (в нетривиальных случаях). Базовые алгоритмы растрировать линии в один цвет. Лучшее представление с несколькими цветовые градации требует продвинутого процесса, пространственное сглаживание.
На непрерывных носителях, напротив, не требуется никакого алгоритма, чтобы провести черту. Например, осциллографы использовать природные явления для рисования линий и кривых.
Декартов уравнение угла наклона для прямой линииС участием м представляющий наклон линии и б как y-перехват. Учитывая, что две конечные точки линейного сегмента указаны в позициях и , можно определить значения наклона м и Y-перехват б со следующими расчетами: так, .
Список алгоритмов рисования линий
Ниже приводится неполный список алгоритмов рисования линий:
- наивный алгоритм
- Цифровой дифференциальный анализатор (графический алгоритм) - Похож на простой алгоритм рисования линий, с небольшими вариациями.
- Линейный алгоритм Брезенхема - оптимизирован для использования только сложений (то есть без делений или умножений); это также позволяет избежать вычислений с плавающей запятой.
- Линейный алгоритм Сяолинь Ву - может выполнять пространственное сглаживание, кажется "цепким" от яркости, меняющейся по длине линии
- Алгоритм Гупта-Спроулла
Наивный алгоритм рисования линий
Самый простой метод растрирования - это прямое рисование уравнения, определяющего линию.
dx = x2 − x1dy = y2 − y1для Икс от x1 к x2 делать у = y1 + dy × (Икс − x1) / dx сюжет(Икс, у)
Именно здесь баллы уже расставлены так, чтобы .Этот алгоритм отлично работает, когда (т.е. наклон меньше или равен 1), но если (т. е. наклон больше 1), линия становится довольно разреженной с большим количеством промежутков, и в предельном случае , произойдет исключение деления на ноль.
Наивный алгоритм рисования линий неэффективен и поэтому медленен на цифровом компьютере. Его неэффективность связана с количеством операций и использованием вычислений с плавающей запятой. Алгоритмы рисования линий, такие как Bresenham или Ву вместо этого предпочтительнее.
использованная литература
Основы компьютерной графики, 2-е издание, А.К. Питерс Питер Ширли