Неоднородный рациональный В-сплайн

Неоднородный рациональный В-сплайн, или попросту NURBS (nonuniform rational B-spline curve), подобен обычному неоднородному В-сплайну, поскольку основан на тех же функциях сопряжения, получаемых для неоднородных узлов. Однако задающие точки рационального В-сплайна указываются в форме, то есть с использованием однородных координат. Функции сопряжения применяются именно к этим однородным координатам. Координаты точки на кривой NURBS в однородном пространстве получаются по формулам:

Неоднородный рациональный В-сплайн

Координаты точки в трехмерном пространстве х, у и z получаются делением xh, yh и zh на h, поэтому уравнение кривой NURBS в векторном виде может быть записано следующим образом (здесь мы поделили уравнения (6.47), (6.48) и (6.49) на (6.50)):

Неоднородный рациональный В-сплайн

где Рi — вектор (хi, уi zi), объединяющий координаты i-й задающей точки в трехмерном пространстве, как и для нерациональных В-сплайнов. Диапазон значений параметра tk-1 и tn+1, как и для В-сплайна (см. предыдущий раздел).

Уравнение (6.51) отражает следующие свойства кривой NURBS.

□ Подобно нерациональному В-сплайну, кривая NURBS, представленная уравнением (6.51), обязательно проходит через первую и последнюю задающие точки, если используются непериодические узлы. Это утверждение можно

доказать следующим образом. Числитель формулы (6.51) может считаться В- сплайном с задающими точками hi,Рi. Граничным значениям параметра будут соответствовать координаты hoPo и hnРn, поскольку В-сплайн с непериодическими узлами проходит через первую и последнюю задающие точки. Знаменатель (6.51) также может считаться В-снлайном с задающими точками hi. Граничным значениям параметра для этого В-сплайна будут соответствовать координаты ho и hn. Следовательно, граничным значениям параметра для Р(u) в целом будут отвечать координаты Р0 и Рn, то есть граничные задающие точки.

□   Касательная в начальной точке совпадает по направлению с вектором Р1 - Р0, а касательная в конечной точке — с вектором Рn- Pn-1. Проверка этого утверждения приводится в разделе 6.6.2.

□   Знаменатель (6.51) становится равным 1, когда все hi-е становятся равными 1, поскольку ∑ni=0Ni,k(u)= I1. Уравнение (6.51) при этом превращается в уравнение В-сплайна. Поэтому можно сказать, что уравнение NURBS может описывать не только NURBS-кривые, но и обычные В-сплайны. Кривая Безье является частным случаем В-сплайна, поэтому уравнение NURBS может также описывать кривые Безье и рациональные кривые Безье2.

Уравнение NURBS-кривой обладает определенными преимуществами перед уравнением В-сплайна.

□   Форма В-сплайна изменяется при изменении координат х, у и z задающих точек. Для каждой задающей точки, таким образом, имеется три степени свободы. Кривая NURBS позволяет изменять четвертую координату для каждой точки — hi. Появляется возможность работать с кривой на более тонком уровне. Увеличение значения однородной координаты задающей точки приводит к тому, что NURBS-кривая притягивается ближе к этой точке.

□   Уравнение NURBS позволяет точно воспроизвести все конические сечения — окружность, эллипс, параболу и гиперболу. В-сплайны, напротив, допускают лишь приближение к коническим сечениям. Таким образом, в NURBS-представлении можно работать с коническими сечениями, кривыми Безье, рациональными кривыми Безье и В-сплайнами. Преобразование всех этих кривых к NURBS может значительно сократить объем программирования. Например, можно написать одну-едннственную программу для расчета точки пересечения кривых NURBS и использовать ее для расчета пересечений кривых любых типов, поскольку эти кривые всегда могут быть преобразованы к соответствующим NURBS-представлениям.

Продемонстрируем вывод NURBS-представления для конических сечений на примере из книги Пигла и Тиллера [126]. Мы возьмем из этой книги только конечный результат, то есть порядок, координаты задающих точек (однородные) и узловые значения кривой NURBS, эквивалентной дуге окружности. В той же работе обсуждаются NURBS-представления других конических сечений. Дуга окружности — это квадратичная кривая степени 2, поэтому можно предполагать, что ее NlJRBS-представлеиие будет иметь степень 3. Пигл показал, что если центральный угол дуги окружности меньше 180°, для представления этой дуги достаточно всего лишь трех задающих точек (рис. 6.8). Из рассмотренных ранее свойств NURBS-кривых следует, что задающие точки Р0 и Р2 должны располагаться на концах дуги окружности, а точка Р, находится в точке пересечения касательных к дуге в ее конечных точках.

Неоднородный рациональный В-сплайн

Остается определить однородные координаты h0, h1 и h2. Если бы все они были равны 1, это был бы обычный В-сплайн, который не мог бы совпадать с дугой окружности. Однако Пигл обнаружил, что значения h0 = h2=1,h1= cos θ позволяют описать дугу точно. Здесь буквой 0 обозначен угол между любой касательной и отрезком РоР2 (см. рис. 6.8). Отсюда следует, что для центрального угла дуги, превышающего 180°, точка Р1, а значит, и угол 0 оказываются не определены. В этом случае дугу нужно разделить на части таким образом, чтобы у каждой из этих частей центральный угол был бы меньше 180°. Затем для каждой части определяется NURBS-представление, после чего эти представления объединяются. Объединение NURBS-кривых получается точно таким же способом, что и объединение В-сплайнов (см. приложение 3). Множество задающих точек объединенной кривой представляет собой объединение множеств задающих точек исходных кривых. Узловые значения объединенной кривой получаются слиянием наборов узловых значений с предварительным их сдвигом, обеспечивающим отсутствие скачков в точках соединений. Затем лишние узловые значения отбрасываются так, чтобы для каждого соединения значения повторялись не более чем k - 1 раз.

 

   


1 Доказательство этого приводится в работе [9].

2 Уравнение рациональной кривой Безье получается подстановкой Bi,n(uвместо Ni,k(u) в уравнение (6.5)). Другими словами, функции сопряжения Безье используются с задающими точками в однородных координатах.

Смотрите также