Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Основы САПР. CAD CAM CAE

.pdf
Скачиваний:
12
Добавлен:
19.11.2023
Размер:
29.79 Mб
Скачать

182

 

 

 

 

 

 

 

 

 

 

 

 

Глава б. Представление кривых и работа с ними

 

 

 

 

 

= [и(1-и)+

(2 -и)J]

N2.1+

(2 -и)2

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

2

N3,1•

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

N

 

и =(и -t2)N2.2

+ (t5 -и)N3.2

= '!..N

+ 3-и N.

=

 

 

 

 

 

 

.3 ( )

t 4 - t 2

 

 

 

t 5 - t 3

 

2

'

 

2

 

'

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

2 2

 

 

3 2

 

 

 

 

 

 

 

 

 

_ и2

N

2.1 +

[и(2-и)

(3-и)(и -1)]N

3,1

 

(3-и)2

N .

 

 

 

 

 

 

 

- 2

 

 

2

+

2

 

 

+

2

 

4.1•

 

 

N .(и)= (u-t3 )N3,2 + (t6

-u)N4.2 =u-1N.

 

+ 4-и N

=

 

 

 

 

з.з

 

 

 

t 5 - t 3

 

 

 

t 6 - t 4

 

2

'

 

2

.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

2

 

 

4

 

 

 

 

 

 

 

 

 

_(и-1)2 N

+

[<и-1)(3-и) (4-и)(и-2)]N

+

(4-u)2 N .

 

 

 

 

 

-

2

 

3,1

 

 

2

 

+

2

 

 

4,1

2

5,1 1

 

N

4.3

(

и

) - (и-t~)N4•2

+

(t7 -и)N5•2

_и-2N

 

+

(4 -

)N

5,2

_

 

 

 

 

 

-

t 6 -t4

 

 

t 1

-t5

-

2

4,2

 

и

-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

= (и~2i N4.1 +[(и-2)i4-u)+(4-и)(и-3)]Ns.1

 

 

 

 

 

N5.з(и)= -ts)Ns.2

+ <tм -u)N6.2

=(и-3)N5.2 =(и-3)2 N5,1.

 

 

 

 

 

 

 

 

t7

-ts

 

 

 

ts

-tб

 

 

 

 

 

 

 

 

 

 

 

Таким образом, уравнение Б-сплайна в раскрытой полиномиальной форме име­

ет вид:

Р(и)=(1-и)

2

N . P

+

{[

(2 -и)]

N

,

1

+

(2 -и)2

N3.1

}

Р1 +

 

 

 

 

и(1-и)+

 

 

2

2

 

 

 

 

 

 

 

 

 

 

21

0

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

+{2и2

N 2.1

+ [и(22-и) + (3-и)(2

и -1)]N3,1

+ (3-2и}2

N4,1 2 +

 

 

 

 

+{

(и-1)2

N

 

[<и-1)(3-и)

(4-и)(и-2)]N

+

(4-и)2

N

(

ЗВ)

 

2

 

 

3,1

 

+

2

 

+

 

2

 

 

 

4.1

 

2

 

5,1

3+

 

6.

+{(и~2)2 N4.1 +[<и-2)i4 -и)+(4 -и)(и-3)]Ns.l }р4 +

+(и -3)2 N 5,1P5

Форма выражения (6.38) заставляет предположить, что любая задающая точка

влияет на форму всей кривой. Однако если записать это уравнение отдельно ДЛЯ каждого отрезка значений параметра и, станет видно, что на каждый сегмент

влияет лишь ограниченное подмножество задающих точек всей кривой.

Рассмотрим отрезок О и 1. Пусть Р1(и) обозначает уравнение соответствующего

участка кривой (то есть первого ее сегмента). Для значений параметра и от О до 1

только одна функция первого порядка будет отлична от нуля и равна единице- N2,1. Поэтому формулу (6.38) на этом отрезке можно записать следующим образОI\f:

(6.39)-(6.42)

6.5. В-сnлайн

183

 

Р,(и)=(1-и)2Р0

+ [и(1-и)+(2 -;)аи]Р1

+ и22 Р2

 

(О:::;;и:::;;1). (6.39)

Аналогичным образом можно получить Р2(и) для отрезка 1

и

2, оставив только

те слагаемые, в которые входит N3,1(и):

 

 

 

 

 

