Назначение генератора векторов - соединение двух точек изображения отрезком прямой.
Далее будут рассмотрены четыре алгоритма:
· два алгоритма ЦДА - цифрового дифференциального анализатора (DDA - Digital Differential Analyzer) для генерации векторов - обычный и несимметричный;
· алгоритм Брезенхема для генерации векторов[];
· алгоритм Брезенхема для генерации ребер заполненного многоугольника с уменьшением ступенчатости.
Перед рассмотрением конкретных алгоритмов сформулируем общие требования к изображению отрезка:
· концы отрезка должны находиться в заданных точках;
· отрезки должны выглядеть прямыми,
· яркость вдоль отрезка должна быть постоянной и не зависеть от длины и наклона.
Ни одно из этих условий не может быть точно выполнено на растровом дисплее в силу того, что изображение строится из пикселов конечных размеров, а именно:
· концы отрезка в общем случае располагаются на пикселах, лишь наиболее близких к требуемым позициям и только в частных случаях координаты концов отрезка точно совпадают с координатами пикселов;
· отрезок аппроксимируется набором пикселов и лишь в частных случаях вертикальных, горизонтальных и отрезков под 45° они будут выглядеть прямыми, причем гладкими прямыми, без ступенек только для вертикальных и горизонтальных отрезков (рис.);
· яркость для различных отрезков и даже вдоль отрезка в общем случае различна, так как, например, расстояние между центрами пикселов для вертикального отрезка и отрезка под 45° различно (см. рис.).
Рис. 0.2.1: Растровое представление различных векторов
Объективное улучшение аппроксимации достигается увеличением разрешения дисплея, но в силу существенных технологических проблем разрешение для растровых систем приемлемой скорости разрешение составляет порядка 1280×1024.
Субъективное улучшение аппроксимации основано на психофизиологических особенностях зрения и, в частности, может достигаться просто уменьшением размеров экрана. Другие способы субъективного улучшения качества аппроксимации основаны на различных программных ухищрениях по "размыванию" резких границ изображения.
Далее в этом разделе рассмотрены три алгоритма генерации отрезка.