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

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

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

212

Глава 7. Представление поверхностей и работа с ними

нии Е. Тем же методом вычисляются и все остальные суммы. Если обозначить их символами С0, С1, ... , Сп, то уравнение (7.27) можно будет переписать так:

Р(и0,v0 ) =С0В0,"(и0 )+ С1 В1,"(и0 )+.. .+С"В","(и0 ) =

(7.28)

i=O

Выражение (7.28) также может быть вычислено по алгоритму де Кастильо для

задающих точек С;.

7.5.2. Дифференцирование поверхности Беэье

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

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

отображения затушеванного изображения поверхности необходимо определять

угол между падающим светом и нормалью к поверхности в каждой ее точке. Век­

торы нормали также используются для вычисления положения фрезы при обра­ ботке поверхности станком с ЧПУ.

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

дР(и,v) дР(и,v)

и

ди дv

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

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

Безье в точках и= и0 и v = v0 можно так, как показано ниже. Производмая по v вычисляется аналогичным образом.

Дифференцируя выражение (7.23) по и, получим

дР(и,v)

d [~

]

,m(v)+

_..:.._;_...:..=-d

"'"'Р;,оВ;,"(и) B0

ди

и

;~о

 

(7.29)

 

 

 

 

+ dd

[:tPi.IBi,n(и)]B1

.m(v)+... + .!!....[:tPi.mBi,n(и)]Bm,m(v).

и

;.о

dи ;~о

Перепишем коэффициент перед Во.т(v) в уравнении (7.29), используя результат

из раздела 6.4.1 в следующем виде:

d [~

] n-l(n-1)

;

"_ _;

а;,о•

(7.30)

-d

?-Р;,оВ;,"(и)

=?: .

и (1-и)

1

 

 

 

 

 

 

и

•=0

•• о l

 

 

 

 

где а;,о = Pi+l,o -Р;,о·

Правую часть выражения (7.30) можно вычислить для произвольнаго значения

и0 по алгоритму де Кастильо (см. раздел 6.4.1 ). Тем же путем осуществляется вычисление коэффициентов В1,т(v), В2,т(v), ..., Вт,т(v) для и0• Если обозначить полученные значения коэффициентов символами С0, С1, ..., С". выражение (7.29) можно будет переписать в виде

дР(и,v)

т

ди

=С0Во.т (v) + C1B1,m (v) + ... + CmBm,m(v) = L:CiBi.m(v). (7.31)

 

j•O

Выражение (7.31) вычисляется также по алгоритму де Кастильо по задающиr.t

точкам cj.

7.6. В-сплайновая поверхность

213

7.6. В-сплайновая поверхность

Подобно тому как от уравнения кривой Безье мы перешли к уравнению поверх­

ности Безье, мы можем перейти и от уравнения В-сплайна к уравнению В-сплю1:­

новой поверхности:

11 т

 

P(и,v)='L'LP;.JN;,k(и)NJ,I(v) (sk-t ~U~S11+1 ,t1_1 ~tт+1 ),

(7.32)

i=O j=O

где P;,j- задающие точки, расположенные в вершинах задающего многогранни­ ка, как и для поверхности Безье, а N;,k(u) и ~,~(v) - функции сопряжения, ис­

пользуемые для построения В-сплайнов. Эти функции сопряжения определяют­

ся узловыми значениями s0, s1, ... , sn+k и t0, t1, ... , t1+m соответственно. Диапазоны параметров используются в определении В-сплайна, поскольку функции сопря­

жения N;,k(и) и ~,1(v) определены только на этих интервалах, что уже демонст­

рировалось в главе 6. Это верно как для периодических узлов, так и для непе­

риодических. Мы будем рассматривать тольконепериодические узлы по тем же

причинам, что и раньше. В этом случае функции сопряжения В-сплайна будут

совпадать с функциями сопряжения поверхности Безье, если k =n + 1, l =т+ 1.

Поэтому можно утверждать, что поверхность Безье является лишь частным слу­ чаем В-сплайновой поверхности, а уравнение (7.32) описывает как поверхности

Безье, так и В-сплайновые. Чаще всего порядки k и l принимаются равными 4,

поскольку степени уравнений, описывающих поверхности, не должны превы­

шать 3.

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

поминающими поверхность Безье (например, четыре угла задающего многогран­

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

определяемые соответствующими подмножествами задающих точек). Покажем, что значению параметра и = О соответствует граничная кривая, являющаяся В­

сплайном. Подстановка и= О в уравнение (7.32) дает1

(7.33)

В соответствии с формулой (7.33), граничная кривая при и= О является В-сплай­

