Основы САПР (CAD,CAM,CAE) - (Кунву Ли)(2004) (951262), страница 34
Текст из файла (страница 34)
Диапазон значений параметра и в уравнении (6.9) выбирается'исход1г' нз координат концов описываемой параболы. Уравнение произвольной парабол':,!-' лы с произвольными координатами центра и ориентацией может быль полученб-::;-',, применением соответствующих матриц преобразований к уравнению (6.9). 6.3. Эрмитовы кривые Р, =Р(0) =а Р, = Р(1) = ае + а, + ае + а,; Р,' =Р'(О)= а,„ Р,' =Р'(1)=а, +2а, +Зал. (6.11» Уравнения (6.11) могут быть решены относительно ае, аа аэ аз: ' Координаты точки мы представляли нектаром-столбцом, следуя соглашениям, принятьЬ» создателями ОрепО1 Здесь же мм нспользусл~ векторы-строки, потому что это делаел';", более удобным представление матроны геометрических коэффициентов, приведенной вп',,""" рис.
6.2. Уравнение (6.10) называется, соответственно, алгебранческпм уравпеппем. Чаше всего для описания кривых, используемых в программах СА1), используются уравнения третьего порядка, потому что они обладают важным свойствоьс две кривые, описываемые такими урапнениями, могут быть соединены таким образом, что вторые производные в точке соединения будут равны друг друг»с"':.",':-": Это означает, что кРнвизна в точке соединениЯ остаегсЯ постоинной, отчегп дайг „:"-"'- кривые кажутся одним целым. Ту же непрерывность можно получить и для кривых более высоких порядков, однако работа с ними требует интенсивных вычис'-...:.=.",';: лений.
Простейшее параметрическое уравнение третьего порядка выглядит следующиФ образом: Р(и) = [х(и) у(и) г(и)] = (бло»-:.,"-:",:: = ае + аи+ а,и' + али (О <и <1). В формуле (6.10) ае, ап аэ аз — векторные коэффициенты парамегрическопз уравнения, то есть векторы-строки с компонентами х, у и г'. Этн коэффициенты являются обычными алгебраическими коэффнцненгамит уравнения, поэтому нх":-'.-,'"; изменение не приводит к интуитивно понятному изменению формы кривой. Чтобы преодолеть этот недостаток алгебраических коэффициентов, мы заменим их векторами, обладающими конкретным геомегрическим значегплем.
Один из возможных вариантов — использование радиус-векто)юв конечных точек кривой ° ° Ре и Рп а также векторов Ре и Р,', задающих направление касательных в этих точках. Добавление граничных условий в виде векторов Ре, Ро Ре, Р,' к формуле' (6.10) даст: 6%:"-'к:,-Ф':,,'",=:.":- к;--..-'-.,~,„"-:.„-.г..'...:"..'»г)авгд, ' „,,"-,,;... ~ФВЯ~'- 'ч(нмчлга г«йт ~ з 1~ г л 1 3 Я г Х э ~ У аэ =Ро" аг"=.Ро а„,=-ЗР, «ЗР, -2Рог-Р,'; аз 2Ро 2Рг +1 о +Рг ° Подстановка (6.12) в (6.10) даст нам уравнение кривой в новом виде. Р Р(ц) 11 Зцг +2цз Зцг 2цз и-2и'+из — цг +цз) РЮ Р; (6.13) (1,1) х Рнс. 6.2.
Влияние касательных на форму кривой Матрица геометрических коэффициентов обозначается буквой 1В1 и включает векторы Ро, Рн Р', Р,'. Каждый вектор записывается в своей строке, в той последовательности, в которой они перечислены выше. Рисунок демонстрирует тольЭ мн Рмнтоиа кривая определяется четырьмя векторами, поэтому опн вводятся прн ее создании 'нн н сохраняются в качестве задающих ее параметров. Теперь в уравнение кривой уже не входят алгебраические коэффициенты — вместо иих стоят векторы Ро, Рн Ро, Р,'. Новые векторные коэффициенты назыгьэются геацегэ)оцческццц (деоте1йг соеОгс1еягз), а уравнение (6.13) называется уравнением эрмитовой кривой (Оегглгуе сцгве)'.
Преимущество эрмнтовой кривой в том, что изменение ее формы может быть интуитивно предсказано по изменению геометрических коэффициентов. Например, изменение Ро или Р, вызовет такое изменение кривой, что ее концы переместятся в новое положение, задаваемое измененными векторами Ро и Рн Точно так же изменение Р,' нли Р,' приведет к тому, что касательные к кривой на ее концах станут совпадать с новымн векторами Ро и Р,' (рис. 6.2).
ко влияние изменения векторов, определяющих направление:н длину каеатцг1в-'; ных, Обратите внимание на то, что происходит с кривой, если меняетая тольксГ':.-" длина, но не направление вектора касательной. Можно заключить, что длигшч вектора определяет, насколько далеко вдоль кривой по направлению к.ее свредгг;; не распространяется влияние этого вектора. Формулу (6.13) можно интерпретировать и так, как это сделано ниже. Векторы Ро, Рн Ро, Р,' влияют на форму кривой, причем относительная степень их влия- 11 ния определяется функциями /, (и) = 1 — Зи' + 2из; г'.
(ц) = Зцг -2цз; (6.14) /з(ц) =ц -2цг -и'"; г() г з Можно сказать, что эти фУнкции «сопРЯгают» гРаничные УсловиЯ Ргь Рн Р;ч хггг ...':, дру1 с другом, поэтому и называют их функциями сопряжения (Испо(гни уццвггяигз). 6.4. Кривая Безье Хотя преобразование алгебраического уравнения кривой в форму эрмитова уравнения позволяет работать с кривой на интуитивном уровне, эрмитова форма не полностью удовлетворяет требованиям разработчикам.
Как мы показвлиг предсказать форму кривой по величине векторов касательных Р' и Р,' не так-го просто (рис. 6.2). В начале 60-х гг. Безье — сотрудник французской автомобильной компании «Рено» вЂ” предложил новую форму уравнения кривой и использовал ее в систе"' ме поверхностного моделирования ()Х1Я)КГ (191. Эта кривая получила название ~уивой Безье (Вез)ег сигве).
Она строится по вершинам многоугольника, эа; ключающего ее в себе. Вершины сопрягаются соответствующими функциями подобно тому, как это делается при построении эрмитовой кривой. Безье выбрал функции сопряжения таким образом, чтобы получающаяся кривая удовлетворя. ла следующим требованиям. Р Кривая проходит через первую и последнюю вершины многоугольника Ы Направление вектора касательной в первой точке кривой совпадает с напрагн левием первого отрезка многоугольника (рис. 6.3). Аналогичным образом, по-, следний отрезок многоугольника определяет направление касателыюй в кй" печной точке кривой. С3 Производная степени и в начальной (нли конечной) точке кривой определггг ется положением первых (илн последних) п + 1 вершин многоугольника.
Эхо свойство очень удобно при соединении лвух кривых Безье, если требуется;.",.";;;." удовлетворить требованию непрерывности высших производных в точке со, единения. Вообще говоря, второе свойство есть частный случай данного.свфй- -,!; ства. В,„(и) =Ци'(1-и) (6.15) «1 «! П(« — 1)! о( Р'(1-и)= ч ~~ 1(1-и)" 'и'Р, = ;х « — 1/ а/ ,1(1-и)" 'и'Р,. 1 о « ~/ Поскольку эквивалентно П93$4$3щеиюЙии Йо)«г)гйй;~щйййй,мпогьугвМ)я)16гйма протнвополОжиый иощь .,.'чавксж хв же',евьгэя::крйвдо/. Яддавв)игь этими требоваи11ямн, Безье выбрал''в качестве функций сопряжения йЬлогиом' Бернштейн»: ' 'щ 'функцию сопряжения (6.15) применить к вершинам многоугольника, по' учается уравнение кривой Безье: Р(и) =х~ Ци'(1-и)" 'Р„ (6.16) но~ о/ 'дв;Р; —, радиус-вектор 1-й вершины. Вершины многоугольника называются ваш«лов (со«сто/ гвт6сеэ), как и сам многоугольник (со«гто//ю/уйо«).
Из форму-'"ы (6.16) видно, что для кривой, заданной и + 1 точками, максимальная степень , удет й. Таким образом, степень кривой Безье определяется количеством задаю- точек. Кривые Безье разных степеней с разным количеством задающих ток показаны на рис. 6.3. а б в Рис. 6.3. Кривые Безье различных степеней окажем теперь, что кривая Безье, заданная уравнением (6.16), удовлетворяет ванням, перечисленным в начале раздела Для начала проверим, что кривая . роходит через первую и последнюю задающие точки. В этом легко убедиться, одставив в уравнение значения 0 и 1 параметра и. Раскроем суммирование слеюшпм образом: Р(и)=И(! — и) Р„+Ии(1-и) ~Р + и (1-и) Р +...
+ «" '(1-и)'Р„, + и "Р„. вссчитаем значения Р(0) и Р(1): Р(0) = Ро Ро Р(1) = Р„= Р„. тч'ФКрв4ФГ "Е!ФФ6~ФФФнд/!!Хвоей«ФВГ!;-:ит<%ув~жФФФВЬоОФФ",=':~Ф~4Ья *' - кол МЫ,убеднЛИСЬ, Чтп Крняая ПрОХОДИт ЧЕРЕЗ, ПврВУЮ И ПОСЛЕдНВЯО';ЭаДахвт жд тОЧВЗа. ':.'О Второе:и третье свойства можно проверить дифференцированием оуравие~~ф'с"::.':,':,';,, кривой Безье, чем мы займемся в следующем разделе. Четвертое Свойство'прояйс ряется путем рассмотрения двух кривых, определяемых уравнениями о( >=~! ~,о- т-'о, е~, о (6.17) =ох| Р'(ч)=~~~ ~ 1ч'(1-ч)" 'Я Яэ =Р„,, 0<и<1). (618), ,=о~,Д Уравнения (6.17) и (6.18) можно интерпретировать следующим образомгкривщг Р(и) проводится от точки Ро к точке Р„, тогда как Р (ч) проводится от Р„(=Яо):к: ' .:;:::; Ро(=Я ).
Если мы введем новый параметр и' и заменим и на (1 — и'), направленное Р изменится на противоположное (то есть кривая будет идти от Ро к Р„при изменении и' от 0 до 1). Поэтому мы сможем скаэаточ что кривые Р и Р' идент1пгны, если Р'(1 — й) при разложении даст иам то же выражение, что и Р(и) с точностью до названий параметров. Мы получим выражение для Р(1 — и.), подставив (1 — и) вместо ч в формулу (6.18).
Р'(1-и) = ~~~ ~ 1(1-и)'и" 'Р„,. (6.19) у=ох// Перепишем выражение (6.19), подставив в него ! вместо (и — /): Ь мы можем заключить, что формула (6.20) совпадает с (6.17). Кривая Безье обладает еше одним важным свойством, помимо перечисленных выше, — еьтуклостью оболочки (со«пех Ьи///«оретту). Выпуклой оболочкой кри- вой Безье является выпуклый многоугольник, получаемый соединением задаю-'':..
'!-,"-:: щих точек (рис. 6.4). Обратите внимание, что на этом рисунке все кривые Безье': .: ',о полностью лежат внутри своих выпуклых оболочек. Выпуклость оболочки кривой Безье обеспечивается тем, что значения сопрягаю *Ь, ших функций лежат на отрезке !0,11, а их сумма равна 1 для любого и. Это утвер.-'. ждение легко проверить для кривой Безье, определяемой двумя задающими точ-":,";:~, ками. Кривая, заданная точками Ро и Рн будет отрезком прямой, а ее выпуклой:;;:: оболочкой будет тот же самый отрезок, Любую точку этой кривой можно полу-,' "" ,. У4!«й!)!!!!!)(4у!)ЩЕ!)«!фаей!;*'.«4ф«Р'1~~16ырфхУУ4!У" йуу~ь,сложением«РФ,::;:,,О!4~,,ВО,О,-ПоскодькУ:фу«О(414« жр "угзелвны. и их сумма равна'йинице для любого,уг.
(щи:Р Ц у,+ Р,Вьь бУдет' лежать на отРеже РО' В,,Я ь Отрезок РрР, в нашем случае представляет лую оболочку, поэтому мы можем сказать, что все точки кривои лежат внутри Йой' оболочки. Аналогичным образом можно проверить высказанное выше утверждение для кривой Безье, заданной тремя и более точками, как показал Фарии !48!.
Выпуклость оболочки полезно использовать при вычислении точек пересечения кривых Безье. Оболочка кривой содержит ее целиком, поэтому кривые Безье не могут пересекаться, если не перекрываются нх оболочки. В этом случае трудоемкое вычисление точки пересечения кривых Безье можно сразу же пропустить. Проверка перекрытия выпуклых оболочек требует гораздо меньших Втачислительных затрат. жм!ыпрВкрнтья Вщ', н з! т" цоуйу п(очкО, оп)уеделнВмйл вы)Овраге-;;.,'*" «:! Р, и делить его в отношении собой вырожденную выпук,"к' и (у+ 1) (и — у') б в Рис.