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

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

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

Воnросы и задачи

163

Площадь может быть рассчитана по формуле

=I~/4 Jз т·з d,. dе.

о1.5

1)Вычислите интеграл в квадратурах Гаусса, сделав три выборки по каждой

переменной.

2)Вычислите точное значение интеграла и сравюпе результаты.

14.Опишите преимущества немногообразных систем моделирования перед

обычными системами твердотельного моделирования.

15.Постройте модели объектов и рассчитайте положения их центров тяжести

в системе твердотельного моделирования.

16. Нужно сварить две трубы, как показано на рисунке ниже. Диаметры труб

одинаковы: 7,6 см. Площадь эллипса в точке сопряжения должна лежать в

диапазоне 65±6 см2, чтобы предотвратить большое падение давления потока.

Какой угол е и какая длина шва (периметр эллипса) могут удовлетворить по­

ставленному условию? Решите эту задачу в интерактивном режиме в системе

поверхностного или твердотельного моделирования.

~7.6см~

Глава б

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

Для каждого криволинейного ребра в компьютере хранится либо уравнение I<РИ­

вой, либо эквивалентные характеристические параметры1 (см. раздел 5.3.2). Эти

сведения важны как для систем автоматизированной разработки чертежей, так

и для систем объемного моделирования. Мы уже показывали, что расчет точек

пересечения кривых необходим для определения границ ксегмеитов2 при приме­

нении булевских операций, описанных в приложении Г. Границы ксегмента по­

лучаются путем вычисления· точек пересечения кривой, ограничивающей пере­ секающиеся поверхности, с кривой, по которой пересекаются эти поверхности (относящиеся к разным телам). После получения границ ксегмента нужно сде­

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

Аналогичная процедура выполняется при создании и модифицировании кривых

в системах автоматизированной разработки чертежей и системах поверхностного

моделирования. В этой главе мы кратко рассмотрим различные методы представле­ ния уравнений кривых и методы работы с ними. В частности, мы изучим методы обработки пересечений и объединений кривых. Более подробные сведения на тему этой главы можно найти в книгах по аналитической геометрии [49, 48, 72, 21].

6.1. Типы уравнений

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

относятся параметрические уравнения, описывающие связь координат х, у и z

точки кривой с параметром. Ко второму типу относятся непараметрические уравнения, связывающие координаты х, у и z некоторой функцией. Проще всего продемонстрировать различие между ними на примере. Рассмотрим окружность радиуса R, расположенную в начале системы координат. Если окружность лежит

в плоскости ху, ее параметрическое уравнение может быть, например, таким:

 

х- Rcos е, у= Rsine, z =О (О~ е~ 21t).

(6.1)

Ту же окружность можно описать уравнением и без параметра е:

 

 

 

(6.2)

или

 

 

 

(6.3)

 

 

 

1 Центр, радиус н nектор нормали к шюскости, о которой лежит окружность, -

примеры

характеристических параметроо, эквивалентных уравнению окружности.

 

2 Ксегментом называется часть кривой, no которой пересекаются две грани, относящиесяк

разным объемным телам. Ксе1·мент вринадлежит обеим граням.

6.2. Конические сечения

165

Уравнение (6.2) задает окружность в иеявиой иепара.метрической форме, а урав­ нение (6.3)- в яв1tой иепараметрической форме.

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

кривых, поскольку интерактивная графика является одной из важнейших функ­

ций САПР. Кривая, отображаемая на экране, в действительности представляет

собой набор коротких отрезков. Поэтому постоянно возникает необходимость

вычислять координаты точеi< кривой, находящихся на равном расстоянии друг

от друга. Это назьшается вычислеиием кривой (cu1ve evaluation). Можно ожидать,

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

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

небольтую величину. При использовании уравнения (6.2), однако, мы не знаем,

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

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

она располагалась по соседству с предыдущей найденной нами точкой. Уравне­

ние (6.3) обладает тем же недостатком, несмотря на то, что в нем независимая

переменная уже выделена.

Из-за перечисленных недостатков непараметрического представления в систе­

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

ческие уравнения кривых и поверхностей1, поэтому в данной главе мы будем об­

суждать только их.

6.2. Конические сечения

Кривые или части кривых, получаемые сечением конуса плоскостью, называют­

ся коническими сеченИЯАtи (conic sections). В зависимости от положения и ориен­

