Formulas for calculation of geometric characteristics of plane figures, restricted by cubic spline curves



Cite item

Full Text

Abstract

The article describes calculation of geometric characteristics of plane figures, which outlines are described by cubic spline curves. The authors obtained the exact formula to calculate area and static moments. The formulas allow to define the position of the center of gravity of figures and volumesof bodies formed by rotation of shapes around the axis.

Full Text

Формулы для расчета геометрических характеристик плоских фигур, ограниченных кубическими сплайновыми кривыми доц. Калядин В.И. Университет машиностроения 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) позволяют точно вычислять площади и соответственно статиче- ские моменты площадей, ограниченных замкнутыми кубическими сплайновыми кривыми, которые часто используются для описания контуров объектов в технических приложениях. Формулы также могут использоваться для вычисления объёмов тел вращения плоских фи- гур, описываемых кубическими сплайновыми кривыми.
×

About the authors

V. I. Kalyadin

Moscow State University of Mechanical Engineering (MAMI)

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

References

  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 с.

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2015 Kalyadin V.I.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies