Устранение пульсации кривизны на сегментах b-сплайновой кривой с единичными весовыми коэффициентами

Построение кубического сплайна в AutoCAD

Перенос модели кривой в web-приложение

Построение v-кривой и аппроксимация кубической GNURBS кривой

Построение v-кривой и аппроксимация b-сплайновой  кривой 6-ой степени

Построение v-кривой и аппроксимация b-сплайновой  кривой 8-ой степени

Построение v-кривой и аппроксимация b-сплайновой  кривой 10-ой степени

Перенос улучшенной модели в AutoCAD

Выводы

 

 

Eliminating pulsation of curvature on segments of b-spline curve with unit weights

Устранение пульсации кривизны на сегментах b-сплайновой кривой с единичными весовыми коэффициентами

 

B-spline curves of unit weights of low degrees possess the expressed oscillation of the curvature on the segment of spline.

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

 

In AutoCAD 2012 you can build a cubic spline on the base polygon (by defining points). One of the major drawbacks of cubic splines is large oscillation of curvature (pulsation of the curvature) on the spline curve segments. Pulsation of curvature on spline segment particularly clearly is detected on the polyline whose points are uniformly distributed on the circle.

В AutoCAD 2012 можно строить кубический сплайн на опорной ломаной (на определяющих точках). Одним из существенных недостатков кубических сплайнов является большая осцилляция кривизны (пульсация кривизны) на сегментах сплайновой кривой. Пульсация кривизны на сегментах сплайна особенно четко выявляется на ломаной, точки которой равномерно расположены на окружности.

 

In the Web-FairCurveModeler problem is solved radical way

В Web-FairCurveModeler эта проблема решается радикальным образом

 

Show features Web-FairCurveModeler to improve the quality of cubic b-spline, built on the base polyline whose points uniformly distributed on a circle.

Покажем возможности Web-FairCurveModeler для улучшения качества кубических b-сплайновых, построенных на опорной, точки которой равномерно расположены на окружности.

 

The resulting spline curve can be represented by a cubic NURBzS curve or b-spline curve of high degrees (6/8/10).

Результирующая сплайновая кривая может быть представлена как кубическая NURBzS кривая или b-сплайновая кривая высоких степеней (6 / 8 / 10).

 

Construction of a cubic spline in AutoCAD

Построение кубического сплайна в AutoCAD

 

Construct a cubic spline in AutoCAD 2012 on the base polygon whose vertices belong pentagon (Fig. 1), drawn on the unit circle.

Постройте кубический сплайн в AutoCAD 2012 на опорной ломаной, вершины которой принадлежат пятиугольнику  (рис. 1), вписанному в единичную окружность.

 

 

Fig. 1. Cubic spline on a closed base polygon, the vertices of which are uniformly distributed on the unit circle.

Рис. 1. Кубический сплайн на замкнутой опорной ломаной, вершины которой расположены равномерно на единичной окружности.

Enable the option display the control vertices of s-polygon (Fig. 2)

Включите опцию  отображения управляющих вершин s-полигона (рис.2)

Fig. 2. Displaying control vertices of s-polygon.

Рис. 2. Отображение управляющих вершин s-полигона.

 

Use the command v_test of application v_test.fas to analyze the quality of the constructed curve (Fig. 3).

Используйте команду v_test приложения v_test.fas для анализа качества построенной кривой (рис.  3).

Fig. 3. The curvature graph and the graph of centers of curvature of constructed spline.

Рис. 3. График кривизны и центров кривизны построенного сплайна.

 

The protocol are displayed the geometric characteristics the curve

В протокол выводятся геометрические характеристики кривой

"----------------"

"Real Length = " 6.2528

"Approximated Length = " 6.25176

"Potential Energy = " 6.35975

"Min Curvature = " 0.909883

"Max Curvature = " 1.17595

"----------------"

As we can see, for a cubic b-spline curve with unit weights pulsation of curvature is significant:

pulsation = (- 1.17595 0.909883) = 0.266067.

Как видим, для кубической b-сплайновой кривой с единичными весовыми коэффициентами пульсация кривизны существенна:

