Научная статья на тему 'Интерполяция с помощью B-сплайновых кривых'

Интерполяция с помощью B-сплайновых кривых Текст научной статьи по специальности «Математика»

CC BY
642
69
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
NURBS / B-СПЛАЙН КРИВЫЕ / ИНТЕРПОЛЯЦИЯ / B-SPLINE CURVES / INTERPOLATION

Аннотация научной статьи по математике, автор научной работы — Котелина Н.О.

Статья посвящена задаче интерполяции точек при помощи B-сплайновых кривых. Рассматриваются методы глобальной интерполяции, при которых составляется и решается система линейных уравнений.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Interpolation with B-spline curves

This article deals with the problem of interpolation with polynomial Bspline curves. It examines methods of global interpolation when systems of linear equations are set up and solved.

Текст научной работы на тему «Интерполяция с помощью B-сплайновых кривых»

ПРИКЛАДНАЯ МАТЕМАТИКА И МЕХАНИКА

Вестник Сыктывкарского университета. Серия 1: Математика. Механика. Информатика. Выпуск 1 (21). 2016

УДК 519.652

ИНТЕРПОЛЯЦИЯ С ПОМОЩЬЮ В-СПЛАЙНОВЫХ

КРИВЫХ

Н. О. Котелина

Статья посвящена задаче интерполяции точек при помощи B-сплайновых кривых. Рассматриваются методы глобальной интерполяции, при которых составляется и решается система линейных уравнений.

Ключевые слова: NURBS, B-сплайн кривые, интерполяция.

1. Определение NURBS

Пусть заданы натуральные L, m. Рассмотрим узловой вектор T = (t0,... , tL+m+1), где ti G R и ti < ti+1, i G 0... L + m. Тогда определим базисные функции Nk;P(t) степени p рекурсивно: при p =0 это просто постоянные единичные функции в пределах своего диапазона:

АТ I 1) tk < t < tfc+i,

Nk,o = \ ¡л

О, иначе.

При этом к Е 0 : Ь + т.

Прир > 0, р < т определим В-сплайн функции (Щ^^^+О)1- через функции (р — 1)-й степени:

^М*) = ^р-^) + 1к+Р+1 — * (1)

*к+р — *к *к+р+1 — *к+1

Будем считать в случае, когда *к+р = *к или *к+Р+1 = *к+1, что соответствующее слагаемое в (1) отсутствует.

Пусть есть набор полюсов (Рг, г = 0,... , Ь} и весов (ш0,... , 'ь}, где шг > 0, г € 0 : Ь.

© Котелина Н. О., 2016.

Построим стыковочные функции вида

Rk (t) = LWfcNk'm(t) . (2)

Ek=0 WkNk,m(t)

Тогда дробно-рациональная B-сплайновая кривая степени m задается следующим образом [1] - [4]:

L

P (t) = Y, Pk Rk (t)- (3)

k=0

Поскольку узловой вектор T обычно берётся неравномерный, т. е. узлы являются неравноотстоящими, то кривая (3) называется NURBS-кривой, где аббревиатура NURBS означает non-uniform rational basis spline (неравномерный рациональный базисный сплайн).

При этом если все веса будут равны между собой, то по свойствам базисных функций [1, с. 57] получаем кусочно-полиномиальную B-сплайновую кривую степени m:

P (t)= £ JLk У' = £ Pk Nkm(t). (4)

k=0 ^k=0 iVk,m(t) k=0

2. Интерполяция с помощью Б-сплайновых кривых

Пусть есть набор точек г = 0,... ,Ь}. Построим кусочно-по-

линомиальную В-сплайновую кривую С порядка р +1 (степени р), которая проходит через эти точки [1]. Для этого найдём полюса {Рк}ь=0. Сопоставим каждой точке Qi некоторое значение параметра щ £ [0, 1] и подберём соответствующий узловой вектор и = {и0,...,ит}, где т = Ь + р +1. Получим систему из Ь + 1 уравнения:

ь

Qi = С (щ) = Рк Щр(щ), г = 0,...,Ь. (5)

к=0

Следуя [1, с. 364], решим систему относительно точек Рк, к £ 0,... , Ь. Для этого выберем значения параметра щ так, как это сделано в [1]. Рассмотрим величину С :

ь

щ = ^ . (6)

i= 1

Тогда положим

и0 = 0, иь = 1, иг = иг-1 +

VII Зг — ^г-1| й

1,...,Ь — 1. (7)

Теперь найдем узлы по следующим формулам:

ио = ■ ■ ■ = ир = з+р-1

«г,

