Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
к КР.doc
Скачиваний:
13
Добавлен:
18.11.2018
Размер:
337.41 Кб
Скачать

Дискретизация.

Основным изображением векторного изображения является линия.

Можно представить, что всё многообразие линейной графики можно представить в виде формул. Которые бы её описывали и позволяли экономно фиксировать. Однако, составление такой формулы не является тривиальной задачей, требующей больших временных затрат.

Возникает идея – описать с помощью одной формулы все многообразия кривых векторной графики. В пиксельной графике основу составляет дискретизация на элементы равного размера и одинаковой формы.

Попытаемся применить эту идею к векторному изображению.

Дискретизация здесь приобретет линейный характер (вдоль линии).

Примем следующие условия дискретизации:

  • Линии разбиваются на достаточно мелкие (короткие) фрагменты.

  • Выбирается наиболее простая формула (функция)

Самая простая функция – линейная. Любую кривую можно представить с помощью конечного числа прямолинейных отрезков.

Главное достоинство:

- простота (для каждой точки достаточно двух чисел, определяющих координаты этих точек. Любую кривую можно описать сотней пар чисел).

Недостатки:

- объекты, составленные только из прямолинейных сегментов, лишаются возможности произвольного масштабирования – угловатость при увеличении;

- форма объекта, аппроксимированного линейными отрезками, может изменяться при вращениях;

- для достоверности аппроксимации формы объекта потребуются десятки тысяч линий сегментов.

Вывод: необходимо искать более сложные кривые (кривые более высоких степеней).

  1. Понятие сплайна. Аппроксимация сплайнами – исторические и теоретические предпосылки. Явные и параметрические функции аппроксимирующих многочленов.

Сплайн – гладкая кривая, которая проходит через две или более опорных точек, а также имеет расположенные вне ее управляющие точки, влияющие на форму сплайна. Наиболее общие типы сплайнов – кривые Безье и B-сплайны (B-spline curves). Типичным примером сплайнов являются также неоднородные рациональные B-сплайны (Non-Uniform Rational B-Spline – NURBS). Сплайны состоят из вершин (Vertices) и сегментов (Segments). Каждая вершина сплайна имеет касательные векторы (Tangents), снабженные на концах управляющими точками, или маркерами (Handels). Маркеры касательных векторов управляют кривизной сегментов сплайна при входе в вершину, которой принадлежат касательные векторы, и выходе из нее.

Кривые Безье разработаны математиком Пьером Безье. Кривые и поверхности Безье использовались в 60-х годах компанией "Рено" для компьютерного проектирования формы кузовов автомобилей. В настоящее время они широко используются в компьютерной графике.

Кривые Безье описываются в параметрической форме:

x=Px(t), y=Py(t).

Значение t выступает как параметр, которому отвечают координаты отдельной точки линии.

Многочлены Безье для Px и Py имеют следующий вид:

где Cmi – сочетание m по i, а xi, yi – координаты точек ориентиров Pi. Значение m можно рассматривать и как степень полинома, и как значение, которое на единицу меньше количества точек-ориентиров.

Рассмотрим кривые Безье, классифицируя их по значени- ям m.

m=1 (по двум точкам). Кривая вырождается в отрезок прямой линии, определяемой концевыми точками P0 и P1. Параметрическое уравнение:

P(t)=(1-t)P0 + tP1.

m=2 (по трем точкам). Параметрическое уравнение:

P(t)=(1-t)2P0 + 2t(1-t)P1 + t2P2.

m=3 (по четырем точкам – кубическая). Используется довольно часто, в особенности в сплайновых кривых. Параметрическое уравнение:

P(t)=(1-t)3P0 + 3t(1-t)2P1 + 3t2(1-t)P2 + t3P3.

Геометрический алгоритм для кривой Безье позволяет вычислить координаты (x, y) точки кривой Безье по значению параметра t (рис. 9).

  1. Каждая сторона контура многоугольника, проходящего по точкам-ориентирам, делится пропорционально значению t.

  2. Точки деления соединяются отрезками прямых и образуют новый многоугольник. Количество узлов нового контура на единицу меньше, чем количество узлов предыдущего контура.

  3. Стороны нового контура снова делятся пропорционально значению t и т.д. Это продолжается до тех пор, пока не будет получена единственная точка деления – точка кривой Безье.

Сегмент кривой Безье 3-го порядка описывается положением четырех точек. Две из них являются опорными (узлами кривой): начальная точка P0 (x0, y0) и конечная P3 (x3, y3). Точки P1 (x1, y1) и P2 (x2, y2), определяющие положение касательных относительно отрезка, называются управляющими. Метод построения кривой Безье основан на использовании пары касательных (управляющих линий), проведенных к сегменту кривой в его окончаниях. На форму кривой влияют угол наклона касательной и длина ее отрезка.

Параметрическое уравнение Безье описывает положение точек и, тем самым, форму кривой. Уравнение решают относительно параметра t, принимающего значения от 0 (в начальной точке) до 1 (в конечной точке). При построении сегмента кривой Безье на плоскости рассчитывают координаты x и y (для четырех точек, из них двух управляющих):

R(t)=P0(1-t)3 + P1t(1-t)2 + P2t2(1-t) + P3t3, где 0<t<1;

x(t)=axt3 + bxt2 + cxt + x0;

x1=x0 + (cx:3); x2=x1 + [(cx+bx):3]; x3=x0 + cx + bx + ax;

y(t)= ayt3 + byt2 + cyt + y0;

y1=y0 + (cy:3); y2=y1 + [(cy+by):3]; y3=y0 + cy + by + ay.

Следовательно:

cx=3(x1-x0); bx=3(x2-x1)-cx; ax=x3 - x0 - cx - bx;

cy=3(y1-y0); by=3(y2-y1)-cy; ay=y3 - y0 - cy - by.

Значение t определяет степень влияния точек на форму кривой. Например, при t=0,333 наибольший "вес" приобретает точка P1, а при t=0,666 – точка P2. Из приведенных уравнений вытекает, что кривая может проходить лишь через начальную и конечную опорные точки сегмента (P0, P3). Тем самым достигаются простота описания и стабильность кривой Безье.

Кривые Безье обладают рядом свойств, определяющих возможность их использования в векторной графике. С геометрической точки зрения, производной кривой Безье будет другая кривая Безье, векторы управляющих точек которой определяются вычислением разностей векторов управляющих точек исходной кривой.