пульсация = (- 1.17595 0.909883) = 0.266067.

At the pentagon runout is more than 26% of the nominal value of the curvature.

На пятиугольнике биение составляет более 26 % от номинального значения кривизны.

Such a curve needs to be improved.

Такую кривую нужно улучшить.

 

Improve curve in Web-FairCurveModeler.

Улучшим кривую в Web-FairCurveModeler.

We derive to protocol the DXF-spline model. Paste into the command line the following  fragment AutoLISP:

(entget (car (entsel "select NURBS"))) <ENTER>

Выведем в протокол DXF-модель сплайна. Вставим в командную строку следующий фрагмент команд AutoLISPа:

(entget (car (entsel "select NURBS"))) <ENTER>

Specify a curve.

Укажите кривую.

Fig. 4. DXF-spline model in the AutoCAD 2012 protocol.

Рис. 4. DXF-модель сплайна в протоколе AutoCAD 2012.

 

Highlight and saved into the clipboard the DXF-model of spline:

Выделите и сохраните в буфере памяти DXF-модель сплайна:

((-1 . <Имя объекта: 7ffff605b50>) (0 . "SPLINE") (330 . <Имя

объекта: 7ffff6039f0>) (5 . "22D") (100 . "AcDbEntity") (67 . 0) (410 .

"Model") (8 . "0") (100 . "AcDbSpline") (210 0.0 0.0 1.0) (70 . 2059) (71 . 3)

(72 . 12) (73 . 8) (74 . 0) (42 . 1.0e-010) (43 . 1.0e-010) (40 . 0.0) (40 .

0.0) (40 . 0.0) (40 . 0.0) (40 . 1.17557) (40 . 2.35114) (40 . 3.52671) (40 .

4.70228) (40 . 5.87785) (40 . 5.87785) (40 . 5.87785) (40 . 5.87785) (10

-0.951057 0.309017 0.0) (10 -0.823776 0.700746 0.0) (10 -3.33067e-016 1.29925

0.0) (10 1.23566 0.401492 0.0) (10 0.763682 -1.05112 0.0) (10 -0.763682

-1.05112 0.0) (10 -1.07834 -0.0827118 0.0) (10 -0.951057 0.309017 0.0))

 

Transfer of curve model to web-application

Перенос модели кривой в web-приложение

 

To improve the quality of spline open web-application WebFairCurveModeler> Enter your username and email address> Go to NURBS3D.

Для улучшения качества сплайна откройте web-приложение WebFairCurveModeler > Введите логин и почтовый адрес > Перейдите на страницу NURBS3D.

 

Paste the text from the clipboard memory in the text box Instructions and Messages (I & M)> NURBS Model from AutoCAD> [Create]. Web-application reconstruct the original spline (Fig. 5).

Вставьте текст из буфера памяти в текстовое поле Instructions and Messages (I&M) > NURBS Model from AutoCAD > [Create]. Web-приложение перестроит исходный сплайн (рис. 5).

Fig. 5. Initial spline on page NURBS3D.

Рис. 5. Исходный сплайн на странице NURBS3D.

 

In the text box I & M the parameters of spline are displayed:

В текстовом поле I&M выводятся параметры сплайна:

Length = 6.2486660187125205

Max Curvature = 1.175967292699348

Min Curvature = 0.909881093224568

Potential Energy = 6.366355911992651

Convert the spline to NURBzS format ([Convert to Bezier Spline]> [Create]) and go to NURBzS ([to Bezier Spline]) (Fig. 6).

Конвертируйте сплайн в NURBzS формат ([Convert to Bezier Spline] > [Create]) и перейдите на страницу NURBzS ([to Bezier Spline]) (рис. 6).

Fig. 6. Spline in the NURBzS format on the page NURBzS3D.

Рис. 6. Сплайн в NURBzS формате на странице NURBzS3D.

 

Go to the page Polyline3D ([to Base Polyline]) (Fig. 7).

Перейдите  на страницу Polyline3D ([to Base Polyline])(рис. 7).

Fig. 7. Initial spline on the page Polyline3D.

Рис. 7. Исходный сплайн на странице Polyline3D.

 

