7. Язык PostScript* (Для дополнительного изучения)
Принципы векторной графики[1] основаны на ином математическом аппарате, чем растровая графика и имеют целью построение линейных контуров, составленных из элементарных кривых, описываемых математическими уравнениями в особой параметрической форме.
Для того чтобы линейные контуры, составленные из элементарных кривых, не создавали резких преломлений и разрывов, элементарные кривые должны быть гладкими, что обеспечивается специальным размещением управляющих линий. Общим видом таких кривых являются NURBS-кривые, а более частным — кривые Безье[2]. Первые и вторые используются в трехмерной графике, а вторые — только в программах плоской векторной графики.
В программах векторной графики единственный способ изменения формы — интерактивное перемещение опорных и управляющих точек. На базе кривой Безье основывается и язык описания страниц PostScript, развитие которого шло по пути интегрирования новых возможностей выводных устройств (цветной печати, систем управления цветом и шрифта).
В основе пиксельной графики лежит технология дискретизации (разделение плоского изображения на равные площадки — пиксели). Если применить принцип дискретизации для линейных изображений, ее характер будет другой — линейный. Пространственная дискретизация, на которой основана пиксельная графика, сменится на линейную.
Линейная дискретизация позволяет создавать произвольные векторные контуры из элементарных кривых, построенных на основе какой-либо единой формулы.
При делении произвольного векторного контура на отдельные фрагменты (сегменты) требуется:
· разбивать линии на достаточно короткие фрагменты (сплайны);
· выбрать наиболее простую формулу (функцию), представляемую в параметрической форме, для описания.
Самой простой функцией является линейная зависимость, с помощью которой описывается прямая линия. Разбивая линейный рисунок на достаточно мелкие элементы дискретизации, соединяя полученные точки дискретизации прямыми, можно с помощью конечного количества этих прямых представить любой линейный объект и любую сложную кривую. Главным достоинством такой технологии является простота: любая точка определяется ее двумя координатами. Таким образом, огромную кривую можно описать сотней пар чисел.
Однако указанная простота является причиной следующих недостатков:
· Объекты, составленные только из прямолинейных сегментов, лишаются возможности произвольного масштабирования. (Пока отрезки достаточно мелкие, они не создают впечатления угловатости, но при значительном коэффициенте увеличения углы становятся очевидными)
· Форма объекта, аппроксимированного[3] линейными отрезками, может изменяться, например: при вращении.
· Для достоверной аппроксимации формы объекта потребуются десятки тысяч линейных сегментов[4].
Указанные недостатки заставляют искать другие способы описания формы объектов и использовать более сложные кривые второй, третьей и т. д. степеней.