- •Московский институт электронной техники
- •Введение.
- •Пространственна кривая в параметрическом виде.
- •Интерполяционные кривые.
- •Сплайновые кривые.
- •Сплайновые кривые Эрмита.
- •Сплайновые кривые Безье.
- •Интерактивное изменение положения опорных точек сплайновых кривых с помощью мышки.
- •Интерактивное изменение числа опорных точек сплайновых кривых с помощью диалоговых окон.
- •Составные b-сплайновые кривые с кратными опорными точками
- •Нормализованные базисные функции b-сплайна.
Составные b-сплайновые кривые с кратными опорными точками
Составные B-сплайновые кубические кривые обладают набором интересных свойств. Выше было показано, как можно замкнутьB-сплайновую кривую или прикрепить ее к заданной опорной точке (опорному вектору), располагая определенным образом опорные точки (смотри формулы (45), (46)).
Аналогичных эффектов можно достичь, если в набор опорных векторов ввести кратные векторы (кратные вершины, кратные опорные точки). Если два соседних опорных вектора равны друг другу:
,
то они создают кратную опорную точку, кратность которой равна двум. Если три соседних опорных вектора равны друг другу:
,
то они создают кратную опорную точку, кратность которой равна трем.
Напомним, как создается составнаяB-сплайновая кубическая кривая. ВыбираемN+1 опорные векторыV0,V1,,VN-1,VN.
Используем из этого набора векторов четыре вектора Vi-1,Vi,Vi+1,Vi+2для созданияi-ой элементарнойB-сплайновой кубической кривойri(t). Номерiэлементарной сплайновой кривой меняется в пределахi=1, 2,,N-2. Другими словами наN+1 опорных векторах можно построитьN-2 элементарныеB-сплайновые кубические кривые, которые в совокупности дают составную сплайновую кривую.
Элементарная ri(t)B-сплайновая кубическая кривая с номеромi, строится по формулам (47), (48), (49), где в качестве столбцаpвыбирается следующий столбец.
(49а)
Параметр tв этих формулах меняется в пределах 0t1. Точкаt=0 соответствует началу элементарной кривой, а точкаt=1 соответствует концу элементарной кривой.
Для всех элементарных кривых, которые образуют составную кривую, параметр tявляется внутренним, локальным параметром, и не зависит от параметраtсоседней элементарной кривой.
Иногда бывает удобно ввести глобальный параметр t, при изменении которого радиус-векторr(t) скользит по всей составной сплайновой кривой, а параметрtменяется в следующих пределах:
(49b)
В этом случае радиус-вектор составной сплайновой кривой связан с элементарными кривыми следующим соотношением:
(49c)
Теперь попробуем закрепить составную сплайновую кривую в начальной опорной точке V0и в последней опорной точкеVN. Для этого, эти опорные точки должны быть кратными с кратностью равной трем. Для примера возьмем составную сплайновую кривую, составленную из 5-ти элементарных кубических сплайновых кривых. В этом случае набор из 8-ми опорных векторов имеет следующий вид:
(49d)
На Рис.26aпоказана составнаяB-сплайновая кривая, построенная по опорным векторам (49d).
Рис.26a Составная B-сплайновая кривая с закрепленными концами. Первая и последняя опорные точки являются трехкратными точкам. |
Рис.26b Составная B-сплайновая кривая с двукратной опорной точкойV3. |
(Изображения на Рис. 26а, 25 созданы программой line10.cpp.)
Если сравнить сплайновую кривую на Рис. 26а со сплайновой кривой на Рис. 24, то можно увидеть отличия в этих кривых. Хотя обе кривые построены по одним и тем же формулам (49a), (49b), (49c), различный выбор опорных векторов существенно меняет поведение этих кривых.
На Рис. 26а видно, что первая элементарная кубическая сплайновая кривая начинается в точке V2, а кончается в точке лежащей на отрезкеV2V3на расстоянии 1/6 длины этого отрезка от вершиныV2. При этом первая элементарная кубическая сплайновая кривая совпадает с прямой линией. Вторая элементарная кубическая сплайновая кривая начинается в указанной точке на отрезкеV2V3, и касается отрезкаV2V3.
Точно так же относительно отрезка V4V5располагаются пятая и четвертая элементарные кубические сплайновые кривые.
На Рис.26bпоказана составнаяB-сплайновая кривая, состоящая их 3-х элементарных кубических сплайновых кривых, с двукратной опорной вершинойV2=V3. Из рисунка видно, что составная сплайновая кривая достаточно близко подходит к двукратной вершине. И, кроме того, она касается отрезковV1V2иV3V4, прилегающих к этой вершине.