Вестник Сыктывкарского университета. Сер.1. Вып. 1(19). 2014
УДК 514.142.24
ПОСТРОЕНИЕ ОКРУЖНОСТИ ПРИ ПОМОЩИ NURBS-КРИБЫХ
В статье рассматриваются NURBS-кривые и их свойства, в частности исследуется вопрос о связи NURBS-кривых с дробно-рациональными кривыми Безье. Для заданного набора весов и узлов приводится подробное доказательство известного утверждения, что NURBS-кривая на этом наборе представляет собой окружности.
Ключевые слова: NURBS, рациональная кривая Безье, В-сплайн, полином Бернштейна.
1. Определение NURBS-кривых
Пусть заданы натуральные числа L, т. Рассмотрим вектор Т = (t0, • • • ,t_L+m) с вещественными элементами, которые будем называть узлами. Определим базисные функции Nk}Tn(t) порядка m рекурсивно: при m = 1 это просто постоянные единичные функции в пределах своего диапазона:
При m > 1 определим В-сплайн функции Nk^m(t) через функции (■тп — 1)-го порядка:
Nk,m(t) = 1 h Nk^(t) + h+m * Nk+1^(t). (2)
Будем считать в случае, когда tk+m-i = tk или tk+m = tk+1, соответствующее слагаемое в (2) отсутствует.
Функции Nktm{t) являются кусочно-полиномиальными, при этом если узловой вектор равномерный, то есть |ij+i — = const, то
Н. О. Котелина
(1)
© Котелина Н. О., 2014.
> ■ \ ' i ' i i i I 23456789
Рис. 1. В-сплайны Nk4(t) для равномерного узлового вектора
Nk,m(t) = ^о,m(t ~ tk)- Носителями функций Nk^m(t) являются отрезки [tk,tk+m\.
Пусть есть набор полюсов (управляющих точек) {Pj, г = 0,..., L} и весов {-шо, • • •, где Wi > 0, г 6 0 : L. Построим стыковочные функции вида
Rk(t) = ™kNkAt) . (3)
J2k=0 WkNk,m{t)
Тогда дробно-рациональная В-сплайн-кривая порядка m задается следующим образом:
ь
= (4)
к=О
Поскольку узловой вектор Т обычно берётся неравномерный, то есть узлы являются неравноотстоящими, то кривая (4) называется NURBS-кривой, где аббревиатура NURBS означает non-uniform rational basis spline (неравномерный рациональный базисный сплайн).
2. Моделирование окружности с помощью NURBS-кривых
В [1,2] приводятся значения весов, узловой вектор и контрольные точки, при которых кривая (4) является окружностью. Докажем, что это действительно так.
ПРЕДЛОЖЕНИЕ 1. Пусть L = 8, т = 3. Рассмотрим узловой вектор Т = (0, 0, 0,|, |, 1,1,1), вектор w =
полюсы Ро(1,0), Pi(l,l), Р2(0,1), Р3(-1,1), Р4(-1,0);
Р5( —1, —1), Р6(0, —1), Pf(1, — 1); Р8 = Pq. Тогда квадратичная кривая P(t), заданная при помощи (4), является единичной окружностью с центром в 0(0,0).
Доказательство. Рассмотрим узловой вектор Т° = (0,1, 2,..., 11). По формулам (2) получаем, что
Н2
2 '
£е [0,1], 1(3 -¿)2, ¿6 [2,3],
(5)
0,
иначе.
Теперь по свойству В-сплайнов А^з(£) = А^з^ — ПРИ к = 1,... ,Ь. Рассмотрим теперь узловой вектор с кратными узлами
Т1 = (0,0,0,1,1,2,2,3,3,4,4,4).
Что произойдет с В-сплайнами А^з? Вычисляя непосредственно N^¿(1;), имеем
ЛМ0 = П1_()*' (е[0Л1' = ( 2'{1-,:}' (6)
; 1 0, иначе, ' \ 0, иначе, у 7
£е[0,1],
Щ3{*)= { ^[1,2], ЛГ8,з =
0,
иначе.
(£-3)2, ^ е [3,4],
0,
иначе.
(7)
Остальные В-сплайны получаются так: А^з^) = А^з(£ ~~ 1), -^5,3 (£) = = ЛГ1>3(*-2), А^3(£) = А^-З), ЛГ4,з(£) = АЫО = Л^3(£-2).
1,5-1
Рис. 2. В-сплайны А^з^) для вектора Т1
Теперь рассмотрим вектор Т. Тогда базисные функции подвергнутся сжатию в четыре раза вдоль оси Ох.
Заметим, что уравнения А^з^), к = 0, 1, 2, в (6),(7) представляют собой уравнения базисных полиномов Бернштейна В2(Ь) = С1Ьг(1 — ¿)2~г, г = 0, 1,2, для £ е [0,1] [4, с. 89]. Следовательно, для узлового вектора Т при I е [0, |] имеем ^0,3(£) = ВЦ4£), А^3(£) = В\{4£), А^) = £2(4£).
0,6 0,8 1
Рис. 3. В-сплайны для вектора Т
Докажем теперь, что при t G [0, кривая P(t) представляет собой одну четвертую часть окружности. Поскольку при t Е [0, только три функции N0!s(t), Nit3(t), N2t3(t) отличны от 0 (см. рис. 3), то по формуле (3) на [0, только стыковочные функции Ro(t), Ri(t), R.2(t) отличны от 0. Тогда по (4) кривая P(t) на [0, |] принимает вид:
P(t) =
Elo^Bfm
(8)
и представляет собой дробно-рациональную кривую Безье 2-го порядка [3].
При построении получаем кривую, показанную на рис. 4. В докладе [3] было доказано, что кривая (8) при £ £ [0, ги0 = -ш2 = 1, = совпадает с четвертью окружности, построенной на рис. 4.
Это же утверждение можно доказать, вычислив выражение + Ру(¿)2 для I Е [0, непосредственно (оно будет равным 1).
Аналогично, рассматривая межузловые интервалы 1],
получаем, что Р(Ь) на каждом интервале представляет собой дробно-рациональную кривую Безье 2-й степени, построенную по трём полюсам {Рг\\=к' ^ = 2, 4, 6, с весами и>о = 1, мг = = 1, которая является
четвертью окружности [3]. □
3. 1ЧиШ38-кривые и кривые Безье
Стандартный узловой вектор для Ь+1 контрольной точки и Р-сплайнов т-го порядка описывается следующим образом:
• Всего в нем содержится Ь + т + 1 узлов £0, • • •, £ь+т ■
• Первые т узлов ..., tm_l имеют нулевое значение.
Рис. 4. Кривая Р(г) при í £ [0, |]
• Узлы trn,...,tL возрастают с единичным шагом от 1 до Ь — тп + 1.
• Последние тп узлов ¿ь+ъ • • •) £ь+т равны Ь — т + 2.
Непосредственно вычисляя на стандартном узловом векторе,
можем убедиться, что справедливо предложение [1]:
ПРЕДЛОЖЕНИЕ 2. Для стандартного узлового вектора Т при тп = Ь + 1 В-сплайн Л^т(£) совпадает с базисным полиномом Берн-штейна на [0,1].
В качестве следствия к Предложению 2 получаем, что N111168-кривая порядка т на стандартном векторе является дробно-рациональной кривой Безье степени т — 1.
В [3] было доказано, что дробно-рациональная кривая Безье 2-го порядка может быть представлена с помощью уравнения в барицентрических координатах 4рХ0\2 = А1 и является дугой параболы при р = 1, гиперболы при р > 1 и эллипса при р 6 (0,1). Таким образом, при помощи кривых Безье и, следовательно, N11116 Э-кривых можно моделировать конические сечения.
Список литературы
1. Хилл Ф. OpenGL. Программирование компьютерной графики. Для профессионалов. СПб.: Питер, 2002. 1088 с.
2. Piegl L., Tiller W. The NURBS book. 2nd Edition. New York: Springer-Verlag, 1995-1997. 327 с.
3. Григорьев M. И., Малозёмов В. Н., Сергеев А. Н. Можно ли построить окружность с помощью кривых Безье? // Семинар «DHA & CAGD». Избранные доклады. 19 декабря 2006 г. (http://dha.spb.ru/reps06. shtml#1219).
4. Голованов Н. Н. Геометрическое моделирование. М.: Изд-во физико-математической литературы, 2002. 472 с.
Summary
Kotelina N. О. Constructing a circle using NURBS-curves
The properties of NURBS-curves are considered. The weights and the nodes which make the corresponding NURBS-curve represent a circle are given and a detailed proof of this (well-known) fact is given. Keywords: NURBS, B-spline, rational Bezier curve, Bernstein polynomial.
СыктГУ
Поступила 09.10.2014