ит—р ' ' ' ит 1,

1

из+Р = р X]

г=3

, Ь — р.

(8)

Этот метод выбора узлов отражает распределение значений параметра «г ( [1, с. 365]).

ПРИМЕР 1. Рассмотрим точки (Зг}2=0 на плоскости (в [3, с.219] используется 18 узлов и параметрический кубический сплайн). Тогда, используя формулы (6), (7), (8) и решая систему (5) относительно полюсов (Рг}2=0, получаем при р = 6 В-сплайновую кривую (рис. 1).

Рис. 1. Интерполяция с помощью В-сплайновой кривой

0

1

3

3. Интерполяция при помощи Б-сплайновой кривой с заданием производных

Рассмотрим теперь интерполяцию, при которой задаются не только исходные точки г = 0,... , Ь, но и производные в этих точках г = 0, . . . , Ь, определяющие направление касательного вектора к искомой кривой [1]. Таким образом, имеем 2(Ь + 1) пар чисел и систему

относительно 2(Ь + 1) полюсов Рк, к = 0,... , 2Ь + 1:

2Ь+1

Qi = С(мц) = ^ Рк к=0 2Ь+1

Бг = С'№)= ^ РкКР(щ).

к=0

(9)

Количество узлов в узловом векторе и равно 2(Ь +1) + р +1. Сами узлы можно вычислять по формулам, аналогичным (8), например при р = 3 имеем:

м1 2м1 + и2 и1 + 2и2

и = {0, 0,0, 0,—,

23 Мь-2 + 2мь-1 Ть-1 + 1

3

2

3

, 1,1,1,1}.

Решая систему (9) при р = 3 для точек из Примера 1 при разных значениях полученных умножением на коэффициент к соответствующих векторов, вычисленных для уравнения В-сплайновой кривой С из пункта 2, а в крайних точках заданных приближенно, получаем В-сплайновые кривые, показанные на рис. 2.

(а)

(Ь)

(с)

Рис. 2. Интерполяция В-сплайновой кривой с производными: (а) к = 0.8, (Ь) к = 1.2, (с) к = 1

4. Методы локальной интерполяции

Также существуют методы локальной интерполяции [1, с. 382]. В этом случае по исходному набору точек {Qi, i = 0, строим

сегменты кривых {С^}|=0 таким образом, чтобы точки Qi и Qi+1 были конечными точками сегмента Ci. При этом требуем, например, чтобы выполнялось свойство непрерывности первой производной.

Список литературы

1. Piegl L., Tiller W. The NURBS book. 2nd Edition. New York: Springer-Verlag, 1995 - 1997. 327 р.

2. Голованов Н. Н. Геометрическое моделирование. М.: Изд-во Физико-математической литературы, 2002. 472 с.

3. Завьялов Ю. С. , Квасов Б. И. , Мирошниченко В. Л. Методы сплайн-функций. М.: Наука, 1980. 350 с.

4. Хилл Ф. OpenGL. Программирование компьютерной графики. Для профессионалов. СПб.: Питер, 2002. 1088 с.

СГУ им. Питирима Сорокина Поступила 20.09.2016

Summary

Kotelina N. O Interpolation with B-spline curves

This article deals with the problem of interpolation with polynomial B-spline curves. It examines methods of global interpolation when systems of linear equations are set up and solved. Keywords: NURBS, B-spline curves, interpolation.

References

1. Piegl L., Tiller W. The NURBS book. 2nd Edition. New York: Springer-Verlag, 1995-1997. 327 p.

2. Golovanov N. N. Geometricheskoe modelirovanie (Geometric modeling). Moscow: Izd. Fiz.-Mat. Lit., 2002. 472 p.

3. Zavyalov Y. S. , Kvasov B. I. , Miroshnichenko V. L. Metody splayn-funkcij (Methods of spline functions). Moscow: Nauka, 1980. 350 p.

4. Hill F. OpenGL. Programmirovanie komputernoy grafiki (Computer Graphics Programming). Dlya professionalov. SPb.: Piter, 2002. 1088 p.

Для цитирования: Котелина Н. О. Интерполяция с помощью B-сплайновых кривых // Вестник Сыктывкарского университета. Сер. 1: Математика. Механика. Информатика. 2016. Вып. 1 (21). C. 3-8.

For citation: Kotelina N. O. Interpolation with B-spline curves // Bulletin of Syktyvkar University. Series 1: Mathematics. Mechanics. Informatics. 2016. №1 (21). Pp. 3-8.

i Надоели баннеры? Вы всегда можете отключить рекламу.