Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 37
Текст из файла (страница 37)
О На каждый сегмент кривой влияют гт задающих точек Это следует из уравне-...::,':-":„.'." ний (6.39)-(6.42). Первые гг задающих точек определяют форму первого сег- .':;~~< мента, следующие гг (начиная со второй) — форму второго сегмента, и т. д Последние гт точек определяют форму сегмента л — )г + 2 (рис. 6.7). (й '...Угг... ', '7 Щнайа)афа)гУЕтз Чтц "ОДгг!»'Зн»и»ФФЦ$гй'тп гяа ЫпжЕТ,'.ВЛИЯТЬ, ПЕ бОЛЕЕ " 'ЧЕМ2»га й'МЕГМЕИтюа. 'Пргггщрйтв ЭтО у ГгаЕугд(гй22ггсч'атпжНО, ПОдСЧИтаВ КОЛИЧЕСтап . групп;:содерягагггих,:нап»ример, точку Рг !.' Мы заключаем, что каждая точка ""влияет не более 'чем 'на я соседних сегментов. Это и есть свойство локальности изменений.
° ° ° ° ° ° ° ° ° Я ° ° ° ° ° ° ° Р Р Рг 1 Рг Р„ г Р„ г 1 Р„.г Р» Р2(и) Р» ~ 2(и) Рис. 6.У. Задающие точки и сегменты кривой ; 6;$.1. Вычисление В-сплайна Как вы могли убедиться, изучив предшествующие примеры, расписать функции сопряжения В-сплайна в полиномиальной форме — задача непростая. Особенно '.'сложной она становится при больших к. Поэтому для вычисления координат точек кривой гюлиномиальная форма уравнения В-сплайна используется редко.
' Вместо этого конкретные значения параметра и подставляются в рекуррентное ' уравнение (6.32) и по ннм вычисляются координаты точек, соответствующих -. этим значениям параметра. Кокс (411 и де Бур [43] предложили переписать , уравнение (6.32) таким образом, чтобы вместо рекуррентной подстановки полу- :чить итерацию, подобно тому как это делается в алгоритме де Кастильо.
Их ме, тод позволяет определить задающие точки В-сплайнов, получающихся при делении исходной кривой в вычисляемой точке (см. приложение Ж). 6.5.2. Объединение В-сплайнов В -сшгаин можно не только разделить на два В-сплайна, но и объединить с д у- Р гим В-сплайном, в результате чего получится В-сплайн того же порядка. Задача ' заключается в том, чтобы найти задающие точки и узловые значения для объединенной кривой.
Подробное описание этой процедуры заинтересовавшиеся могут найти в приложении 3. 6.5.3. Дифференцирование В-сплайна :, Мы уже показали, что производная от кривои Безье выражается через кривую Безье, , порядок которон на единицу меньше порядка исходной кривой. Аналогичным образом, производная В-сплайна записывается через уравнение В- сплайна, айна, порядок которого на единицу меньше исходного. Производная от В- сплайна, при условии что параметр и лежит в диапазоне Гг и 21,1, имеет следующий вид (доказательство приводится в приложении И): — 2„Р, А!'оы! (и), ЫР(и) (6.43) К(И 1-1 2 где Р определяется следующим выражением: ) (6.44) Г+гн Правая часть уравнения (6.44) имеет форму уравнения В-сплиггга, поэтому'мож-'" но предполагать, что производные более высоких порядков могут быть получены рекурсивным применением формулы (6.43).
Так, производная порядка г от В-сплайна имеет вид: г1 Р(и) ч~~ ргА ( ) СЫ ю !гав~! где р -1 рк-1 Р; =(я-г) (614а Гиьг -Г Равенство (6.45) выполняется, если и лежит на отрезке гг и 2иг, а функция Рг» в формуле (6.46) определяется, как и ранее, через Рн Численные значения произ' водных могут быть вычислены по алгоритму Кокса — де Бура, поскольку форму" лы (6.43) и (6А5) имеют вид уравнения В-сплайна Пример 6.5 Вычислить первую производную от В-сплайна в его конечных точках, испольауг)' формулы (6.43) и (6.44). Порядок В-сплайна равен я, а его задающие точки Маг Рь...,р„. Решение Начальной точке В-сплайна соответствует значение параметра 1» = Гг = ...
= »ь'.'!,.,-.::; а нас интересует первый сегмент, которому соответствует отрезок значейий параметра гг 1 и гг. мы получим значение производной в начальной точке, под ' ' -"::- ставив и — 1 вместо 1' и Гг 1 вместо и в уравнение (6АЗ): 1) = ч,„р1Аг,~,(гы, ) ! Выражение в правой части равенства имеет вид уравнения В-сплайна, а зиач~; .: ние и = гг 1 соответствует начальной точке кривой. Следовательно, сумма , Р,'Агг ь! (21 1) должна быть равна вектору координат первой задающей тЮ',~" ки Р, . Отсюда первая производная исхолного В-сплайна в начальной точке ггме' ет значение: ( )=Р =(я Производная на втором конце кривой вычисляется тем же методом.
Парамег)2 в конечной точке имеет значение Г„„, а интересующему нас сегменту соотйат,'.:.:":,: ствует отрезок значений параметра Г„и Г„„. Подстановка и вместо 1 в уравне"'- ние (6 43) дает гйз( и+! ) ~, р!Аг !.-»-г+2 ю брюно о. л ~редстанлонне хинных н рааатз с нннн В правой части снова получилось уравнение В-сплайпа, а значение и = г„, соответствует конечной точке кривой. Отсюда, сумма ~~ „оР,'Ю,„,(г„„) совпадает с коардинатамн послелней задающей точки Р„'. Производная первого порядка от исходной кривой в таком случае имеет следующий внд: В изложешлом примере мы продемонстрировали еще одно важное свойство В- сплайна: вектор касательной в начальной нли конечной точке совпадает по направлению с первым или последним ребром залающего мпогоугольгшка.
Для кривых Безье это свойство было доказано еще раньше. 6.6. Неоднородный рациональный В-сплайн Неоднородный рациональный В-сплайн, нли попросту Х(7ГгВ5 (папит~опп гайапа1 В-иэфие силпе), подобен обычному неоднородному В-сплайну, поскольку основан на тех же функциях сопряжения, получаемых для неоднородных узлов. Однако задающие точки рационального В-сплайна указываются в форме, то есть с использованием однородных координат. Функции сопряжения применяются именно к этим олнородным координатам. Координаты точки на кривой ХПКВЗ в однородном пространстве получаются по формулам: (6.48) (6.50) х.Ь =~ (Ь,, х,.)Н (и); =о у-Ь=2 (Ь, у,)Жл,(и); ,=о г.Ь =~(Ь,. г,)Х,л(и); (6.49) ! о Ь = ~Ь,Лл,э(и). -о Координаты точки в трехмерном пространстве х, у и г получаются делением хЬ, уЬ и гЬ на Ь, поэтому уравнение кривой Х()КВ5 в векторном виде может быль записано следующим образом (здесь мы поделили уравнения (6.47), (6А8) и (6.49) на (6.50)): г' Ь,Р,'л', (и) Р(и) = ' о (651) х~~„Ь, Хлл(и) ~=.о где Р, — вектор (хо уо г,), обьединяющий координаты 1-й задающей точки в трехмерном пространстве, как н для нерациональных В-сплайнов.
Диапазон значений параметра гл, и г„„, как и для В-сплайна (см. предыдущий раздел). Уравнение (6.51) отражает следующие свойства кривой Х()КВ5, О Полобно нерационалыюму В-сплайну, кривая Х(1КВ5, представленная уравнением (6.51), обязательно прахолит через первую и последнюю зэда|ощие точки, если используются непериодические узлы. Это утверждение можно Чхл ллоапнннннныи.охнонноннонон и мнлннн доказать следующим образом. Числитель формулы (6.51) может считатьс~,.В, сплайном с задаюгцими точками Ь,Р,. Граничным значениям параметра буд»лг соответствовать координаты ЬоРо и Ь„Р„, поскольку В-сплайн с непериодилщ''.
скими узлами проходит через первую и последнюю задающие точки, Зндйй' нагель (6.51) также может считаться В-сплайном с задающими точкаыи.'ф:.': Граничным значениям параметра лля этого В-сплайна будут соответствод«ть' координаты Ьо и Ь„. Следовательно, граничным значениям параметра для.Р()г» в целом будут отвечать координаты Ро и Р„, та есть граничные задающие толйгв О Касательная в начальной точке совпадает по направлению с вектором Рл; Р~, а касательная в конечной точке — с вектором Є— Р„.а Проверка этого утлой..
ждения приводится в разделе 6.6.2. О Знаменатель (6.51) становится равным 1, когда все Ьге становятся равными'.1л поскольку ~ ~"о Ж,.л(и) = 1'. Уравнение (6.51) при этом превращается в урййл пение В-сплайна. Поэтому лложно сказать, что уравнение Х(1 КВ5 может опйл сывать пе только ХПКВ5-кривые, но и обычные В-сплайны. Кривая Бейье является частным случаем В-сплайна, поэтому уравнение Х1)КВ5 может тдкр же описывать кривые Безье и рациональные кривые Безьег. Уравнение Х(1КВ5-кривой обладает определенными преимушествдмн! прфйз уравнением В-сплайпа [Э Форма В-сплайна изменяется при изменении координат х, у и г задаю)йгйофйл) чек. Для каждой задающей точки, таким образом, имеется три степени райфо'.
ды. Кривая Х13КВ5 позволяет изменять четвертую координату для':,кайчвйф точки — Ьл Появляется возможность работать с кривой на более тонком 51)16)гл не. Увеличение значения однородной координаты задающей точки прйгяадолоох к тому, что Х13КВ5-кривая притягивается ближе к этой точке. С3 Уравнение Х()КВ5 позволяет точно воспроизвести все конические сеченйя.",;, окружность, эллипс, параболу и гиперболу.
В-сплайны, напротив, допуенйй(1 лишь приближение к коническим сечениям. Таким образом, в ХИКВБ-пфйф':, ставленин можно работать с коническими сечениями. кривыми Безье, рэщйслл нальными кривыми Безье и В-сплайнами. Преобразование всех этих криов)йх к Х(ЗКВ5 может значительно сократить объем программирования. например можно написать опну-елинстве~нуоо программу Лля расчета точки пересЕЧения кривых ЬПЗКВ5 и использовать ее для расчета пересечений кривых любых типов, поскольку эти кривые всегда могут быть преобразованы к соотМгствующим ХПКВ5-представлениям.
Продемонстрируем вывод Х()КВ5-представления для конических сечений цв примере из книги Пигла и Тпллера [1261. Мы возьмем из этой книги только «тй НЕЧНЫЙ рЕЗуЛЬтат, та ЕСТЬ ПарядОК, КООрдИНатЫ ЗадаЮщИХ ТОЧЕК (ОдиарадПЬ1Ч):Ил узловые значения кривой Х()КВ5„эквивалентной дуге окружности. В той 1йй~', боте обсуждаются ХШКВ5-представления других конических сечений. ДУГллг)й,:;: ' Доказательство этого приводится з работе 19). уравнение рациональной крнзай Безье получается подстановкой В,„(и) вместо Поо)лл(» о уравнение (6.5! ). Друл нллн слааамн, функции сопряжения Безье нспальэуютсясЖМй алнл1н точками в алпарадпых координатах. руй1210ййМ '~.'ба'-Ф~Р$Й~~$йййя';:кРйв)м'''ставит) 2т!~ЙЗйй~ф'$42й2вп';:йредщщ(знать', ::,зт22ВЕХ)ПКВ~.тттждСВЗ222т~у1ттЕ6уйЕт ИЬ2ЕЗЬ ОгтЕПГЕИЬ13.',Пытд2НРКаэал, Чтп ~еянцви-тР(ЧЗЬйИЙ УГЕ2 тДУпйетфУжснаетв- МЕИВШЕ.180 ДЛЯ йРЕДСтаВВЕНИЯ В2пй ДутйДОС- тауогшто всего лишь:трех задающйк точек (рис.