р (и)= (2 -и)2

р +[и(2-и)+(3-и)(и -1)]р

+(и -1)2

р

 

(1 :::;; и :::;; 2). (6.40)

2

2

1

2

2

2

2

 

3

Тем же способом получим и запишем выражения для участков Р3(и) и Р4(и), со­

ответствующих отрезкам значений параметра 2 и 3 и 3

и 4.

 

 

 

 

 

(3-и)2

 

1

 

-2)

2

 

 

 

Р3(и)=

2

Р2

+2(-2и2

+10и-11)Р:i+

 

2

 

Р4

;

(6.41)

Р~(и)=

(4 -иi

Р3

+-1(-3и2

+20и-32)Р4 +(и-3)2 Р5

(6.42)

 

2

 

2

 

 

 

 

 

 

 

Присваиnая нужные значения задающим точкам Р0, Р1, ... , Р5, мы можем нарисо­

вать все сегменты В-сплайна по формулам (6.39)-(6.42). Один из возможных подходов продемонстрирован на рис. 6.6. Обратите внимание на важные особен­ ности В-сплайнов, проявляющиеся на рис. 6.6.

Ps

Pt

Рис. 6.6. В-сплайн, состоящий из криволинейных сегментов

Cl Любой В-сплайн представляет собой составную кривую, состоящую из несколь­

ких разных кривых (в нашем примереРt(и), Р2(и), Рз(и), Р4(и)). Эти кри­

вые соединяются в узловых точках параметра. В этом примере в точках

соединения выполняются следующие равенства: Р; (1) =Р~ (1), Р; (2) =Р~ (2) и

Р~(3) = Р~ (3). Убедитесь в этом, вычислив производные выражений (6.39)- (6.42). Эти равенства означают непрерывность первой производной в точках

соединения сегментов кривой. Тем же методом можно заключить, что непре­ рывность второй производной в этих точках нарушается. Это следует уже из того, что степень уравнений равна 2. Производные В-сплайна

непрерывны вплоть до порядка k - 2, потому что степень уравнения каждого

сегмента равна k - 1. Например, у В-сплайна четвертого порядка непрерыв­

ными в точках касания сегментов будут первая и вторая производные.

Cl На каждый сегмент кривой влияют k задающих точек. Это следует из уравне­

ний (6.39)-(6.42). Первые k задающих точек определяют форму первого сег­ мента, следующие k (начиная со второй) - форму второго сегмента, и т. д.

Последние k точек определяют форму сегмента n - k + 2 (рис. 6.7).

184

Глава б. Представление кривых и работа с ними

 

 

 

оРисунок 6.7 демонстрирует, что одна задающая точка может влиять не более

чем на k сегментов. Проверить это утверждение можно, подсчитав количество

групп, содержащих, например, точку Pk-l· Мы заключаем, что каждая точка влияет не более чем на k соседних сегментов. Это и есть свойство локально-

сти изменений.

 

 

 

 

·!:]

Ро

Р1

 

 

 

Pk-1

Pk

Pn-k

~n-k+1

Pn-1

Pn

1

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

P1(u)

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Р2(и)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pn-k+1(u)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pn-k+2(u)

 

 

 

 

 

РИс. 6.7. Задающие точки и сегменты кривой

 

 

6.5.1. Вычисление В-спnайна

Как вы могли убедиться, изучив предшествующие примеры, расписать функции

сопряжения В-сплайна в полиномиальной форме - задача непростая. Особенно сложной она становится при больших k. Поэтому для вычисления координат

точек кривой полиномиальная форма уравнения В-сплайна используется редко. Вместо этого конкретные значения параметра и подставляются в рекуррентное уравнение (6.32) и по ним вычисляются координаты точек, соответствующих

этим значениям параметра. Кокс [41] и де Бур [43] предложили переписать

уравнение (6.32) таким образом, чтобы вместо рекуррентной подстановки полу­

чить итерацию, подобно тому как это делается в алгоритме де Кастильо~ Их ме­

тод позволяет определить задающие точки В-сплайнов, получающихся при деле­

нии исходной кривой в вычисляемой точке (см. приложение Ж).

6.5.2. Объединение В-спnайнов

В-сплайн можно не только разделить на два В-сплайна, но и объединить с дру­