Construction of v-curve and approximation by the cubic GNURBzS  curve

Построение v-кривой и аппроксимация кубической GNURBzS кривой

 

GD contains the tangent vector and the curvature value, inherited from the original spline. Remove the sequentially values ​​of curvature at the end points, tangents, and then the last point of an open polyline. Close the polyline. Rebuild the curve.

ГО содержит касательный вектор и значение кривизны, унаследованные от исходного сплайна. Удалите последовательно значения кривизны в концевых точках, касательные векторы и затем последнюю точку незамкнутой ломаной. Замкните ломаную. Перестройте кривую.

 

Fig. 7. Reconstructed curve on a closed polyline.

Рис. 7. Перестроенная кривая на замкнутой ломаной.

 

This v-curve in format of the cubic NURBzS. By default, v-curve is approximated NURBzS of the cubic curve.

Это v-кривая в формате кубической NURBzS. По умолчанию v-кривая аппроксимируется кубической NURBzS кривой.

Parameters v-of the curve in the format of NURBzS:

Параметры v-кривой в формате NURBzS:

Length = 6.2790372032132975

Max Curvature = 1.0000021040826053

Min Curvature = 0.9999992629002729

Potential Energy = 6.279045737525304

Pulsation  = (- 1.0000021040826053 0.9999992629002729) = 2.84118e-006.

Пульсация = (- 1.0000021040826053 0.9999992629002729) = 2.84118e-006.

 

Construction of v-curve and approximation by the b-spline  curve of 6th degree

Построение v-кривой и аппроксимация b-сплайновой  кривой 6-ой степени

 

Go to the format of b-spline curve. In the region of Approximation: Enable the option (*) by B-Spline. Degree set at 6.

Перейдите к формату b-сплайновой кривой. В области Approximation: Включите опцию (*) by B-Spline. Степень установите на 6.

Rebuild the curve (Fig. 8).

Перестройте кривую (рис. 8).

Fig. 8. V-curve, approximated by b-spline curve of degree 6.

Рис. 8. V-кривая, аппроксимированная b-сплайновой кривой степени 6.

 

Quality Params of Curve:

Length = 6.282148547160382

Max Curvature = 1.000017109070121

Min Curvature = 0.9999829152260035

Potential Energy = 6.282155084618418

Pulsation = (- 1.000017109070121 0.9999829152260035) = 3.41938e-005.

Пульсация = (- 1.000017109070121 0.9999829152260035) = 3.41938e-005.

 

Construction of v-curve and approximation by the b-spline  curve of 8th degree

Построение v-кривой и аппроксимация b-сплайновой  кривой 8-ой степени

 

Reconstruct the curve. Increase the degree to eighth.

Перестроим кривую. Увеличим степень до 8-ой.

 

Fig. 9. V-curve, approximated by b-spline curve of degree 8.

Рис. 9. V-кривая, аппроксимированная b-сплайновой кривой степени 8.

 

Параметры качества кривой:

Length = 6.2821475409143614

Max Curvature = 1.000002754400678

Min Curvature = 0.9999982030868725

Potential Energy = 6.282156090333807

Pulsation = (- 1.000002754400678 0.9999982030868725) = 4.55131e-006

Пульсация = (- 1.000002754400678 0.9999982030868725) = 4.55131e-006

Construction of v-curve and approximation by the b-spline  curve of 10th degree

Построение v-кривой и аппроксимация b-сплайновой  кривой 10-ой степени

 

Continue experiment. Increase the degree to 10th (Fig. 10).

Продолжайте эксперимент. Увеличьте степень до 10-ой (рис. 10).

Fig. 10. V-curve, approximated by b-spline curve of degree 10.

Рис. 10. V-кривая, аппроксимированная b-сплайновой кривой степени 10.

 

The quality parameters:

Параметры качества:

Length = 6.282147526974593

Max Curvature = 1.000003226712114

Min Curvature = 0.9999981441193138

Potential Energy = 6.282156104281179

Pulsation = (- 1.000003226712114 0.9999981441193138) = 5.08259e-006