ном с задающими точками Р0.о, Р0,1, ... , Po,rn· Аналогичным образом можно пока­

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

точки являются краiiннми вершинами задающего многогранника.

7.6.1. Вычисление В-сплайновой поверхности

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

ниями параметров и =u0, v =v0, вычисляются по формуле

11 т

 

P(u 0 ,v0 ) = L ,LP;.jNi.k(и0 )Nj.l(и0 ).

(7.34)

i=O j =0

Выражение (7.34) можно переписать, раскрыв суммирование по i:

1 При uыводе (7.33) испо;tьзовался тот факт, что [L;=0 P;N;,k(u)Ju=O =Ро.

214

Глава 7. Представление поверхностей и работа с ними

Р(и0,v0)=[taPoj Nj,~(v0>] N0,k(и0)+

(7.35)

+[t,PtjNj.l(v0 )]N1.k(и0)+ ... + [f.P",jNj.l(v0 )]N",k(и0).

)=0

)=0

Сумма "f.7= 0 P0jNj,l(v0 ) может быть вычислена при помощи алгоритма Кок­

са-де Бура по задающим точкам Poj и узловым точкам параметра v (см. прило­

жение Ж). Обозначим эту сумму символом С0• Все nрочие суммы вычисляются аналогичным образом и обозначаются С1, ..., С". После этого становится возмож­

ным записать уравнение в форме

(7.36)

Выражение (7.36) также вычисляется при помощи алгоритма Кокса-де Бура по

задающим точкам С; и узловым значениЯм и.

7.6.2. Дифференцирование В-сплайновой поверхности

По причинам, изложенным в разделе 7.5.2, достаточно часто возникает необхо­

димость вычисления провзводных вида

дР(и,v) дР(и,v)

ди dv

в произвольной точке поверхности. Вычислить провзводную по и для В-сплай­ новой поверхности в точках и =и0 и v =v0 можно так, как показано ниже. Произ­

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

Раскроем выражение (7.32), записав в явном виде сумму поj:

Р(и,v)=[toP;,oN;,k(и)]No.l(v)+[toP;,1 N;.k(и)]N~,~(v)+... +

(7.37)

+ [tuPi.mNi,k(и)]Nm.l(v).

Дифференцируя выражение (7.37) по и, получим:

дР(и,v)

d [ "

J

 

(v)+

----'---'=--d

"P; 0 N;k(u) N 01

ди

и

to . .

 

.

(7.38)

 

 

 

 

 

+.!!:._[:tP;,1 N;,k(и)]N~,~(v)+ ... + .!!:_[:tPi.mNi.k(и)]Nrп.1(v).

dи ;.о

 

i=o

 

 

Коэффициент перед N0,l(v) в формуле (7.38) представляет собой провзводную

В-сплайна с задающими точками Р;,о и может быть вычислен для произвольного

значения и0 на основе соображений, изложенных в разделе 6.5.3. Обозначим зна­

чение этого коэффициента символом С0• Аналогичным образом вычисляются

коэффициенты перед Nц(v), N2J(v), ..., N",,1(v). Их мы обозначим С1, С2,

... , С",.

После этого выражение (7.38) можно будет записать так:

 

дР(и,v)

т

 

ди

=CoNo.l(v) +с, N~.~(v) + ... + CmNm.l(v) =L сj Nj,,(v).

(7.39)

j•O

7.7. Поверхность NURBS

215

Выражение (7.39) мы вычислим также при помощи алгоритма Кокса-де Бура

по задающим точкам Cj и узловым значениям v.

7.7. Поверхность NURBS

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

мы получили уравнение NURВS-кривой. Точно так же уравнение поверхности NURBS получается из В-сплайновой поверхности:

1/

т

 

 

 

 

 

"'"' h . .Р. .N.k(u)N.

1(v)

 

 

~ ~

1,) 1,)

),

 

 

 

P(u v) = i=O j=o

 

(

sk-1

~u~sn+l•tl-1 ~v~tm+l), (7.40)

'

1/

т

 

 

L Lh~jN;,k(u)Nj.l(v)

i=O j=O

где P;j - векторы задающих точек с компонентами х, у и z, а h;j - однородные координаты задающих точек. Обратите внимание, что узловые значения и диа­

пазоны значений параметров совпадают с указанными в формуле (7.32).

Уравнение (7.40) становится уравнением В-сплайновой поверхности при h;j = 1. Покажите самостоятельно, что при h;j = 1 знаменатель (7.40) тождественно равен

единице. Следовательно, уравнение В-сплайновой поверхности является част­

