|
Макеты страниц
2.9. NURBS кривыеВ-сплайны используют для построения рациональных кривых линий в форме (2.7.5). Формула для вычисления радиус-вектора рациональной параметрической кривой на основе
Радиус-вектор кривой равен частному от деления некоторого вектора на вес кривой в данной точке. Каждый из Когда все вершины NURBS кривой имеют равные веса, то формула (2.9.1) для вычисления радиус-вектора кривой на основе
Эта кривая также может быть использована в моделировании, так как она обладает определенным порядком гладкости, достаточно легко вычисляется и легко управляется своими вершинами. В формуле (2.9.1) для построения совокупности из Для построения замкнутой Вычисление радиус-вектора кривой.Для вычисления радиус-вектора NURBS кривой используется следующая схема. По значению параметра t из условия
Далее, используя рекуррентное соотношение Кокса-Де Бура
последовательно вычисляются все отличные от нуля при данном параметре t В-сплайны до m-го порядка Включительно:
Данная треугольная таблица вычисляется построчно, поскольку из (2.9.2) известен элемент первой строки, а каждый элемент следующей строки можно построить по двум соседним элементам в предыдущей строке с помощью (2.9.3). При вычислении крайних элементов каждой строки используется тот факт, что один из элементов в предыдущей строке равен нулю. Далее В-сплайны
и подставляются в формулу (2.9.1), которая примет вид
Одновременно с вычислением Свойства кривой.Каждый В-сплайн отличен от нуля только на части области изменения параметра кривой, поэтому при изменении радиус-вектора одной из вершин подлежит пересчету не вся кривая, а только ее часть.
Это равенство получим, переставив операции интегрирования и вычисления разделенной разности. Проинтегрируем усеченную степенную функцию (2.8.17) в указанных пределах
Вычислим разделенную разность полученной функции на последовательности узлов Из (2.9.5) следуют равенства:
NURBS кривая (2.9.1) обладает достаточной гибкостью. Ее можно легко редактировать путем изменения положения вершин. Например, легко можно модифицировать имеющуюся NURBS кривую так, чтобы она проходила через указанную точку или чтобы она касалась указанной кривой в заданной точке. Производные радиус-вектора кривой.Используя определение В-сплайна и тот факт, что первая производная усеченной степенной функции по параметру t равна
вычислим первую производную В-сплайна, переставляя дифференцирование и вычисление разделенных разностей
Продифференцируем числитель выражения (2.9.1) с учетом (2.9.6) и получим
где Вершины
Продолжая дифференцирование, можно найти производную требуемого порядка для числителя выражения (2.9.1):
где Для производных знаменателя (2.9.1) получим выражение, аналогичное
где Радиус-вектор NURBS кривой (2.9.1) вычисляется как частное от деления двух функций параметра кривой f, поэтому при вычислении производной NURBS кривой правую часть (2.9.1) следует рассматривать как сложную функцию. Первая производная радиус-вектора NURBS кривой равна
где
Аналогично вычисляются производные NURBS кривой более высокого порядка
Производные второго и третьего порядка определены равенствами (2.7.10), (2.7.11). Можно заметить, что радиус-вектор точки и ее вес Алгоритм Де Бура.Преобразуем числитель выражения (2.9.1), используя формулу (2.8.32.1), следующим образом:
где
Продолжим упрощение числителя выражения (2.9.1) аналогичным образом и получим
Для знаменателя выражения (2.9.1) получим аналогичное выражение
Мы пришли к выводу, что положение точки NURBS кривой (2.9.1) для заданного параметра
с помощью рекуррентных соотношений
которые начинаются со значений
Рис. 2.9.1. Алгоритм Де Бура Вставка узлов. У заданной NURBS кривой Таким образом, вместе с вставкой узла Узел t может быть вставлен многократно (максимальная кратность равна По их значениям можно определить новые вершины и их веса. Новых вершин будет на к больше, чем старых, поэтому номера узлов и вершин начиная с Примеры.Для незамкнутой NURBS кривой мы будем использовать следующие значения узлов. Пусть первые m узлов имеют значения, равные нулю:
Рис. 2.9.2. Набор В-сплайнов
Рис. 2.9.3. Набор B-сплайнов 4-го порядка для замкнутой NURBS кривой узлов: Сплайны с равномерной параметризацией Шёнберг назвал кардинальными. На рис. 2.9.2 показан полный набор В-сплайнов 4-го порядка (кубических) для 9 вершин, построенных на расширенном множестве узлов
Рис. 2.9.4. NURBS кривые и их характеристические ломаные линии Параметр t сплайна (2.9.1), построенного на данном множестве узлов, принимает значения на отрезке
Рис. 2.9.5. Влияние порядка на форму NURBS кривой Для замкнутой NURBS кривой используется последовательность равноотстоящих узлов:
Рис. 2.9.6. Влияние веса точки На рис. 2.9.3 показан полный набор В-сплайнов 4-го порядка для 6 вершин, построенных на расширенном множестве узлов —3, —2, —1, О, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Все В-сплайны для замкнутой кривой похожи друг на друга. Параметр t сплайна (2.9.1), построенного на данном множестве узлов, принимает значения на отрезке На рис. 2.9.4 показаны незамкнутый и замкнутый сплайны и их характеристические ломаные, построенные по описанным выше последовательностям узлов. У незамкнутой кривой крайние точки совпадают. Как и кривая Безье, NURBS кривая не проходит через свои вершины за исключением крайних точек для незамкнутой кривой. На рис. 2.9.5 по одним и тем же восьми вершинам построены NURBS кривые 2-го, 4-го, 6-го и 8-го порядка. На рисунке мы наблюдаем, что чем выше порядок кривой, тем она более гладкая. NURBS кривая второго порядка совпадает со своей характеристической ломаной линией. На рис. 2.9.6 показано влияние веса вершины NURBS представление ломаной линии.Если построить NURBS кривую (2.9.1) по
Мы видим, что
Рис. 2.9.7. В-сплайны второго порядка Замкнутую ломаную линию как частный случай NURBS кривой (2.9.1) можно построить на последовательности узлов NURBS представление отрезка прямой.Отрезок прямой может быть представлен в виде NURBS кривой (2.9.1)
по двум вершинам
Кривая Безье как частный случай NURBS кривой.Нормированные В-сплайны
совпадает с рациональной кривой Безье (2.7.2). Это происходит, когда число вершин на единицу больше порядка В-сплайна Равенство В-сплайнов
Рис. 2.9.8. Функции Бернштейна — частный случай В-сплайнов Вспомним, что коэффициенты Бернштейна связаны рекуррентным соотношением
Мы получим все коэффициенты Бернштейна, начав вычисления с
где только Из приведенных формул видно, что коэффициенты Бернштейна NURBS представление кривой второго порядка.Выше мы показали, что кривые второго порядка могут быть представлены в виде рациональных кривых Безье.
Рис. 2.9.9. Эллиптическая NURBS кривая NURBS кривые являются обобщением рациональных кривых Безье, поэтому некоторая часть любой кривой второго порядка может быть представлена в виде NURBS кривой по трем вершинам на последовательности узлов Полностью кривую второго порядка можно представить в виде NURBS кривой, если использовать кратные узлы. На рис. 2.9.9 приведена эллиптическая NURBS кривая Она построена по точкам
Рис. 2.9.10. NURBS кривая с кратными узлами Веса характеристических точек равны: NURBS кривая может иметь изломы в точках с кратными узлами. Изломы возникают, когда соответствующие соседние вершины не расположены на одной прямой. На рис. 2.9.10 приведена та же эллиптическая NURBS кривая, но с измененными положениями точек NURBS кривая (2.9.1) обобщает все рассмотренные выше кривые — отрезок прямой, ломаная линия, кривая Безье, конические сечения могут быть описаны в виде NURBS кривой. По своей природе NURBS кривая представляет собой линейную комбинацию кусочно-полиномиальных функций заданной степени, она позволяет строить кривые заданного порядка гладкости. NURBS представление кубического сплайна.Пусть построен незамкнутый кубический сплайн
Веса вершины
Используя формулы (2.9.2) и (2.9.3), определим, что для каждого значения параметра
и два В-сплайна третьего порядка:
После подстановки (2.9.20) и (2.9.21) в (2.9.19) система уравнений для определения вершин примет вид
где
Матрица системы уравнений (2.9.22) является трехдиагональной. Для замкнутого кубического сплайна система уравнений (2.9.19) упрощается, так как в ней исчезнут второе и предпоследнее уравнения, определяющие производные кривой на краях. Число вершин Интерполяция.Совокупность В-сплайнов порядка
Для того чтобы эта система имела единственное решение, необходимо и достаточно, чтобы определитель ее матрицы был отличен от нуля. Можно доказать что определитель матрицы
составленной из значений В-сплайнов, вычисленных в точках Пользоваться описанным способом вычисления вершин
|
Оглавление
|