тации секущей плоскости по отношению к конусу кривая сечения может быть окружностью, эллипсом, параболой или гиперболой. В большинстве случаев

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

ку детали машин чаще всего обладают осевой симметрией.

6.2.1. Окружность и дуга окружности

Окружность или дуга ОI<ружности, лежащие в плоскости :ty, с заданным радиу­

сом R и координатами центра Xr., Yr. могут быть представлены уравнениями

х = Rcos8+Xc;

(6.4)

 

у=Rsin8+Yr..

1В некоторых случаях точки персссчсння кривых удобно искать, если одна из кривых за­

дана в параметрической форме, а другая - о певараметричсской. Поэтому в отдельных системах используется преобразоuавис уравнений из параметрической формы в неиара­

метрическую и обратно. Это иреобразование рассматривается в книге [69].

166

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

 

 

 

Как уже отмечалось, вычисление кривой может выполняться путем последо­ вательной подстановки в уравнение значений е с шагом de. Значение е может

достигать 27t для полной окружности или меньшего числа для дуги окружности.

Значение de должно быть подобрацо таким образом, чтобы вычисление было

достаточно быстрым, но окружность не получилась бы похожей на многоуголь­ ник. Уравнение окружности, лежащей в другой плоскости, может быть получено применением матриц преобразования к уравнению (6.4). Матрицы преобразова­ ния рассматриваются в разделе 3.7.

Пример 6.1

Окружность единичного радиуса с центром в точке (0, 1, 1) лежит в плосхости yz, как показано на рисунке'. Выведите параметрическое уравнение этой окруж­

ности, применив соответствующие матрицы преобразований к уравнению (6.4).

z

у

х

Решение

Исходная единичная окружность, лежащая в плоскости ху, изображена на ри­

сунке пунктиром, а интересующая нас окружность - сплошной линией. Сплош­

ная окружность получается из пунктирной поворотом на угол -90° вокруг оси у

и последующей трансляцией на 1 в направлениях у и z. Обозначим координаты

точек сплошной окружности буквами х", у" и z", а координаты точек пунктирной

окружности буквами х, у и z. Тогда преобразования запишутся следующим образом:

[х" у• О 1]т =Trans(0,1,1)Rot(y,-90" )[х у О 1]т =