ным случаем уравнения NURВS-поверхности. Поверхность NURBS к тому же

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

сфера, параболоид и гиперболоид. Эти поверхности называются квадратичными, потому что их уравнения имеют степень 2 по и и v. Уравнение NURВS-поверх­

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

ностей в системах геометрического моделирования.

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

ность, полученная трансляцией кривой (рис. 7.6). Предположим, что трансли­ руемая кривая задана NURВS-уравнением. Это предположение не накладывает

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

узловые значения t" (р =О, 1, ..., т+/), задающие точки Pj (т+ 1 штук).

(7.41)

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

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

кривой совпадают с теми же характеристиками поверхности в соответствующем

направлении. Мы уже показали, что этим свойством обладают В-сплайновые по­

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

ности в одном из направлений, совпадающем с направлением изменения пара­

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

216

Глава 7. Представление поверхностей и работа с ними

 

 

 

одном из краев поверхности буДут точки Pi (рис. 7.6). Далее, порядок поверхно­

сти в направлении v будет равен /, а узловые значения будут равны tP (если на­

правления параметров выбрать так, как показано на рис. 7.6).

Рис. 7.6. Поверхность трансляции

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

нии и. Предполагается, что направление и совпадает с направлением трансляции

(рис. 7.6), а значит, в этом направлении достаточно линейного уравнения. Сле­

довательно, порядок NURВS-кривой в этом направлении будет равен 2 и задаю­ щих точек тоже будет две. Узловые значения в направлении и будут равны О, О, 1, 1, а наборов узловых точек будет два. Один набор, как уже отмечалось, получа­

ется из Pi, а второй набор получается трансляцией Pj на расстояние d в направ­

лении трансляции. Однородные координаты для обоих наборов будут совпадать с hi транслируемой кривой. Итак, координаты х, у и z задающих точек P;,j и одно­ родные координаты h;j описываются следующими выражениями:

Po.j =Pj;

P 1.j

= Pj

+ da;

(7.42)

h0 .

= h1 .

= h.,

 

.)

.J

J

 

где d- расстояние трансляции, а а -

единичный вектор в направлении трансля­

ции.

Уравнение NURВS-поверхности может быть записано так, как показано ниже. Вычисление осуществляется подстановкой нужных значений параметров:

1 т

1(v)

 

 

 

 

 