гим В-сплайном, в результате чего получится В-сплайн того же порядка. Задача

заключается в том, чтобы найти задающие точки и узловые значения для объе­ диненной кривой. Подробное описание этой процедуры заинтересовавшиеся мо­

гут найти в приложении 3.

6.5.3. Дифференцирование В-спnайна

Мы уже показали, что производмая от кривой Безье выражается через кривую

Безье, порядок которой на единицу меньше порядка исходной кривой. Анало­

гичным образом, производная В-сплайна записывается через уравнение 13-

сплайна, порядок которого на единицу меньше исходного. Производная от IЗ­

сплайна, при условии что параметр и лежит в диапазоне t1 и t1+1, имеет следуiО­ щий вид (доказательство приводится в приложении И):

(6.43)

6.5. 8-сплайн

185

где Р;1 определяется следующим выражением:

 

 

P;l = (k -1) Р; -Pi-1 .

(6.44)

ti+k-1 - t;

 

 

Правая часть уравнения (6.44) имеет форму уравнения В-сплайна, поэтому мож­ но предполагать, что производные более высоких порядков моrут быть получе­

ны рекурсивным применением формулы (6.43). Так, производмая порядка r от В-сплайна имеет вид:

d'Р(и) =

'L.P[ N;.~~-,(и),

(6.45)

 

1

 

 

dи'

ial-k+r+l

 

 

где

 

 

 

 

pr-1

pr-1

(6.46)

