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



Цитировать

Полный текст

Аннотация

Рассмотрен расчёт геометрических характеристик плоских фигур, контуры которых опи- саны кубическими сплайновыми кривыми. Получены точные формулы для вычисления пло- щади и статических моментов. Формулы позволяют определять положение центра тяжести фигур и объёмы тел, образованных вращением фигур вокруг оси.

Полный текст

Формулы для расчета геометрических характеристик плоских фигур, ограниченных кубическими сплайновыми кривыми доц. Калядин В.И. Университет машиностроения 8(495)-223-05-23 (1482), vi_kadin@mail.ru Аннотация. Рассмотрен расчёт геометрических характеристик плоских фигур, контуры которых описаны кубическими сплайновыми кривыми. Получены точ- ные формулы для вычисления площади и статических моментов. Формулы позво- ляют определять положение центра тяжести фигур и объёмы тел, образованных вращением фигурвокруг оси. Ключевые слова: кубические сплайновые кривые, сегмент кривой, парамет- ризация, статический момент площади. В технических приложениях часто требуется представлять плавные обводы плоских сечений деталей гладкими кривыми. Требуемые расчёты геометрических характеристик се- чений, таких как площади и различные моменты, обычно выполняют по координатам точек этих кривых. С развитием компьютерной геометрии для описания гладких контуров стали использовать кубические сплайновые кривые. Формы представления этих сплайновых кри- вых могут различаться, например, это могут быть классические параметрические сплайны [1] или В-сплайны [2] с лонгальным параметром l [1], выражающим длину ломаной, опирающейся на узлы (где l  ln , n  1,, N ) сплайна. А возможно будут использованы В-сплайны или фундаментальные сплайны [3] с параметром t , изменяющимся на единицу при переходе через узлы. Однако у всех этих кривых сегменты представляются кубическим параметриче- ским полиномом. Поэтому расчёты геометрических характеристик сечений, которые ограни- чены сплайновыми кривыми, естественно ориентировать на параметры сегментов этих кри- вых. Вывод формул для таких расчётов, позволяющих вычислять площади и статические моменты, представлен далее. Площадь внутри замкнутого контура C определяется по формуле S  1  (x  dy  y  dx) . (1) 2 C Заметим, что если обход контура выполнять против хода часовой стрелки, то модуль- ные скобки в формуле можно опустить. В случае задания контура в виде полигона площадь (площадь многоугольника) вычисляется по xn , yn -координатами его вершин: 1 N . (2) 2 S  n1xn1 yn  xn yn1  В случае, когда контур C образован замкнутой сплайновой кривой, ограниченную им площадь S можно точно выразить через параметры этой кривой, суммируя составляющие Sn площади по её сегментам: N S  n1 Sn . (3) С целью вычислить составляющие Sn по сегментам рассмотрим для кубической сплайновой кривой V(t) представление её n-го сегмента Vn (t) Vn (t)  Pn1 (t)  Pn  (t)  hn  Tn1  (t)  hn  Tn (t), N t 0, 1, (4) hn  ln  ln1, L  n1 hn (5) где: Vn (t)  X n n tY tT - вектор-функция и составляющие вектора, Pn1, Pn - векторы точек начала и конца сегмента ( Pn  xn n y T ), hn - длина звена ломаной в представлении лонгального параметра (иначе hn  1), Tn1, Tn - векторы касательных в начале и в конце сегмента ( Tn  dV dl  TX n T TY n  ), 2 3 (6)  (t)    3t 2  2t3 , (7)2  (t)    t  2t 2  3t3 , (8)3 (t)    t 2 1 t . (9)4 (t), (t),  (t),(t) - весовые функции: (t)  1  1 3t  2t , Составляющую площади, ограниченную замкнутым контуром, можно вычислить по формуле: 1 1 1 1 1   Si  2   Vi  dVi 2 2    Vi (t)  dVi (t)    X i (t)  Y (t)  X (t)  Y (t)dt . (10) C 0 0 Представим весовые функции и определяющие параметры сплайна в форме векторов: Φ      T  (t) (t)  (t) (t)T , Π  P P h T h T T , (11) 1 2 3 4 n1 n n n1 n n а сегмент представим в виде внутреннего произведения этих векторов: n V (t)  ΦT Π . (12) T T  T (13) Y (t)  ΦT v  ΦT y y h T h T T , (14)n n n1 n n Y n1 n Y n X (t)  Φ T u  Φ T x x h T h T T , (15)n n n1 n n X n1 n X n Y (t)  Φ T v  Φ T y y h T h T T , (16)n n n1 n n Y n1 n Y n Аналогично записываются произведения для проекций: X n (t)  Φ un  Φ xn1 xn hn TX n1 hn TX n , где вектор Φ  (t) (t) (t) (t)T (17) содержит (обозначенные точкой) производные от весовых функций по параметру. Перпишем теперь интеграл (10) с учётом (13)-(16): S  1 1  uT ΦΦ T v uT Φ ΦT v dt  1  uT 1 ΦΦ T Φ ΦT dt  v  1  T u A vn , (18) 2 n  n 0 2 n n n n  0 n 2 n где элементы (4×4)-матрицы A представляют собой интегралы: 1 ai, j   i t  j t  i t  j t dt , [ai, j ]  A , (19)   0 от разности весовых функций и их производных. После вычисления этих интегралов получаем матрицу:  0 1  1 5 1 5   1 A   0 1 5 1 5  . (20) 15 15  0 130   15 1 5 130 0  Суммирование составляющих Si по всем N участкам замкнутой сплайновой кривой даёт формулу для вычисления площади: N 1 N T S  n1 Sn  2  n1 un A vn , (21) где: T un  uk n  [u1 u2  T u3 u4]n  [xn1 xn hn TX n1 hn TX n ] , (22) vn  vkn  [v1 v2 v3 v4]n  [ yn1 yn hn TY n1 hn TY n ] . (23) Отметим, что если параметр на сегменте сплайновой кривой меняется от нуля до единицы, то шаг hn=1 в формулах (22), (23) может быть опущен. Имея это в виду и обозначая для краткости производные hn TX n , hn TY n по параметру t соответственно через pn , qn : pn1  hn TX n1, pn  hn TX n , qn1  hn TY n1, qn  hn TY n , (24) приведём запись формулы (21) в виде алгебраического (не матричного) выражения: S  1  N x y  x y    xn1  xn qn1  qn   yn1  yn pn1  pn   pn1qn  pn qn1  . (25) 2 n1   n1 n n n1 5 30  Заметим также, что в случае нулевых производных, когда сплайновая кривая вырожда- ется в полигон, «работает» только левая верхняя (2×2)-часть матрицы A в формуле (20) и первое слагаемое в квадратных скобках формулы (25). При этом формулы совпадают с упо- мянутой выше формулой (2). Рассмотрим теперь вычисление статического момента площади, например, относитель- но оси OY. Этот момент определим интегралом: 1 2 1 L 2 2  MY   x C dy  x(l) 2 0 y(l)  dl , (26) предполагая, что контур C обходится против движения часовой стрелки. Также как в случае площади организуем суммированием по сегментам: N где: MY  n1 MY n , (27) 1 1 2 MY n  2 0 xn (t)  yn (t)  dt , (28) Представим формулу с введёнными выше обозначениями: 1 1 T T  T 1 1 T T MY n  2 0 u ΦΦ u  Φ v  dt    u ΦΦ 2 u  Y 1 (t)  Y  (t)  h T   (t)  h T (t) dt  0 n n 1 T 1 T n Y n 1 1 T 1 n Y n T (29)  Yn1  u 2 0 ΦΦ (t)dt  u  Yn  u 2 0 ΦΦ  (t)dt  u  1 T 1 T 1 T 1 T  hn TY n1  u 2 0 ΦΦ  (t)dt  u   hn TY n  u 2 0 ΦΦ (t)dt  u Обозначив интегралы как: B   ΦΦ  (t)dt  b      dt , (30) 1 T  1  k 0 k i, j,k  0 i j k запишем формулу для составляющих статического момента: M  1 4 vk  u T B u , (31) Y n 2 k 1 n n k n а статический момент всего сечения определим формулой: M  1  N 4 vk  u T B u , (32) Y 2 n1 k 1 n n k n где симметричные матрицы Bk имеют вид:  1 1 5 17   1 1 5  17    3  6  84 420   3 6 84 420   1 6 3 420 84  , B2   6 3 420 84  5  17  1 1   5 17  1 1    B1      1  17 5   1 1   17 5   ,  84 420 84 420 84 105 17 5 1  1 84 105     17 5   420 84  5 2 1 105 1 1    84  1     420  17 84 105 2 11   84  1  (33)  42  105 168 280   210  105  840 168   2 17 1    11    2 5    1  1  B3   105 210 168 840  , B4   105 42 280 168 .  1  1 0 1   11  1  1 1   168 168 840   840 280 420 840   1 11   1 1    1 1 1    0   280 840 840 420   168 168 840  Первые две матрицы связаны соотношением B1= -B2, а матрицы B3,B4 можно предста- вить как клеточные тремя подматрицами размером (2×2): B   H C  ,  H (C )  3  T  B4   diagT diagT T CdiagT WdiagT  , (34) C W   где оператор diagT означает перемену местами элементов главной диагонали указанных (2×2)-матриц. Опираясь на это выведем иной вариант формулы для расчёта статического момента: M  N M k 1,2  M k 3,4  (35) Y n1 Yn Yn с алгебраическим (не матричным) выражением для вычисления внутренней суммы в (32). Учитывая равенство B2  B1 , запишем: k 1,2 1 2  T  1   T MYn 2  k 1 vkn  un Bk un  yn  yn1 2  un B2un , (36) где переписанный в обозначениях (24) правый сомножитель равен: x2  x x  x2 17x  p  25x  p  x  p  17x  p p2 2  p p p2 u T B u  n 1 n 1 n n  n 1 n n n n 1 n 1 n n 1  n 1  n 1 n  n . (37) n 2 n 3 210 84 105 84 Второе (из двух взятых в скобки) слагаемое в (35) представляется в следующем виде: k 3,4 1 4  T  1  3 4 MYn 2  k 3 vkn  un Bk un  qn1  F 2 qn  F , (38) где слагаемые в (38) определяются выражениями: q F 3  q   xn1  xn  (25xn1 17xn )  ( pn1  pn ) pn 1 3xn1 11xn  pn   n1 n1  105 210 420    (39) qn1 5(xn1  xn )  pn1 420 q F 4  q   xn  xn1  (25xn 17xn1 )  ( pn  pn1 ) pn1 1 3xn 11xn1  pn1   n n  105 210 420    (40) qn 5(xn1  xn )  pn 420 ями: В итоге представим (35) как выражение с алгебраическими (а не матричными) операци- 1 N  2 M  y y 2 2   xn1  xn1xn  xn f (x , x , p , p , 1) f (x , x , p , p  , 1) Y    n1  n  n1     3 n1 n n1 n   n n1 n n1     (41) q  f 1 x , x , p , p , 1  q  f 1 x , x , p , p , 1  5   xn1  xn  qn1 pn1  qn pn  n1 где: n1 n n1 n n n n1  n n1 420  f (a, b, c, d, sgn)  sgn (25c 17d )   a  c  d     c (42) 210  84 105  f 1(a, b, c, d, sgn)  a  b (25a 17b) 210 (c  d )  sgn 3a 11b  d 420 (43) Покажем, что представленные формулы (32) и (41) - (43) в случае вырождения замкну- той сплайновой кривой в полигон (при нулевых производных) дадут совпадение с формулой: 2 2 M  1 N  y  y  yn1  yn1 yn  yn (44) Y 2 n1 n n1 3 для статического момента многоугольника. Действительно, используя в (32) и в (41) - (43) только первые две компоненты xn1, xn , yn1, yn  векторов u, v и считая нулевыми две последние (связанные с производными) компоненты этих векторов, получаем формулу (44). Для вычисления статического момента относительно оси OX при сохранении направления обхода контура перед множителем ½ следует указать знак «-», а в формуле (32) поме- нять местами векторы u и v: 1 N 4  T  . 2 M X    n1 k 1 ukn  vn Bk vn (45) В формулах (41)-(43) для вычислении момента M X , указав знак «-» прерд множителями ½, следует также поменять местами компоненты xn1 и yn1 , xn и yn , а также компоненты pn1 и qn 1 , pn и qn . Рассмотрим в качестве примера представление четырьмя сегментами замкнутой куби- ческой параметрической сплайновой кривой окружности радиуса r = 2, получаемой в мери- диональном сечении тора (рисунок 1), для которого расстояние от оси тора до центра ука- занной окружности составляет R = 3. Рисунок 1. Тор с r=2 и R=3 При лонгальной параметризации длины hn (n  1,,4) хорд сегментов равны 8 , то есть hn  8 . Координаты узлов и производные по лонгальному параметру следующие:  5  0   0   4  2 2              x  1  , y   0   , T  0  , T    4  2 2 . u   xn  , v   yn  (46)     X   Y   n  h T  n  h T   3  2   4  2 2   0   n Xn1   n Yn1           hn TXn   hn TYn   5  0   0   4  2 2      Вычисленная по формуле (21) и/или (25) площадь внутри представляемой окружности составит: S  4 S  1  N uT A v  12.569889 (47) n1 n 2 n1 n n (площадь круга составляет S=12.56637). Вычисленный по формуле (32) и/или формулам (41)-(43) статический момент MY пред- ставляемой площади круга равен: M  1  4 4 vk  u T B u  37.709668 (48) Y 2 n1 k 1 n n k n (статический момент круга составляет 37.699112). Можно вычислить объём тора, полученный как тело вращения представляемой окруж- ности: V  2  MY  236.9368319 (49) (объём изначально заданного тора составляет 236.870506). Таким образом, в примере выполнен расчёт указанных геометрических характеристик по параметрам кубической сплайновой кривой, заданным всего лишь в четырёх её узлах. За- метим, что при аппроксимации контура полигоном для достижения той же точности потре- бовалось более 150 узлов (вершин полигона). Когда определяющий параметр t сплайновой кривой изменяется на сегменте от 0 до 1, в формулах для un и vn следует непосредственно задавать производные по этому параметру. Так следует сделать для фундаментального сплайна, а использованным выше производным dVdt  hn TYn  8  4  2 2  3.314 в таком случае будет соответствовать фундаментальный сплайн с параметром натяжения w  1 8  2  2  0.657 и соответственно «степенью гладкости» («tension» в [3]) s  1 w/ 2  0.828 . Другие примеры применения формул для вычисления площадей и моментов площадей, ограниченных замкнутыми сплайновыми кривыми, можно найти в [4]. Выводы Представленные здесь (в матричном виде и в виде алгебраического выражения) форму- лы (21), (25) и (32), (41)-(43) позволяют точно вычислять площади и соответственно статиче- ские моменты площадей, ограниченных замкнутыми кубическими сплайновыми кривыми, которые часто используются для описания контуров объектов в технических приложениях. Формулы также могут использоваться для вычисления объёмов тел вращения плоских фи- гур, описываемых кубическими сплайновыми кривыми.
×

Об авторах

В. И Калядин

Университет машиностроения

Email: vi_kadin@mail.ru
доц.; +7(495)-223-05-23 (1482)

Список литературы

  1. Завьялов Ю.С., Леус В.А., Скороспелов В.А. Сплайны в инженерной геометрии. М.: Машиностроение, 1982, 304 с.
  2. Gordon W., Riesenfeld R. B-spline. Curves and Surfaces. In Computer - Aided Geometric De- sign, New-York, Academic Press, 1974. P. 95-126.
  3. Microsoft Document Explorer, GDI+, DrawClosedCurve-metod, Microsoft Corp. 2008.
  4. Калядин В.И. Численные методы: решение задач в Excel на VBA. Часть 1. М.: Университет машиностроения, 2013. 142 с.

Дополнительные файлы

Доп. файлы
Действие
1. JATS XML

© Калядин В.И., 2015

Creative Commons License
Эта статья доступна по лицензии Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

Данный сайт использует cookie-файлы

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

О куки-файлах