= [ cos(~90")

~

sin(~90°)

~][;][~ ~ ~ ~]=

-sin(-90")

О

cos(-90" )

О О О О 1 1

о

о

о

110001

=(0 у+1 х+1 1].

 

Отсюда

 

 

 

х· =0;

 

 

у• =y+1=Rsine+1;

z"

+ 1 = Rcose+ 1 S: е S:27t).

1 Уравнение этой кривой может храниться о памяти в виде характеристических ларамет­

роо, таких как вектор нормали (1, О, 0}, координаты центра (0, 1, 1) и радиус 1. Как уже

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

6.2. Конические сечения

167

6.2.2. Эллипс и эллиптическая дуга

Эллипс, как и окружность, может быть задан параметрическим уравнением. За­

пишем такое уравнение для эллипса, лежащего в плоскости ху, с центром в начале

координат. Положим, что большая ось эллипса направлена вдоль оси х и имеет длину а, а малая ось направлена вдоль оси у и имеет длину Ь. Параметрическое уравнение эллипса будет таким:

х =acos8;

 

у= bsin8;

(6.5)

z =0.

Диапазон значений параметра для эллипса составляет [0, 2], а для дуги эллипса может быть более узким. Произвольный эллипс на произвольной плоскости с произвольными направлениями большой и малой осей получается в результате применения матриц преобразования, подобно тому, как мы делали это с окруж­

ностью.

Пример 6.2

Получить параметрическое уравнение эллипса, лежащего в плоскости ху, с коор­

динатами центра Хс, Ус. Оси эллипса направлены так, как показано на приведен­

нам ниже рисунке.

у

а х

Решение

Требуемый эллипс может быть получен поворотом исходного эллипса на угол

вокруг оси z и трансляцией его на величину Х., в направлении х и на величину Ус в направлении у. Обозначим координаты точек интересующего нас эллипса бук­ вами х", у" и z", а координаты точек исходного эллипса буквами х, у и z. Тогда

преобразования запишутся следующим образом:

[х• у• О 1]т = Trans(Xc,Yr, 0) Rot(z,<p)[x у О 1]т =

-[:~:: ~::: ~ ~][;][~ ~ ~ ~.:']=

о 1000010

оо 0110001

=[xcos<p-ysin<p+Xr xsin<p+ycos<p+Yr. О 1].

168

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

Следовательно,

х· =х cos <р-ysin<p + Х, =а cos е cos <р- bsinesin<p + Х,;

у=xsin<p cos <р +У, =acos esinq>+ bsine cos <р +У,;

z" =0 :s;; е :s;;27t).

6.2.3. Гипербола

Известно, что неявное уравнение гиперболы (рис. 6.1) имеет следующий вид:

х2

у2

(6.6)

--- =1.

а2

ь2

 

Рис. 6. 1. Гиnербола

 

Уравнение (6.6) может быть записано в параметрической форме1:

 

х =а ch и;

 

у= Ь sh и.

(6.7)

Здесь используется известное тождество ch2 и- sh2 и= 1. Диапазон значений па­

раметра и для уравнения (6.7) определяется исходя из координат конечных то­

чек описываемой гиперболы. Применеине соответствующих матриц преобразо­ ваний к уравнению' (6.7) позволяет получить уравнение гиперболы с центром в любой точке пространства, ориентированной произвольным образом.

6.2.4. Парабола

Парабола, симметричная относительно оси х и проходящая через начало коорди­

нат, может быть задана следующим явным уравнением:

х = су2

(6.8)

Это уравнение может быть преобразовано к параметрическому виду:

х = cu 2 ;

(6.9)

 

у =и.

 

1 Наnомним, что ch и = (еи + e-u)/2 и shu = (еи - е-")/2. Из уравнения (6.6) можно nолу­

чить и другие nараметрические уравнения.

6.3. Эрмитовы кривые

169

 

 

 

Заметьте, что nараметрическое уравнение (6.9) не является уникальным по от­

ношению к уравнению 6.8): вы можете выбрать любое удобное nараметрическое уравнение. Диаnазон значений nараметра и в уравнении (6.9) выбирается исходя из координат концов оnисываемой nараболы. Уравнение nроизвольной nарабо­ лы с nроизвольными координатами центра и ориентацией может быть nолучено nрименением соответствующих матриц nреобразованпй к уравнению (6.9).

6.3. Эрмитовы кривые

Чаще всего для оnисания кривых, исnользуемых в nрограммах CAD, исnользу­ ются уравнения третьего порядка, nотому что они обладают важным свойством: две кривые, описываемые такими уравнениями, могут быть соединены таким

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

Это означает, что кривизна в точке соединения остается постоянной, отчего две

кривые кажутся одним целым. Ту же неnрерывность можно nолучить и для кри­

вых более высоких порядков, однако работа с ними требует интенсивных вычис­

лений.

Простейшее nараметрическое уравнение третьего nорядка выглядит следующим

образом:

P(u) = [x(u) y(u) z(u)] =

(6.10)

= а0 + а1и + а2и2 + a3u3 (О ~и~ 1).

В формуле (6.10) а0, а1, а2, аз - векторные коэффициенты параметрического

уравнения, то есть векторы-строки с комnонентами х, у и z1Эти коэффициенты

являются обычными алгебраическими коэффициентами2 уравнения, nоэтому их

изменение не nриводит к интуитивно nонятному изменению формы кривой.

Чтобы nреодолеть этот недостаток алгебраических коэффициентов, мы заменим

их векторами, обладающими конкретным геометрическим значением. Один из

возможных вариантов - исnользование радиус-векторов конечных точек кривой

Р0 и Р1, а также векторов Р~ и Р{, задающих направление касательных в этих точках. Добавление граничных условий в виде векторов Р0, Р1, Р~, Р{ к формуле

(6.10) дает:

Р0 =Р(О)=а0;

Р1 =Р(1)=а0

1

2

3

;

(6.11)

 

 

 

 

 

Р~ =Р'(О)=а1

;

 

 

 

 

Р{ = Р'(1) =а1 + 2 + За3

Уравнения (6.11) могут быть решены относительно а0, а1, а2, аз:

1Координаты точки мы представляли вектором-столбцом, следуя соглашениям, nринятым

создателями OpenGL. Здесь же мы используем векторы-строки, потому что это делает

более удобным представление матрицы геометрических I<оэффициентов. нрнведешюй на

рис. 6.2.

2Уравнение (6.10) называется, соответствешю. алгебраическим уравнением.

170

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

ао =Ро;

 

 

а1

=Р~;

(6.12)

 

 

а2 = -ЗР0 + ЗР1 -2Р~ -Р;;

а3 =2Р0 -2Р1

+Р~ +Р;.

Подстановка (6.12) в (6.10) даст нам уравнение кривой в новом виде:

Р(и)=[1- Зи'+ 2и'

Зи'-2и'

и-2и'+и' -•' +и'{~;} (6.13)

Теперь в уравнение кривой уже не входят алгебраические коэффициенты - вме­ сто них стоят векторы Р0, Р1, Р~, Р;. Новые векторные коэффициенты назы­ ваются zео.метрически.ми (geometric coefficients), а уравнение (6.13) называется

уравнением эрмитовой кривой (Hermite curve) 1Преимущества эрмитовой кри­

вой в том, что изменение ее формы может быть интуитивно предсказано по из­ менению геометрических коэффициентов. Например, изменение Р0 или Р1 вызо­

вет такое изменение кривой, что ее концы переместятся в новое положение,

задаваемое измененными векторами Р0 и Р1. Точно так же изменение Р~ или Р;

приведет к тому, что касательные к кривой на ее концах станут совпадать с но­

выми векторами Р~ и Р; (рис. 6.2).

1 1 о~

~[BJ=ffз--fг~rl

13 -1~

( 5, 1 )

Рис. 6.2. Влияние касательных на форму кривой

Матрица геометрических коэффициентов обозначается буквой [В] и включает

векторы Ро. Р1, Р~, Р;. Каждый вектор записывается в своей строке, в той после­

довательности, в которой они перечислены выше. Рисунок демонстрирует толь-

1 Эрмитооа кривая определяется четырьмя векторами, поэтому они вводятся при ее созда­

нии и сохраняются в качестве задающих ее нараметров.

6.4. Кривая Беэье

171

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

ных. Обратите внимание на то, что происходит с кривой, если меняется только

дЛИНа, но не направление вектора касательной. Можно заключить, что дЛина вектора определяет, насколько далеко вдоль кривой по направлению к ее середи­

не распространяется влияние этого вектора.

Формулу (6.13) можно интерпретировать и так, как это сделано ниже. Векторы Р0, Р1, Р~, Р; влияют на форму кривой, причем относительная степень их влия­

ния определяется функциями

/1 (и)=1-3и2 +2и3 ;

/2(и) = 2 -2и3 ;

(6.14)

/3(и) =и -2и2 3 ; /4(и)=-и2 +из

Можно сказать, что эти функции ~сопрягаюн граничные условия Р0, Р1, Р~. Р; друг с другом, поэтому и называют их фуикциями сопряжеиия (Ьlending fиnc­

tions).

6.4. Кривая Безье

Хотя преобразование алгебраического уравнения кривой в форму эрмитова

уравнения позволяет работать с кривой на интуитивном уровне, эрмитова фор­ ма не полностью удовлетворяет требованиям разработчикам. Как мы показали,

предсказать форму кривой по величине векторов касательных Р~ и Р; не так-то

просто (рис. 6.2).

В начале 60-х rr. Безье - сотрудник французской автомобильной компании

~Рено» - предложил новую форму уравнения кривой и использовал ее в систе­

ме поверхностного моделирования UNISURF [19). Эта кривая получила назва­ ние кривой Безье (Bezier curve). Она строится по вершинам многоугольника, за­ ключающего ее в себе. Вершины сопрягаются соответствующими функциями подобно тому, как это делается при построении эрмитовой кривой. Безье выбрал функции сопряжения таким образом, чтобы получающаяся кривая удовлетворя­ ла следующим требованиям.

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

ОНаправление вектора касательной в первой точке кривой совпадает с направ­

лением первого отрезка многоугольника (рис. 6.3). Аналогичным образом, по­

следний отрезок многоугольника определяет направление касательной в ко­

нечной точке кривой.

ОПроизводная степени n в начальной (пли конечной) точке кривой определя­

ется положением первых (или последних) n + 1 вершин многоугольника. Это

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

ства.

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