Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерная графика Учебные пособия / Конспект лекций по графике_1.doc
Скачиваний:
235
Добавлен:
29.03.2016
Размер:
1.36 Mб
Скачать

Параметрические кубические кривые

Для визуализации кривых линий с помощью компьютера надо знать их математическое описание.

Существуют два основных способа представления кривых.

Первый способ заключается в задании кривой с помощью функций переменных x,y,z:

z = f(x, y), или F(x, y, z) = 0. (4.1)

Этот способ представления влечет за собой многие ограничения, особенно, если некоторым значениям координат xиyбудут соответствовать несколько значенийz, т.е. если кривая образует петлю. Кроме того, в некоторых точках кривой значение тангенса угла наклона может оказаться равным бесконечности.

Эти проблемы снимаются в случае параметрическогоспособа представления кривых, когда координатыx,yиzописываются как функции от некоторого параметраt:

x=f(t),

y=f(t),

z=f(t).(4.2)

При таком способе представления легко описываются замкнутые и многозначные функции, а вместо тангенсов углов наклона используются касательные вектора, которые никогда не бывают бесконечными.

Математическими сплайнами называют функции, используемые для аппроксимации кривых. Важным их свойством является простота вычислений. На практике часто используют сплайны вида полиномов третьей степени. С их помощью довольно удобно проводить кривые, которые интуитивно соответствуют человеческому субъективному понятию гладкости. Термин «сплайн» происходит от английского spline– что означает гибкую полоску стали, которую применяли чертежники для проведения плавных кривых, например, для построения обводов кораблей или самолетов.

В качестве функций от параметра tнаиболее часто используются многочлены третьей степени (кубические):

(4.3)

Диапазон изменения параметра tможет быть любым, но наиболее часто его ограничивают 0t 1. Все последующие выводы будут рассмотрены для этого диапазона.

Формулы для x(t),y(t) иz(t) аналогичны друг другу, поэтому далее будут рассматриваться только уравнения для координатыx.

Координаты точек на кривой описываются вектором [x(ty(tz(t)], а три производные задают координаты соответствующего касательного вектора в точке. Например, для координатыx:

. (4.4)

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

Существует несколько способов описания параметрических кубических кривых. Рассмотрим основные: формы Эрмита, Безье и В-сплайны. Каждая из этих форм имеет свои достоинства и недостатки.

В рамках формы Эрмитакривая задается через координаты конечной и начальной точек (P1иР4) и значений касательных в этих точках (R1иR4). Точкам присваиваются индексы 1 и 4, а не 1 и 2 для совместимости с выражениями, которые используются при построении кривых методами Безье и В-сплайнов. При этом полагают, что для начальной точкиt=0, а для конечнойt=1.

Перепишем формулы для функции x(t) и касательнойx(t) в матричном виде:

. (4.5)

. (4.6)

где

, .

Задача построения кривой сводится к нахождению значений элементов матрицы Cx,т.е. коэффициентов ax, bx, cx, dx, удовлетворяющих условиям:

, , , (4.7)

Подставив эти значения в (4.5) и (4.6) получим:

,

,

,

. (4.8)

Объединяя полученные выражения в одно матричное уравнение, получим:

. (4.9)

Искомое выражение для Сх:

(4.10)

где Mh– эрмитова матрица,Ghx – геометрический вектор Эрмита.

Подставляя полученный результат в (4.5) получим итоговое уравнение для координаты х:

x(t) =T Mh Ghx=

.(4.11)

Форму кривой, заданной в форме Эрмита, легко изменять, если учитывать, что направление вектора касательной задает начальное направление, а модуль вектора касательной задает степень вытянутости кривой в направлении этого вектора, как показано на рис. 29.

Рис. 29. Параметрический сплайн в форме Эрмита. Вытянутость кривой вправо обеспечивается тем, что |R1| > |R4|

Для обеспечения условий непрерывности при стыковке сегментов кривой необходимо, чтобы конечная точка первого сегмента совпадала с начальной точкой второго сегмента, а касательные вектора к сегментам в этих точках имели одинаковое направление, длина векторов может быть разной:

P4I=P1II,R4I=kR1II. (4.12)

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

В форме Безьедля задания кубической кривой используются четыре управляющих точки:Р1,Р2,Р3иР4. Данная форма задания кубической кривой очень близка к форме Эрмита, но касательные вектора в конечных точкахR1иR4задаются отрезкамиР1Р2иР3Р4.

Рис. 30. Параметрический сплайн в форме Безье.

Точки P2иP3и соответствующие им радиус векторы (как показано на рис.42) вводятся так, что выполняются условия:

R1x = 3(Р2xР1x) = x(0), R4x = 3(Р4xР3x) = x(1).

Переход от геометрического вектора Безье Gbк геометрическому вектору ЭрмитаGhопределяется как:

(4.13)

где Mhb– матрица перехода от геометрического вектора Безье к геометрическому вектору Эрмита.

Выражение для функции x(t) выглядит так:

x(t) = T Mh Ghx = T Mh Mhb Gbx = T Mb Gbx, (4.14)

. (4.15)

Отсюда:

x(t) = (1 – t)3P1x + 3t(t – 1)2P2x + 3t2(1 – t)P3x + t3P4x. (4.15)

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

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

Для обеспечения условий непрерывности при соединении сегментов кривой необходимо, чтобы конечная точка первого сегмента совпадала с начальной точкой второго сегмента, а точки P3IиP2IIлежали на одной прямой, проходящей через точку соединения сегментов:

P4I=P1II, (P4IP3I) =k(P2IIP1II).(4.18)

Форма В-сплайновявляется более гладкой, чем другие формы представления, т.к. непрерывностью изменения обладают ее касательный вектор и кривизна, т.е. первая и вторая производные кривой непрерывны в конечных точках, в отличие от форм Эрмита и Безье у которых в конечных точках непрерывны лишь первые производные.

В-сплайн описывается следующей формулой:

x(t) = T Ms Gisx, (4.17)

где

. (4.18)

При аппроксимации управляющих точек Р1,Р2, …,Рnпоследовательностью В-сплайнов между каждой парой соседних точекРiиРi+1последовательно используются геометрические матрицы:

, 2  in – 2. (4.19)

В общем случае управляющие точки В-сплайна не лежат на кривой, однако, при определенных условиях В-сплайн может проходить через любыеуправляющие точки. В-сплайн, описываемый приведенной выше формулой, пройдет через управляющую точкуРiв случае, если точкиРi,Рi+1иРi+2совпадают. Обычно форму В-сплайнов применяют для аппроксимации продолжительных отрезков кривых, задаваемых значительным (более пяти) числом управляющих точек.

Наиболее широко в компьютерной графике используются так называемые неравномерные рациональные В-сплайны (NURBS–Non-UniformRationalB-Splines).NURBSшироко применяются в системах геометрического моделирования и трехмерной графике.