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

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

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

Первый способ заключается в задании кривой с помощью функций переменных 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(t) y(t) z(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 £ i £ n – 2. (4.19)

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

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

 








Дата добавления: 2016-04-14; просмотров: 1668;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.014 сек.