Научная статья на тему 'Построение окружности при помощи NURBS- кривых'

Построение окружности при помощи NURBS- кривых Текст научной статьи по специальности «Математика»

CC BY
710
514
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
NURBS / РАЦИОНАЛЬНАЯ КРИВАЯ БЕЗЬЕ / В-СПЛАЙН / ПОЛИНОМ БЕРНШТЕЙНА / B-SPLINE / RATIONAL BEZIER CURVE / BERNSTEIN POLYNOMIAL

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

В статье рассматриваются NURBS-кривые и их свойства, в частности исследуется вопрос о связи NURBS-кривых с дробнорациональными кривыми Безье. Для заданного набора весов и узлов приводится подробное доказательство известного утверждения, что NURBS-кривая на этом наборе представляет собой окружность.

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

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.

Текст научной работы на тему «Построение окружности при помощи NURBS- кривых»

Вестник Сыктывкарского университета. Сер.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

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