Р[ =(k-r) ;

- i-l.

 

ti+k-1 - t;

 

Равенство (6.45) выполняется, если и лежит на отрезке t1 и

t1+1, а функция Р{ в

формуле (6.46) определяется, как и ранее, через Р;. Численные значения произ­

водных моrут бы,ть вычислены по алгоритму Кокса - де Бура, поскольку форму­

лы (6.43) и (6.45) имеют вид уравнения В-сплайна.

Пример 6.5

Вычислить первую производную от В-сплайна в его конечных точках, используя

формулы (6.43) и (6.44). Порядок В-сплайна равен k, а его задающие точки Р0,

PI, ...,P".

Решение

Начальной точке В-сплайна соответствует значение параметра t 0 =t 1 = =t"_ 1, а нас интересует первый сегмент, которому соответствует отрезок значений параметра t"_1 и t". Мы получим значение производной в начальной точке, под­

ставив k- 1 вместо l и t"_1 вместо и в уравнение (6.43):

dP(t"_1 )

=~р~N.

(t )

dи

~ 1 l,k-1

k-1

i•l

 

Выражение в правой части равенства имеет вид уравнения В-сплайна, а значе­

ние и = t"_1 соответствует начальной точке кривой. Следовательно, сумма

r.::P;1N;,"_1(t"_1) должна быть равна вектору координат первой задающей точ-

ки Р11 Отсюда первая производмая исходного В-сплайна в начальной точке име­

ет значение:

dP(tk-I)_PIN

(t

)-P~-(k-1)PI-Po

- 1

l.k-1

k-1 - 1 -

4-~

Производмая на втором конце кривой вычисляется тем же методом. Параметр

в конечной точке имеет значение t".1, а интересующему нас сегменту соответ­

ствует отрезок значений параметра t" и t". 1• Подстаноока n вместо l в уравне­

ние (6.43) дает:

dP(tn+l) = ~p.lN.

(t ).

dU

~

1 1,k-l

n+l

i=n-k+2

 

 

186

Глава б. Представление кривых и работа с liиt-tи

 

 

 

В правой части снова получилось уравнение В-сплайна, а значение и= t"+ 1 соот­

ветствует конечной точке кривой. Отсюда, сумма:L;=n-k+2P/ Ni.k-t {t".1) совпадает

с координатами последней задающей точки Р"1Производпая первого порядка от

исходной кривой в таком случае имеет следующий вид:

dP{t"•• ) = р~ = (k -1) Р" -Pn-1 .

tn+ft-l - t"

В изложенном примере мы продемонстрировали еще одно важное свойство Б­ сплайна: вектор касательной в начальной или конечной точке совпадает по на­

правлению с первым или последним ребром задающего многоугольника. Для

кривых Безье это свойство было доказано еще раньше.

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

Неодпородный рациопальпый В-сплайп, или попросту NURВS (nonиniform rational B-spline curve), подобен обычномунеоднородному В-сплайну, поскольку основан

на тех же функциях сопряжения, получаемых для неоднородных узлов. Однаl(о

задающие точки рационального В-сплайна указываются в форме, то есть с ис­ пользованием однородных координат. Функции сопряжения применяются именно к этим однородным координатам. Координаты точки на кривой NURБS

в однородном пространстве получаются по формулам:

n

(6.47)

х · h = L(h; ·Х; )N;,k(и);

n

 

у· h =L(h; ·У; )N;.k(и);

(6.48)

 

(6.49)

n

 

h =Lh;N;,k(и).

(6.50)

i•O

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

следующим образом (здесь мы поделили уравнения (6.47), (6.48) и (6.49) на (6.50)):

n

Lh;P;N;.k(и)

Р(и) =;.о" (6.51)

Lh;N;,k(и)

;.о

где Р; - вектор (х;, у;, z;), объединяющий координаты i-й задающей точки в трех­

мерном пространстве, как и для нерациональных В-сплайнов. Диапазон значе­

ний параметра tk-l и t". 1, как и для В-сплайна (см. предыдущий раздел).

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

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

точки, если используются непериодические узлы. Это утверждение можно

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

187

доказать следующим образом. Числитель формулы (6.51) может считаться В­

сплайном с задающими точками h;P;. Граничным значениям параметра будут

соответствовать координаты hoPo и h"P", поскольку В-сплайн с непериодиче­

скими узлами проходит через первую и последнюю задающие точки. Знаме­

натель (6.51) также может считаться В-сплайном с задающими точками h;.

Граничным значениям параметра для этого В-сплайна будут соответствовать

координаты ho и h". Следовательно, граничным значениям параметра для Р(и)

в целом будут отвечать координаты Ро и Р", то есть граничные задающие точки.

DКасательная в начальной точке совпадает по направлению с вектором Р1 - Р0, а касательная в конечной точке- с вектором Р"- Р".1• Проверка этого утвер­

ждения приводится в разделе 6.6.2.

D Знаменатель (6.51) становится равным 1, когда все h;-e становятся равными 1,

поскольку :L;~0N;.k(u) =11Уравнение (6.51) при этом превращается в урав-

нение В-сплайна. Поэтому можно сказать, что уравнение NURBS может опи­ сывать не только NURВS-кривые, но и обычные В-сплайны. Кривая Безье

является частным случаем В-сплайна, поэтому уравнение NURBS может так­

же описывать кривые Безье и рациональные кривые Безье2

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

уравнением В-сплайна.

DФорма В-сплайна изменяется при изменении координат х, у и z задающих то­ чек. Для каждой задающей точки, таким образом, имеется три степени свобо­

ды. Кривая NURBS позволяет изменять четвертую координату для каждой

точки - h;. Появляется возможность работать с кривой на более тонком уров­

не. Увеличение значения однородной координаты задающей точки приводит

ктому, что NURВS-кривая притягивается ближе к этой точке.

DУравнение NURBS позволяет точно воспроизвести все конические сечения -

окружность, эллипс, параболу и гиперболу. В-сплайны, напротив, допускают

лишь приближение к коническим сечениям. Таким образом, в NURВS-пред­

ставлении можно работать с коническими сечениями, кривыми Безье, рацио­

нальными кривыми Безье и В-сплайнами. Преобразование всех этих кривых к NURBS может значительно сократить объем программирования. Например,

можно написать одну-единственную программу для расчета точки пересече­

ния кривых NURBS и использовать ее для расчета пересечений кривых лю­

бых типов, поскольку эти кривые всегда могут быть преобразованы к соответ­

ствующим NURВS-представлениям.

Продемонстрируем вывод NURВS-представления для конических сечений на примере из книги Пигла и Тиллера [126]. Мы возьмем из этой книги только ко­ нечный результат, то есть порядок, координаты задающих точек (однородные) и узловые значения кривой NURBS, эквивалентной дуге окружности. В той же ра­

боте обсуждаются NURВS-представления других конических сечений. Дуга ок-

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

2Уравнеttие рациональной кривой Беэье получается подстановкой B;_"(u) вместо N;.k(u)

в уравнсиие (6.51 ). Другими словами, функции соnряжения Беэье используются с задаю­

щими точками в однородных координатах.

188

Глава б. Представление кривых и работа с ними

 

 

 

 

ружности -

это квадратичная кривая степени 2, поэтому можно предполагать,

что ее NURВS-представление t)удет иметь степень 3. Пигл показал, что если цен­

тральный угол дуги окружности меньше 180°, для представления этой дуги дос­

таточно всего лишь трех задающих точек (рис. 6.8). Из рассмотренных ранее

свойств NURВS-кривых следует, что задающие точки Р0 и Р2 должны распола­ гаться на концах дуги окружности, а точка Р1 находится в точке пересечения I<а­

сательных к дуге в ее конечных точках.

Рис. 6.8. Задающие точки NURВS-представления дуги окружности

Остается определить однородные координаты h0, h1 и h2• Если бы все они были

равны 1, это был бы обычный В-сплайн, который не мог бы совпадать с дугой ок­

ружности. ОднакоПигл обнаружил, что значения h0 = h2 = 1, h1 = cos е позволяют

описать дугу точно. Здесь буквой е обозначен угол между любой касательной и отрезком Р0Р2 (см. рис. 6.8). Отсюда следует, что для центрального угла дуги, превышающего 180°, точка Р1, а значит, и угол е оказываются не определены. В этом случае дугу нужно разделить на части таким образом, чтобы у каждой из этих частей центральный угол был бы меньше 180°. Затем для каждой части

определяется NURВS-представление, после чего эти 111редставления объединя­

ются. Объединение NURВS-кривых получается точно таким же способом, что и объединение В-сплайнов (см. приложение З). Множество задающих точек объе­

диненной кривой представляет собой объединение множеств задающих точек исходных кривых. Узловые значения объединенной кривой получаются слияни­

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

сываются так, чтобы для каждого соединения значения повторялись не более

чем k- 1 раз.

Пример 6.6

Вывести NURВS-представление полуокружности с единичным радиусом, распо­

ложенной в плоскости ху. Необходимо определИ'Гь степень кривой, координаты

задающих точек, а также узловые значения.

Решение

Изучите приведенный ниже рисунок. Порядок NURВS-кривой должен быть ра­

вен 3, поскольку окружность - квадратичная кривая. Мы разделим полуокруж­

ность на дnе дуги с номерами 1 и 2. поскольку центральный угол полуокружно­

сп! равен 180°. Разделить ее, разумеется, можно множеством способов.

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

189

 

у

х

Начнем с дуrи 1. Координаты х, у, z задающих точек этой дуrи таковы:

Р0 = (1-,Q), Р1 = (1,1), Р2 = (0,1).

Соответствующие однородные координаты имеют значения h0 = 1, h1 = cos 45° =

= 1/2 и h2 = 1. Узловые значения параметра образуют последовательность О, О, О,

1, 1, 1 (n = 2, k =3).

Та же процедура для дуrи 2 дает:

Р0 = (0,1~ Р3 = (1,1~ Р4 = (1,0)

и

Узловые значения те же самые: О, О, О, 1, 1, 1, но для последующего объединения

кривых они сдвигаются до 1, 1, 1, 2, 2, 2.

NURВS-кривые объединяются вместе, в результате чего получается NURВS­

кривая со следующими задающими точками и параметрами:

Р0 =(1,0),

Р1

=(1,1), Р2

=(0,1~

Р3

=(-1,1),

Р4 =(-1,0)

и

 

 

 

 

 

 

h0

= 1,

1

h2 = 1,

h3

1

= 1.

h1 = -J2,

= -J2, h4

Узловые значения для объединенной кривой: О, О, О, 1, 1, 2, 2, 2.

Пример 6.7

Раскрыть уравнение NURВS-представления дуги 1 из примера 6.6 и показать,

что оно действительно точно соответствует дуге окружности.

Решение

Уравнение NURВS-представления дуrи 1 имеет вид:

Р(и) = hоРоNо.з(и)+ htPtNt.з(и)+ h2Р2N2.з(и).

h0 N03 (и)+ h1N1.3 (и)+ h2 N2:J (и)

Функции сопряжения N03(u), N1,3(и) и N23(и) получаем по рекуррентным соот­

ношениям:

190

 

 

 

 

Глава б. Представление

кривых и работа с ними

N21(и)=

{ 1

в

Оs;иs;1ж

 

 

 

 

 

 

·

О

противном случае;

 

 

 

N

(и)= <tз -и)N2.1 (и)=(1-и);

 

 

 

 

 

1.2

 

 

t

- t

 

 

 

 

 

 

 

 

 

 

3

2

 

 

 

 

 

 

N

( ) -

(и-t2)N2.1(и) -и·

 

 

 

 

 

 

2.2и-

 

 

-t2

- ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Nо.з(и)=

( t

з

-и)N . (и)

=(1-и)

2

;

 

 

 

 

 

1.2

 

 

 

 

 

 

 

 

t 3

-t1

 

 

 

 

 

 

_(и -t1)N12(и)

(t4 -и)N2.2(и) =2и(1

-

 

~~-

t3 - t1

 

+

t4 -

t2

 

 

 

и,

 

 

 

 

 

 

 

 

N2~ = (и-t2)N2.2(и) =и2 t4 - t2

Теперь мы можем записать уравнение NURВS-представления следующим обра-

зом:

1·Ш(1-и)'+~(l)~<t-•)+1(!]·'

Р(и) = .J2

1·(1-и)2 +~·2и(1-и)+1·и2

2

Обозначим члены, соответствующие х и у в этом уравнении, за х(и) и у(и) соот­ ветственно. Выражения для х(и) и y(u) будут такими:

х(и) = (1-../2)u 2 + ../2(1-.fi)u + 1; (2 - ../2 2 + (.fi - 2)и + 1

у(и) = (1-../2)u 2 + .fiи

(2 -../2)u 2 + (../2 -2)и + 1

Можно показать, что x(u) и y(u) удовлетворяют равенству

{х(и)}2 +{у(и)}2 = {(1-../2)и2 +.J2(1-~)u+1}2 +{(1-~)u2 +.fiu} 2 =1.

{(2 -../2)и2 + (../2 -2)u + 1} 2

Отсюда следует, что представление NURВS-кривой в точности совпадает с дугой

окружности.

6.6.1. Вычисление NURВS-кривой

Координаты х, у, z точки на NURBS-кpиnoй, определяемой значением параметра

и0, получаются по формуле:

(6.52)

Первому сегменту соответствует диапазон значений параметра tk_ 1utk,

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

191

И числитель, и знаменатель в выражении (6.52) имеют форму уравнения В­

сплайна, поэтому они могут вычисляться по алгоритму, предназначенному для

вычисления В-сплайна. Алгоритм Кокса-де Бура приводится в приложении 3. При вычислении числителя в качестве задающих точек следует брать точки с ко­ ординатами h;P;, а при вычислении знаменателя - точки h;.

6.6.2. Дифференцирование NURВS-кривой

Производпая первого порядка от кривой в NURВS-представлении может быть

получена дифференцированием уравнения (6.51) по и:

(6.53)

Выражения L.;=0 h;N;.k(u) и L.;=0 h;P;N;.k(u) в формуле (6.53) могут быть вычис­

лены с использованием алгоритма для В-сплайнов, например алгоритма Кок­ са-де Бура, который излагается в приложении 3. Производные в числителе мо­

гут быть получены по методу, который был изложен в разделе 6.5.3. А именно,

вместо задающих точек Р; в уравнение (6.44) следует подставить h;P; при вычис­

лении

или h; при вычислении

Пример 6.8

Раскрыв выражение (6.51), показать, что NURВS-кривая с непериодическими

узлами проходит через первую и последнюю задающие точки. Используя урав­

нение (6.53), показать, что касательные к NURВS-кривой в конечных точках

совпадают по направлению с векторами Р1 - Рои Р,.- Pn-1·

Решение

Начальной точке кривой NURBS соответствует значение параметра to =t1 =... =tk-l·

а Nk-l,l -

единственная иенулевая функция сопряжения первого порядка на этом интерва­

ле, то есть единственная функция данного порядка, которую имеет смысл рас­

сматривать в вычислениях, связанных с данным сегментом. Отсюда все функции

сопряжения N;,k(tk. 1) нулевые, за исключением N0.k(tk_ 1), значение которой рав­ но единице. Проверить последнее хтверждение можно по рекуррентной форму­

ле. Итак, из уравнения (6.52) мы можем найти начальную точку кривой:

Соседние файлы в папке книги