Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 35
Текст из файла (страница 35)
б.л. Примеры выпуклых оболочек :4у 4Л«Дифференцирование уравнения кривой Безье .Часто приходится вычислять не только значения координат точек, лежащих на ' кривой, но и значения первой производной, а также и производных более высокого порядка. Например, производные первого и второго порядка могут потребоваться для определения кривизны кривой. Производная первого порядка необходима также для вычисления точки пересечения кривых по итерационному .методу Ньютона — Рафсона' у39!. ' В этом разделе мы получим выражение для производных кривой Безье.
Эти выражения показывают соотношения между производными кривой и задающими « Р(и) = ~~~,~ и'(1-и)" 'Р;. гр О/ ' Продифференцируем выражение по параметру и'О: = 2,1~. и' (1-и)" 'Р, — ~(п-!)~ )и (1-и)" ' Р, = ° .Гп! «-1 = ~У~ )и' '(1 — и)" 'Р, -~~~,(п — !)( 1и'(1 — и)" ' 'Р, = р ~ г' 0 ! у,у = ~ (7+1)~. ~ит(1-и)" у 'Р „— ~„(п — !)~ )и'(1 — и)" ' 'Р,.
(6.21) «туетол расчета точек пересечения кривых излагается в разделе 6.8. ее точками. Перепишем выражение (6.16) в виде в формуле (6.21) могут быть расписаны в явном виде следующим образом." и 1 (у+1)п! п(п-1)! (и — 1 (~+1) = = =п у+!у (1+1)!(и- у — 1)! у!(и — у-1)! ! у п1 (и — у)п! п(п — !)! (п — 11 ! у) !!(и - у)! ! 1(п — ! — 1)! !, у' Подстановка (6.22) и (6.23) в (6.21) дает: ' )='Я'п~ ~и'(1 — и)" ' 'Ру„-~~ и и'(1 — и)" Р, =' (6.24) Гп-1~ = п~ и ~ ~ и'(1 — и)" ' ' (Р«ы -Р, ). ю 0 Заменив Рв,-Р на а«выразим формулу (6.24) в виде .-~ Гп — 11 (6,25) ! Правая часть формулы (6.25), если забыть о множителе и, стоящем перед знадууурс. ' суммирования, представляет собой уравнение кривой Безье, заданной точкам!и ар, аь ..., а ь Отсюда получаем следующие равенства: и'(1 — и)" ' 'а, = а,; (6.26)« ч (6,27) в=О ч 1 Равенства (6.26) и (6.27) выражают тот факт, что кривая Безье проходит чеййз первую и последнюю задающие точки.
Из формул (6.25), (6.26) и (6.27) можно получить значения первой производный в начальной и конечной точках: =пар =п(Р, — Рр); (6О26)! гуи „ ч = тпр,, = п(Є— Р„, ). (6«29) и„ы Поэтому можно утверждать, что касательные к кривой Безье в ее начальукуй':; и конечной точках совпадают по направлению с первым и последним огрезкаМЕ задающего многоугольника. Кроме того, формула (6.25) может использовдтьсу~ длгьрвкуреивиогоеира)(вдензш 'производных бцйеевчйеоких порядков';:поскольку ее ерщшя часть совйэдяет' по форме с ураэнеииеы'кривой Безье. Отсюда выражение для второй производной имеет вид г1 Р(и) и-2(и 2'1 =и(и — 1)~ ~ . )и'(1-и)' х 'Ь, (6.30) е(и' ю О где Ь; = а;„— ат Выражение (6.30) говорлп нам, что вторая производная в начальной точке определяется векторалш Р„, Рь Рь а в конечной точке — векторами Р 'ь Р„„Р,„Продолжая дифференцировать уравнение (6.30), мы будем тем же путем получать уравнения для производных более высоких порядков.
Таким образом, мы можем показать„что производные порядка т в начальной и конечной точаах определяются координатами т+ 1 задающих точек. В.4.2. Вычисление кривой Безье Даже если у нас есть формула, описывающая кривую, например уравнение кривой Безье, зто уравнение будет практически бесполезным, если мы не найдем . эффективного способа вычислять координаты точек на кривой. Мы знаем, что для отображения кривой необходимо вычислять координаты точек с небольшим : приращением параметра, и делать зто достаточно эффективно.
Посмотрев на ' ' уравнение кривой Безье (6.15), можно прийти к выводу, что нам придется доста',точно часто вычислять бпномиальный коэффициент И в функции сопряжения В;„(и), а зто требует серьезных затрат. Поэтому нам может понадобиться алгоритм, позволяющий вычислить точку на кривой Безье не: посредственно, без вычисления значений биномиальных коэффициентов. Такой алгоритм существует н называется алгоритмаа де Кастильо (г(е Соме(1аи а1йоп!йт). Он излагается в приложении Е. 6.5. В-сплайн . Вспомните, что степень кривой Безье определяется количеством задающих точек, причем все онн влияют на форму всей кривой.
Этн особенности кривых Бе' зье создают определенные неудобства. Во-первых, при аппроксимации кривой сложной формы при помощи кривой Безье неизбежно используется множество задающих точек, в результате чего получается кривая высокого порядка. Такая кривая может осциллировать, но она к тому же создаст большую вычислитель' ную нагрузку на компьютер. Почему бы в таком случае не попытаться представить ту же исходную кривую множеспюм кривых Безье низших порядков, чтобы , избеж ать этих неприятностеи7 Проблема в том, что соединение кривых с обеспечением непрерывности производных нужных порядков оказывается довольно сложной процедурой. Во-вт орых, трудоемким оказывается локальное изменение формы кривой.
Кажетвой, и е" ' ся естественным переместить задающие точки вблизи изменяемого уча ка у ст криво, и действительно, это приводит к модификации нужной области, но вместе с пей измен меняется вся кривая целиком. Эта особенность называется свойством глобальности измеглеиий (й(ойа1.тат)((1еа((оиь РтоРтпД; Х!юбдщыгосхьлнэкейвгц1й .,'; нежелательна при создании кривых заданной формы, паскольку кривые,эсеггяа соэдаютсЯ илн пРоектиРУютсЯ пУтем непРеРывиой модификации гРУбой фореьт ;4" начального приближения. В системах автоматизированного проектированиячке', Ф;„:~ лательно наличие прямо противоположного свойства — локалылости изменена (!оса1 то~11(1сайои рторетгу).
Описанные недостатки кривых Безье связаны с выбором функций сопряжеглйя, Таким образом, нам нужно выбрать новый набор функций сопряжения,,обла; дающих определенными свойствами. Во-первых, в определение новой функццй. сопряжения не должно входить число точек и, в отличие от функции Вт(и). Стй-;,,::::;:;= пень функции сопряжения, а значит, и степень кривой, должны быль ниезавне)гл: .-' " мы от члшла задающих точек и. Во-вторых, все функции сопряжения должйэ( быть отличны от нуля только на ограниченных подмножествах значений яйца«';,-:-", л метра, причем для каждой функции такое подмножество должно быть уникаилл,,' ' "' ным. В этом случае форма сегмента будет определяться только теми задающиьп( '':,.':~, . точками, которые учитываются функциями сопряжения, имеющими ненулевляе значения на данном сегменте.
В 1972 г, Кокс 141~ и де Бур !431 предложили использовать функции Ж;„'л(и)'„ определяемые рекурсивно. Кривая, которая строится таким образом, называетей )', В-силайиож (В-з!л1!ие) н записывается в следующем виде: Р(и)=,'>,Р,Хь„(и) (г,, <и <гкч), (631) <ч где ( и - Г, )!уьь, (и) (Г„л -и)й!ьол, (и) 1ч„(и) = ' — — + Г,.„-Гьо (6.33) О в противном случае. Значения й называются узлоеььми — они ограничивают отрезки значений па-, ,-;!:. раметра, внутри которых функции сопряжения имеют ненулевые значения . '. В формуле (6.32) неопределенность О/О считается равной нулю.
Как следует иэ, ',". этого уравнения, для определения и + 1 функций сопряжения необходимо задач)л и + е + 1 Узловых значений от Гь до Гмь Разные методы заданиЯ Узловых зиаЛлй:', ний позволяют получить разные функции сопряжения и, соответственно, раэйэ)~~-' кривые. Ниже мы расскажем, как это делается. Обратите внимание, что нз фай, мулы (6.32) следует, что одновременный сдвиг всех узловых значений на одне;. и то же число не приводит к изменению формы кривой. При этом происход(УГ лишь изменение диапазона значений параметра для уравнения (631). Проверим, удовлетворяют лн функции сопряжения, заданные уравнениями (6.32); --" и (6.33), требованиям, изложенным в начале раздела Из уравнения (6.32) следу- ' Когда и совпадает с гран иней интервала, следует быть аккуратным, поскольку для любсл го значения и только одна функция й;1(и) может быть отличной от нуля.
Это предполэь,...'.,' шегся в определения (632). напрнл1ср, когда и - гь только одна нз функций !тю(гл)'яу ., 1 д!,л(г~) может быть равна единице, хотя из уравнения (633) следует, что ови обе могл11Ь ,".:.., ,л 9 бы иметь зто значение. В любом случае значение Р(г,) окажется одним и тем же. л,'..,.1 з$4Ф4йщ(й~":"Ъ~Ф' ~ву~~%а'~~6(угй!йу!ря!з в уяч!"~г""'"='-'~ ~-"'='зьявэч~":":--" ~"'ьяз'"-'-' Ж-ы!д ~ч-ыхз-! .~ д!! — ыхз К эз 'ь-!л '- 'ч-!3 л'-!д-! — ~ ц !у, Лы ц~ д ... лс„, пне. е.з. распространение эначеннй ц,(и) , По ис. 6.5 в р ..
идно, что ненулевые значения на отрезке (г гь!( будут иметь только ФУнкции Ж з„н й!! ыэ ь ..., Мн Поэтому и влиять на форму отрезка кривой будут ' только точки Р очки Р ы!, Р! з н ..., Р; (всего А штук). Например, если взять кривую четвертого порядка, то на форму отрезка будут влиять четыре задающие точки, а все остальные не будут. Заимемся теперь определением л + А + 1 узловых значений от ге до г„,! Узлы бывают двух основных типов: периодические и непериодические. Периодические узлы определяются из равенства г, = ! — А (О < !' < и+ А). (6.34) Непериодические узлы задаются формулой 0 О<!<А; А < ! ь и", п <! <я+ А. !-А+1 п-А+2 (6.35) М::"Гго Ф(едой< й(з(и)!11~(!!~дй))уй(увыше,::чем!у! Як"',:~."'!(и)э гг »1;.!.'"з(й)1',Сйазео~~щй» нэис, .' ~н) ~~~~т'етегпяни ~":поскольку тч!з(и) '-'.; $(ОМЙанта,' а Э~гй(й) по 'той зке нрич(1ие.ззмееФ: степень 2: Продолжая в том же -духе, мвкно прййти к выводу, что фугшция'зч!з(и) имеет степень А — 1.