Пульсация = (- 1.000003226712114 0.9999981441193138) = 5.08259e-006

Note that on the 8th degree reaches a minimum value of pulsation for a given precision of approximation of 0.0000001. Raising up to the 10th not reduces the pulsation of curvature on the segment.

Отметим, что на 8-ой степени достигается минимальное значение пульсации при заданной точности приближения 0.0000001. Повышение степени до 10-ой  уже не уменьшает пульсацию кривизны на сегменте.

 

 

Transfer of improved model to AutoCAD

Перенос улучшенной модели в AutoCAD

 

Transfer the improved model spline AutoCAD 2012 ([NURBS Model to AutoCAD]> Highlight text in I & M and copy to the memory buffer (Figure 11).

Перенесем улучшенную модель сплайна в AutoCAD 2012 ([NURBS Model to AutoCAD] >  Выделите текст в I&M и скопируйте в буфер памяти  (рис. 11).

Fig. 11. Copying the DXF-model of curve to the memory buffer.

Рис. 11. Копирование DXF-модели кривой в буфер памяти.

 

Go to the AutoCAD 2012 and paste the text from the clipboard to the command line (see Figure 12).

Перейдите в AutoCAD 2012 и вставьте скопированный текст из буфера в командную строку (рис. 12).

Fig. 12. Transfer of b-spline curve to AutoCAD 2012.

Рис. 12. Перенос b-сплайновой кривой в AutoCAD 2012.

 

Check the quality of the improved curve with the command v_test of utility v_test.fas (Fig. 13).

Проверьте качество улучшенной кривой с помощью команды v_test утилиты v_test.fas (рис. 13).

Fig. 13. Checking the quality of the improved curve.

Рис. 13. Проверка качества улучшенной кривой.

 

In the protocol are printed the parameters of the curve:

В протоколе распечатываются параметры кривой:

"----------------"

"Real Length = " 6.28318

"Approximated Length = " 6.28292

"Potential Energy = " 6.28293

"Min Curvature = " 0.999998

"Max Curvature = " 1.0

"----------------"

 

the conclusions

Выводы

 

1) B-spline cubic curve created in AutoCAD on a closed polygon as pentagon has a low quality. Pulsation of curvature reaches the segments to 0.266067, or 26% of the nominal value of the radius.

1) B-сплайновая кубическая кривая, построенная в AutoCAD на замкнутой ломаной пятиугольника обладает низким качеством. Пульсация кривизны достигает на сегментах до 0.266067 или 26% от номинального значения радиуса.

2) The technology is proposed of improving the cubic b-spline curves constructed in AutoCAD in web-application FairCurveModeler: improving the quality of the curve by the construction v-curve and approximation of the curve by the cubic GNURBzS curve or a b-spline curve of high degree.

2) Предложена технология улучшения кубических b-сплайновых кривых, построенных в AutoCAD, в web-приложении FairCurveModeler: улучшение качества построением v-кривой и аппроксимацией v-кривой кубической GNURBzS кривой или b-сплайновой кривой высоких степеней.

3) The proposed technology significantly improves the quality of cubic b-spline curves constructed in AutoCAD:

- approximation of v-curve by by the cubic NURBzS curve reduces the pulsation to 2.84118e-006;

- approximation of v-curve by b-spline curve 6th degree reduces the pulsation to 3.41938e-005.

- approximation of v-curve by b-spline curve 8th degree reduces the pulsation to 4.55131e-006.

- approximation of v-curve by b-spline curve tenth degree reduces the pulsation to 5.08259e-006.

 3) Предложенная технология существенно улучшает качество b-сплайновых кубических кривых, построенных в AutoCAD:

- аппроксимация v-кривой посредством кубической NURBzS кривой уменьшает пульсацию до 2.84118e-006;

- аппроксимация v-кривой b-сплайновой кривой 6-ой степени уменьшает пульсацию до 3.41938e-005.

 - аппроксимация v-кривой b-сплайновой кривой 8-ой степени уменьшает пульсацию до 4.55131e-006.

- аппроксимация v-кривой b-сплайновой кривой 10-ой степени уменьшает пульсацию до 5.08259e-006.