"""" h. .Р. .N. 2(и)N.

 

 

 

 

 

~ ~ 1,} 1,) ).

 

 

 

1

)

 

- ;.о j

 

~и ~

(7.43)

р(и,V) - --=--т--------

 

, tl-l ~ V ~ tm+l

.

1

L L;h;,jN;.2(и)Nj,t(v)

i•O j20

Обратите внимание, что ~;(v) в уравнении (7.43) определяется узловыми значе­

ниями tp.

NURВS-уравнение (7.43) может использоваться для представления любой по­

верхности, полученной трансляцией кривой. Например, это NURВS-уравнение

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

трансляцией полуокружности, лежащей в плоскости ху, вдоль оси z (рис. 7.7).

Сначала нам нужно задать NURВS-представление полуокружности. Воспользу-

7.7. Пов.ерхность NURBS

217

емся результатами примера 6.6. Задающие точки будут иметь следующие коор­

динаты:

Р0

= (1,0,0),

h0

= 1;

Р1

 

= (1, 1,0),

h1

1

 

= .J2;

Р2

=(0,1,0),

h2

=1;

Р3

=(-1,1,0),

h3

1

= .fi;

р4

=(-1,0,0),

h4

= 1.

порядок кривой должен быть равен 3, а ее узловые значения равны О, О, О, 1, 1, 2, 2. 2. Координаты задающих точек цилиндрической поверхности будут такими:

 

Р0,0

0 ,

Р1,0

0

+Hk, h0,0

=h1,0

=1;

 

Р0,1

= Рр Рц

= Р1

+ Hk,

h0,1

=

1

 

= .fi;

 

Ро.2

= р2'

pl.2

= р2

+ Hk,

ho,2

= h\,2

= 1;

 

Ро.з

= Рз'

Р~,з

= Рз + Hk,

hо.з

= h,:J

1

 

= .fi;

 

Ро.4

= Р4'

Р,,4

= Р4

+ Hk,

ho,4

= h,,4

= 1,

где Р0.о,

Р0,1, ·~02, Р0,3 и Р0.4 обозначают задающие точки нижней дуги, а Р1.0, Р1.1,

Р1,2, Р1,3

и Р1,4 - задающие точки верхней дуги; k- единичный вектор в направ­

лении оси z. NURВS-уравнение цилиндрической поверхности получается под­

становкой P;j и h;j в уравнение (7.43) с учетом того, что l = 3 и т= 4. Узловые

значения в направлении v равны О, О, О, 1, 1, 2, 2, 2, а в направлении и они равны

О, О, 1, 1.

Рис. 7.7. Трансляция полуокружности

Рассмотрим другой пример - поверхность вращения. Пусть вращаемая кривая

лежит в плоскости xz, ось вращения совпадает с осью z, а направление кривоii

совпадает с направлением параметра v создаваемой поверхности (рис. 7.8).

Предположим, что мы имеем дело с NURВS-кривой порядка l с узловыми значе-

218 Глава 7. Представление поверхностей и работа с ними

ниями tP (р =О, 1, ..., т+/) и задающими точками Pj(m + 1 штук) и hj (однород­

ные координаты задающих точек). Можно предположить, что каждая задающая

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

ное сечение (рис. 7.8).

z

_____,.._____

Ps.j

PG,j

P1,j

Рис. 7 .8. Поверхность вращения

Подробное описание этого метода приводится в работе [126]. Девять задающих

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ho· -

 

 

 

 

 

 

 

 

 

 

 

 

 

 

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hl. =h.·-·

 

 

 

 

 

 

 

 

 

 

 

 

 

 

·1

1

.J2'

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Р

·

· -x.i =Р. -x.(i-J'\

h2·1. -

 

2

·1

 

 

1

·1

 

1

 

1

1

"

j

1

Р3.1

 

=Р2,1

1 i =Р1

 

1 (2i- j}

·1. = hj

1

 

 

..J2'

 

 

 

Р

.

 

. -X·J'=P-.2x.i

h4·1 -

 

 

 

 

4·1

 

 

 

3·1

1

 

1

 

1 1

j 1

 

 

 

 

 

 

1 j

= Р1

1 (2i + j}

 

 

1

Р5.1

 

= Р4.1

h5·1. =h.·-·

Рбj

5.1

+x1 i 1

-x1 (i+ j}

h6·1. -

1

.J2'

j 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

h1·1. = hj

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..J2'

 

 

 

 

 

 

 

 

 

Р8 .

 

0

 

. =Р1 ,

hs· =hj.

 

 

 

 

 

 

 

 

 

·1

 

 

·1

·1

 

 

Уравнение поверхности может быть записано в виде

7.8. Интерполяционная поверхность

 

 

 

 

219

в т

 

 

 

 

 

"""" h. . .N.

3

(u)N.

1(v)

 

L.." L.." 1,) 1.)

1,

 

;.

 

 

_ i=Oj=O

 

 

 

 

(7.44)

р(u,v ) ---;;8- , . --------

L L h;.iN;.з(u)Ni.l(v)

i=O j=O

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

что степени 2 достаточно для представления окружности. Узловые значения ~.1 получаются из NURВS-представления вращаемой кривой, а узловые значения

N;.з следуют из узловых значений представления полуокружности: О, О, О, 1, 1, 2,

2, 3, 3, 4, 4, 4.

Чтобы вычислить координаты х, у и z точки на NURВS-поверхности, мы должны

подставить соответствующие ей значения параметров и = u0 и v = v0 в уравне­

ние (7.44). Тогда мы сможем заметить,что числитель и знаменатель в этом выра­

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

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

вычислении числителя h;,jPi.j подставляется вместо P;,j• а при вычислении знаме­

нателя h;,j подставляется вместо P;.j·

Кроме того, можно вычислить производные NURВS-поверхности, применив мето­

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

7.8. Интерполяционная поверхность

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

ния поверхности, проходящей через заданные точки. Особенно часто это требу­

ется при создании геометрической модели по существующей физической. Суще­

ствует множество методов интерполяции точек данных; эти методы основаны на

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

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

Обозначим точки ~•.q (р =О, 1, ..., n; q =О, 1, ..., т) в соответствии с рис. 7.9. По­

скольку эти точки накладывают ( n + 1) х (т+ 1) ограничений, можно выбрать лю­

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

(n + 1) х (т+ 1). Для простоты мы рассмотрим В-сплайновую поверхность, число

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

n

т

(7.45)

P(u,v) = L

LPi.iN;.k(u)Ni.l(v),

i=O j=O

где P;,j- задающие точки. Пусть каждой заданной точке Qp.q соответствуют зна­

чения параметров uP и Vq 1, тогда

(7.46)

1Значение u1, может быть получено методом, описанным о разделе 6.7.2 из узловых значе­

ний, определенных о процессе интерполяции точек Qo.q• Qt.ч• ..., Qп.q В-сплайном. Точно

так же и l'q получается из узловых значений после интерполяции Q.,.o. Qp.t• ..., Qp.m·

220 Глава 7. Представление поверхностей и работа с ними

Можно переписать выражение (7.46), обозначив 'L7=0P;,jNj.l(vч )символом C;(Vq):

 

 

 

n

(7.47)

 

Q".ч = 'LC;(vч)N;,k(up).

 

 

 

i=O

 

Qo.m

 

 

Qп.т

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Qp,q

 

Qo.t•

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Qt,O

 

 

Q,;,o

 

Рис. 7.9. Интерполяция заданных точек

 

Подсталовка значений q = О...т в выражение (7.47) дает

 

 

Q".o

"

 

 

 

 

= LC;(v0 )N;,k(up );

 

 

 

 

i=O

 

 

Q,,,1

n

 

 

= 'LC;(v1 )N;,k(up);

(7.48)

 

 

 

i=O

 

 

 

 

 

Q",m

"

 

 

 

 

= LC;(Vm )N;,k(u 1, );

 

i=O

Подставив значения р = O...n в первую строку выражения (7.48), мы получим за­ дающие точки C;(v0) (i =О, 1, ..., n) В-сплайна, интерполирующего точки Qo,0, Q1.0, ~.о...., Q",0, - первой горизонтальной кривой на рис. 7.10. Аналогично, C;(v1) (i =О, 1, ... , n) -задающие точки В-сплайна, интерполируJQщего точки Qo.1• Q1,1, ~.1.... , (1,,1, - второй горизонтальной кривой на том же рисунке, и т. д. Эти за­ дающие точки интерполяционного В-сплайна получаются методом, описанным в

разделе 6.7.2.

Теперь вычислим задающие точки P;j по C;(vq) (q = О, 1, ..., m). Для этого заnи­

шем определение C;(vq) еще раз:

(7.49)

Если теперь подставить значения q = О...т в формулу (7.49), мы обнаружим, что

P;j - задающие точки В-сплайна, интерполирующего точки C;(v0 ), C;(v1), С;(vт). В частности, точки Poj- это задающие точки В-сплайна, интерполирую­

щего C0(v0), C0(v 1), ... , С0(vт), крайние слева точки на рис. 7.10.

Приведем краткое ОП}'IСание процедуры вывода значений Р;,;:

О заданные точкн интерполируются В-сплайном в одном направлении

(рис. 7.10);

Озадающие точки В-сплайнов, полученных на первом этапе, интерполируются n поперечном направлении: берутся i-e задающие точки всех В-сплайнов из

7.9. Пересечение поверхностей

221

 

 

 

 

первого этапа и интерполируются В-сплайном. Задающие точки нового В­

сплайна будут Р;,о, P;,t, Р;,2, ..., P;,m. Повторив эту процедуру для всех i от О

до n, мы получим все задающие точки P;j·

QD,m

.'=>

Qп,т

 

<t:;::::::::::- о

 

 

 

·~ <Ь.t

 

 

С;(vo)

-~<::::::::::::::

..

QD,o

QI,O

----:::-::;:::;::=~,0

Рис. 7.1 О. Точки C,{vq), получаемые интерполяцией в направлении и

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

делить порядки k и l и узловые значения в направлениях и и v соответственно.

Чаще всего используются поверхности степени 3 по и и v, поэтому обычно бе­

рутся значения k =1=4. Мы знаем, что узловые значения получаются в процессе

вывода интерполяционной кривой (см. раздел 6.7.2). Таким образом мы получа­

ем т + 1 наборов узловых значений в направлении и от всех интерполяционных

кривых с рис. 7.1 О. Из этих наборов можно получить один путем усреднения. Другими словами, i-e узловое значение получается усреднением i-x узловых зна­ чений из каждого из т+ 1 наборов. Узловые значения в направлении v получа­ ются аналогичным образом.

7.9. Пересечение поверхностей

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

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

кривых пересечения. Мы уже говорили, что кривые пересечения поверхностей

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

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

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

ставления поверхностей.

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

класса. Методы первого класса состоят в численном решении приведеиного ниже нелинейнога уравнения:

Р(и,v) -Q(s, t) =О,

(7.50)

где Р(и,v) и Q(s,t)- параметрические уравнения пересекающихся поверхностей.

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

ными: и, v, s и t. Решение этой системы требует присвоения произвольнаго значе­

ния одному из параметров. При этом получаются значения параметров, соответ-

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