Content

 

1. Drawing the NURBS-sketch of the modeling curve in the AutoCAD.. 4

1. Построение эскиза  моделируемой кривой в AutoCAD.. 4

2. Transferring  the NURBS model to the application. 5

2. Передача в приложение FairCurveModeler. 5

3. Modeling NURBS curves of high quality in the application "FairCurveModeler in Mathematica". 6

3. Моделирование NURBS кривых высокого качества в приложении “FairCurveModeler in Mathematica  6

Bibliography. 21

Библиография. 21

 

The description of technology of modeling curves of high quality

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

 

NURBS-эскиз

NURBS-эскиз

Modeling of the curve of high quality starts in the CAD-system. Any NURBS curve drawn in the CAD-system is regarded as the sketch of the modeling curve.

Моделирование кривой высокого качества начинается в CAD-системе. Любая NURBS кривая, нарисованная в CAD-системе, рассматривается как эскиз моделируемой кривой.

 

Structuring the modeling curve by the geometrical determinant of Hermite

Структуризация моделируемой кривой посредством геометрического определителя  Эрмита

 

For the structuring of curve on NURBS- sketch is used with the geometrical determinant of Hermite (Hermite GD).

Для структуризации кривой на NURBS-эскизе используется геометрический определитель Эрмита (ГО Эрмита).

Hermite GD in the general case includes a base polyline, tangent vectors at the vertices of the base polyline, vectors of curvature or values of curvatures.

ГО Эрмита в общем случае содержит опорную ломаную,  касательные векторы в вершинах опорной ломаной, векторы кривизны или значения кривизны

 

Condition of similarity of form

Условие изогеометричности

 

The base  polyline of Hermite GD defines curve shape up to a number of inflection points and the position of sites of the inflection.

Опорная ломаная ГО Эрмита структурирует форму кривой с точностью до количества точек перегиба и положения участков перегиба кривой.

 

The modeling curve should be geometrically similar (isogeometic) to the shape of a polyline.

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

 

If Hermite GD consists only of a base polyline - it is Hermite GD of 0-order fixation on the base polyline.

Если ГО Эрмита состоит только из опорной ломаной – то это ГО Эрмита 0-го порядка фиксации на опорной ломаной.

Hermite GD -  Hermite GD of 0-order fixation on tangent lines or on tangent polyline, if the modeled curve touches the tangent lines or segments of tangent polyline. Contact points are not fixed.

ГО Эрмита - ГО Эрмита 0-го порядка фиксации на касательных прямых или на касательной ломаной, если моделируемая кривая касается касательных прямых или сегментов касательной ломаной. Точки соприкосновения не фиксированы.

 

Hermite GD - Hermite GD of 1st-order fixation on the base polyline, if at some or at all vertices of the base polyline given vectors tangent to the modeling curve. Tangent vectors specify the structure of the curve. Direction vectors must not contradict the structure of the curve defined by the base polyline. Curve must pass exactly through the control points and tangents to the curve at the base points should coincide with fixed vectors of Hermite GD.

ГО Эрмита - ГО Эрмита 1-го порядка фиксации на опорной ломаной, если в некоторых или во всех вершинах опорной ломаной заданы векторы касательных к моделируемой кривой. Векторы касательных уточняют структуру кривой. Направления векторов не должны противоречить структуре кривой, определенной опорной ломаной. Кривая должна проходит точно через опорные точки и касательные векторы к кривой в опорных точках должны совпадать с фиксированными векторами ГО Эрмита.

Hermite GO - Hermite GO of 1st order fixation on tangent lines or on tangent polyline, if some or all of the tangent lines or segments of tangent polyline specified by fixed point of contact to the curve.

ГО Эрмита - ГО Эрмита 1-го порядка фиксации на касательных прямых или касательной ломаной, если на некоторых или на всех касательных прямых  или сегментах касательной ломаной заданы фиксированные точки касания к кривой.

 

Hermite GO - Hermite GD of 2nd-order fixation, if at the base polyline vertices are given vectors of curvature or values of curvature.

ГО Эрмита - ГО Эрмита 2-порядка фиксации – в вершинах опорной ломаной заданы векторы кривизны или значения кривизны.

 

Hermite GO - Hermite GD full of 2nd-order fixation, if at all the base polyline vertices are given tangent vectors and vectors of curvature or values of curvature.

ГО Эрмита - ГО Эрмита полный 2-порядка фиксации, если во всех вершинах   опорной ломаной заданы векторы касательных и векторы или значения кривизны.

 

Hermite GD - Hermite GD of 0,2-order fixation on the base polyline, if at some or at all vertices of the base polyline are given only the values ​​of curvature. For example, at the inflection points or at fixed points on the straight site.

ГО Эрмита - ГО Эрмита 0,2-порядка фиксации на опорной ломаной, если в некоторых или во всех точках заданы только значения кривизны. Например, если фиксированы точки перегиба или точки на прямолинейном участке.

 

Improvement and subdivision the Hermite GD

Улучшение и уплотнение  ГО Эрмита

Improvement of Hermite GD - an intermediate step in the formation of the curve. Improvement of Hermite GD performed by creating v-curve (virtual curve of high quality [Muftejev 80]) on some elements of Hermite GO (on the base polyline or on the tangent polyline) and modifying other elements of Hermite GD with parameters of v-curve. Improvement may be followed by subdivision the Hermite GD with  points, tangent vectors and curvatures, taken from v-curve.

Улучшение ГО Эрмита - промежуточный этап в формировании кривой. Улучшение ГО Эрмита выполняется путем  построения v-кривой (виртуальной кривой высокого качества [Muftejev 80]) на некоторых элементах ГО Эрмита (на опорной ломаной или касательной ломаной) и изменением других элементов ГО Эрмита параметрами v-кривой. Улучшение может сопровождаться уплотнением ГО Эрмита точками, касательными векторами и значениями кривизны, взятых с v-кривой.

 

Approximation of Hermite GD

Аппроксимация ГО Эрмита

The final industrial presentation the curve - NURBS curve. Hermite GD approximated with NURBS curve by two methods:

Конечная индустриальная форма представления кривой - NURBS кривая. Для аппроксимации ГО Эрмита посредством NURBS кривой используются два метода:

1) Isogeometric approximation of Hermite GD of 2th-order fixation with the NURBzS curve of 3rd or 6th degree [Muftejev 2007 MAI]. NURBzS curve of 6th  degree is used to approximate the spatial Hermite GD with ensuring the continuity of torsion.

1) Изогеометрическая аппроксимация ГО Эрмита 2-го порядка фиксации NURBzS кривой 3-ей или 6-ой степени [Muftejev 2007 MAI]. NURBzS кривой 6-ой степени используется для аппроксимации пространственных ГО Эрмита с обеспечением непрерывности кручения.

2) ) Isogeometric approximation of Hermite GD of 1st -order fixation by b-spline curve of high degree m (m = 6,8,10)

[Muftejev 2009 Donetsk]. Note that nodes of b-spline curve does not coincide with the points of the base polyline, although b-spline curve passes exactly through the base points.

Approximation methods retain quality v-curve used in improving Hermite GD.

2) Изогеометрическая аппроксимация ГО Эрмита 1-го порядка фиксации b-сплайновой кривой высоких степеней m(m=6,8,10)

[Muftejev 2009 Donetsk]. Отметим, что узловые точки b-сплайновой кривой не совпадают с вершинами опорной ломаной, хотя b-сплайновая кривая точно проходит через опорные точки.

Методы аппроксимации сохраняют качество v-кривой, использованной при улучшении ГО Эрмита.

 

Offered technology of modeling curves and surfaces of high quality is realized  in an integrated environment (IDE): AutoCAD +  application “FairCurveModeler in Mathematica”.

Предложенная технология моделирования кривых линий и поверхностей высокого качества реализуется в интегрированной среде (IDE): AutoCAD + приложение "FairCurveModeler in Mathematica".

 

Application "FairCurveModeler in Mathematica" is a Mathematica application for modeling curves and surfaces of class F. The  application includes:

Приложение "FairCurveModeler in Mathematica" является приложением Mathematica для моделирования кривых линий и поверхностей класса F. В состав приложения входят:

- Package FairNURBS.mx (package contains software for modeling and editing the NURBS curves and surfaces in the environment of Mathematica);

- пакет FairNURBS.mx  (пакет содержит программы моделирования и редактирования NURBS кривых и поверхностей в среде Mathematica);

- The program FairCurveModeler.exe (external program to perform the functions of construction the v-curve of high quality and shape preserving approximation of v-curve by b-spline curve of high degree m (m = 6,8,10));

- программа FairCurveModeler.exe (внешняя программа для выполнения функций построения v-кривой высокого качества и изогеометрической аппроксимации v-кривой b-сплайновой кривой высокой степени m (m=6,8,10));

- The documents (notebooks) of Mathematica for creating and editing the NURBS curves of high quality on the basis of the package FairNURBS.mx and the program FairCurveModeler.exe;

- документы (notebooks) Mathematica для построения  и редактирования NURBS кривых высокого качества на основе пакета FairNURBS.mx и программы FairCurveModeler.exe;

 

 

Technology of modeling the curves of high quality consists of the following stages:

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

 

 

1. Drawing the NURBS-sketch of the modeling curve in the AutoCAD

1. Построение эскиза  моделируемой кривой в AutoCAD

 

The modeling of curve started in the AutoCAD by drawing any NURBS curve (from spline of degree 1 up to spline of 10th degree).  NURBS curve drawn in the CAD-system is NURBS-sketch for modeling the curve of high quality.

Моделирование кривой начинается в AutoCAD построением NURBS сплайна  (от сплайна степени 1 до сплайна 10-ой степени). NURBS кривая, построенная в CAD-системе, является NURBS-эскизом моделируемой кривой высокого качества. 

 

Must adhere to certain restrictions on the form of polyline of nodal points of NURBS-sketch curve:

- The angle between the segments of polyline to be more than 90 degrees;

- Locally convex portion of the curve should be determined at least 3 segments of a polyline;

- Straight portion is defined geometrically precisely no less than 3 segments of polyline  (or 4 points on the straight line) .

- The inflection point must coincide or be close to one of the nodal points of the spline.

- Directions of tangent vectors at the endpoints must not contradict the form of a polyline.

 

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

- угол между звеньями ломаной  должен быть больше 90 градусов;

- локально-выпуклый участок кривой должен определяться не менее чем 3 звеньями ломаной;

- прямолинейный участок задается геометрически точно не менее чем 3 звеньями ломаной узловых точек (4 точки на прямой).

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

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

 

 

The modeling curve by NURBS-sketch must be performed up to the sign of curvature. Avoid the use of splines of high degrees built on edited points because of the propensity of construction methods of CAD-systems to the emergence of unregulated oscillations form of curve. You can use NURBS curves of any degree, built directly by s-polygon. It is recommended to use low-degree splines of regulated form.

Моделирование кривой NURBS-эскизом необходимо выполнять с точностью до знака кривизны. Избегайте применения сплайнов высоких степеней, построенных на определяющих точках из-за склонности методов восстановления CAD-систем к появлению  нерегламентированной осцилляции формы построенной кривой. Можно использовать NURBS кривые любых степеней, построенные напрямую s-полигоном. Рекомендуется применять сплайны низких степеней регламентированной формы.

 

The most complete and accurate on points of incidence and tangent vectors modeling curve is structured by cubic Bezier curve. In this case, the position is controlled by the nodal points and the direction of the tangent vectors.

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

 

Quadratic b-spline curve is recommended for structuring curve by tangent polyline. Segments of s-polygon must touch modeled curve.

Квадратичную b-сплайновую кривую рекомендуется применять для структуризации кривой касательной ломаной. Звенья s-полигона должны касаться моделируемой кривой.

 

Spline of the first degree is a polyline. It is recommended to apply for a curve passing through a polygon vertices.

Сплайн первой степени представляет собой ломаную. Рекомендуется применять для построения кривой, проходящей через вершины ломаной (вершины s-полигона сплайна).

 

2. Transferring  the NURBS model to the application

2. Передача в приложение FairCurveModeler

 

NURBS-sketch from the CAD-system is transferred to the application as a DXF-file. In the documents of Mathematica the NURBS curve is read from the DXF-file. Refined NURBS-model for transfer to CAD-system is saved as DXF-file.

Эскиз NURBS кривой из CAD-системы передается в приложение в виде DXF-файла.  В документах  Mathematica NURBS кривая считывается из DXF-файла. Рафинированная модель для передачи в CAD-систему также сохраняется как DXF-файл.

 

Documents of application FairCurveModeler + Mathematica provide ability to read and write files in the format "XLS/XLSX" of Excel. XLS/XLSX-files are more compact than the DXF-files, and can be used to store library of NURBS models. NURBS model of XLS/XLSX-format can be directly edited in the book Excel. XLS/XLSX-file format enables users to use NURBS-models of high quality in their applications of Mathematica.

В документах приложения FairCurveModeler in Mathematica предусмотрена возможность считывания и записи файлов также в формате “XLS/XLSXExcel. XLS/XLSX-файлы  более компактны, чем DXF-файлы, и могут использоваться для хранения библиотеки  NURBS моделей. NURBS модели в XLS/XLSX -формате можно непосредственно  редактировать  в книге Excel. Формат XLS/XLSX -файлов дает возможность пользователям приложения  FairCurveModeler использовать NURBS-модели кривых высокого качества в своих приложениях Mathematica.

 

 

3. Modeling NURBS curves of high quality in the application "FairCurveModeler in Mathematica"

3. Моделирование NURBS кривых высокого качества в приложении “FairCurveModeler in Mathematica

 

Modeling / improvement of NURBS curve of high quality based on NURBS-sketch performed in the document "Modeling Curves on NURBS-sketches from CAD-systems.nb" using program package "Fair_NURBS.xm" and an external program FairCurveModeler.exe.

 

Моделирование / улучшение NURBS кривой высокого качества на основе NURBS-эскиза выполняется в документе "Modeling Curves on NURBS-sketches from CAD-systems.nb" с использованием пакета "Fair_NURBS.xm" и внешней программы FairCurveModeler.exe.

 

3.1. The structure and content of the document

3.1. Структура и содержание документа

 

On page for setting params and options

   Set path and name of  input file (dxf  or xls/xlsx)

   Set  path and name of output file (dxf  or xlsx)  

   Set options and params for refining the initial NURBS – sketch

На странице для установки параметров и опций

   Задайте путь и имя входного файла (dxf  or xls/xlsx)

   Задайте путь и имя выходного файла (dxf  or xls/xlsx)

   Задайте опции и параметры для рафинирования исходного NURBS-эскиза.

 

Loading package  Fair_NURBS.xm

Загрузка пакетаFair_NURBS.xm

 

Reading the initial NURBS-sketch

Чтение исходного NURBS-эскиза

 

Analysis the quality of NURBS-sketch (degree > 1)

   Drawing the graphs of  curvature

   Defining the Macroparams of NURBS-scetch

Анализ качества NURBS-эскиза (степень > 1)

   Отображение графиков кривизны

   Определение макропараметров NURBS-эскиза

 

Preparation the Hermite geometric determinant (Hermite GD)

   Drawing the Hermite GD

Подготовка геометрического определителя Эрмита (ГО Эрмита)

   Отображение ГО Эрмита

 

Creation on Hermite GD the v-curve, improving the Hermite GD with params of v-curve and approximation the improved Hermite GD by NURBzS or B-Spline curve of high degree using external program FarCurveModeler.exe

Построение на ГО Эрмита v-кривой, улучшение ГО Эрмита и аппроксимация улучшенного ГО Эрмита посредством NURBzS или B-Сплайновой кривой высокой степени с использованием внешней программы FarCurveModeler.exe

 

Analysis the quality of Created Curve

   Drawing the graphs of  curvature

   Defining the Macroparams of faired NURBS curve

Анализ качества построенной кривой

   Отображение графиков кривизны

   Определение макропараметров рафинированной NURBS кривой

 

Dynamic editing the curve on Hermite GD

Динамическое радактирование кривой на ГО Эрмита

 

Writing the NURBS model to output file

Запись NURBS кривой в выходной файл

 

 

3.2. Page for setting params and options

3.2. Страница для установки параметров и опций

 

Set path and name of input / output file (dxf  or xlsx)

Задайте путь и имя входного / выходного файла (dxf или xlsx)

 

You may directly set the path and name of file or define the file by browsing.

But one of these actions You must do.

By default, in the document specified input and output files of Example of improving the NURBS-sketch created in Alias ​​Design.

When working with the BROWSE button string of directly specifying the file hide in comment.

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

Но одно из этих действий вы должны сделать.

По умолчанию в документе заданы входной и выходной файл примера улучшения NURBS-эскиза, созданного в Alias Design.

При работе с кнопкой BROWSE строку прямого определения файла скройте в комментарий.

 

Set params and options for refining the initial NURBS – sketch:

Задайте параметры и опции для рафинирования исходного NURBS-эскиза:

 

fairings   - defines the method of construction on Hermite GD the curve ( 1 – v-curve not used, directly constructed the NURBzS curve on Hermite GD of 2th order; 2 – v-curve created on base polyline of Hermite GD; 3 – v-curve created on a tangent polyline, formed by the points and tangent vectors of Hermite GD).  

fairings   -  определяет метод построения  на ГО Эрмита кривой (1 - v-кривая не используется, кривая строится непосредственно ГО Эрмита 2-го порядка; 2 - v-кривая строится на опорной ломаной ГО Эрмита, 3 - v- кривая строится  на касательной ломаной, образованной точками и касательными векторами ГО Эрмита).

 

 

NHermite  - defines the number of vertices of base polyline in Hermite GD  ( if  NHermite < 5, then Number of points = Number of segments of NURBS sketch + 1). By default NHermite = 1.

NHermite  - задает количество вершин опорной ломаной в ГО Эрмита ( если NHermite < 5, то количество точек = количеству сегментов NURBS-эскиза + 1). По умолчанию NHermite = 1.

 

 

redistributing -  redistributes base points on v-curve  for improving the quality of approximation ( 1 - off, 2 – on).

redistributing -  перераспределяет опорные точки по v-кривой для улучшения качества аппроксимации ( 1 - off, 2 – on).

 

uCreate - defines the approximation method (3 - NURBzS approximation, 2 – B-Spline approximation).

uCreate – определяет метод аппроксимации (3- NURBzS аппроксимация, 2 – B-Сплайн аппроксимация).

 

NURBzS approximation

NURBzS аппроксимация

 

Set options for approximation by NURBzS curve: 

Установите опции для аппроксимации NURBzS кривой:

 

FixCvtU0 - enables to use the value of curvature in start point of NURBS-sketch (1-Off, 2-On).

FixCvtU0 – включает использование значения кривизны в начальной точке NURBS-эскиза (1-Off, 2-On).

 

FixCvtUk - enables to use  the value of curvature in end point of NURBS-sketch (1-Off, 2-On).

FixCvtUk – включает использование значения кривизны в конечной точке NURBS-эскиза (1-Off, 2-On).

 

B-Spline approximation

B-Сплайновая аппроксимация

 

Set options for approximation by B-Spline curve: 

Установите опции для аппроксимации b-сплайновой кривой

 

order  - defines the degree of spline  (1 – 6th degree, 2 – 8th degree, 3 – 10th degree);

order  - определяет степень сплайна (1 – 6-ая степень, 2 – 8-ая степень, 3 – 10-ая степень);

 

FixCvtU0 - enables to use the value of curvature in start point of NURBS-sketch (1-Off, 2-On).

FixCvtU0 – включает использование значения кривизны в начальной точке NURBS-эскиза (1-Off, 2-On).

 

FixCvtUk - enables to use  the value of curvature in end point of NURBS-sketch (1-Off, 2-On).

FixCvtUk – включает использование значения кривизны в конечной точке NURBS-эскиза (1-Off, 2-On).

 

scale = 0.1; (* for Graph of Curature *)

Variable  sets the display scale of curvature graph. Sets the scale with respect of the maximum value of curvature to the length of a curve.

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

 

view  = 1; (* 1 - Graph of curvature, 2 - Graph of Evolute *)

Variable specifies the view of the graph of curvature (curvature graph or graph of evolute).

Переменная задает вид графика кривизны (график кривизны или эволюту).

 

 

3.3. Analysis of the quality and preparation the Hermite GD

3.3. Анализ NURBS эскиза и подготовка ГО Эрмита

 

Analysis of the quality

 

If the degree of the spline> 1, the curvature graphs and macroparameters  of NURBS-sketch are displayed.

Если степень сплайна > 1, то отображаются графики кривизны и макропараметры NURBS-эскиза.

 

 

Preparation the Hermite GD

 

1) NURBS-sketch of first degree

1) NURBS-эскиз 1-ой степени

 

Curve is structured on Hermite GD of the zero-order fixation (by the base polyline). Curve is constructed with mandatory option of constructing v-curve on the base polyline.

Кривая структурируется ГО Эрмита нулевого порядка фиксации (опорной ломаной точек). Кривая строится с обязательной опцией построения v-кривой на опорной ломаной.

 

 

 

2) NURBS-sketch of second degree

2) NURBS-эскиз 2-ой степени

 

 

Curve is structured on Hermite GD of the zero-order fixation (by the tangent polyline). Curve is constructed with mandatory option of constructing v-curve on the tangent polyline.

Кривая структурируется ГО Эрмита нулевого порядка фиксации (на касательной ломаной точек). Кривая строится с обязательной опцией построения v-кривой  на касательной ломаной.

 

3)  NURBS-sketch of arbitrary degree m (2<m<11)

3)  NURBS-эскиз произвольной степени m (2<m<11)

 

The program analyzes the NURBS-sketch on the similarity of shapes of curve and polyline of nodal points . Checks the number of inflection points of NURBS- sketch and of polyline of nodal points . If the number of inflection points of sketch and sites of inflection of polyline does not match, the similarity coefficient is assigned to 1. If the similarity of shapes provided, the similarity coefficient is assigned 2. Similarity coefficient is 3, if the curve and polyline have the same number of curvature extrema of the curve and the extrema of discrete approximation of curvature at a polyline. This usually happens when a qualitative approximation of points taken from the analytical curve or after the procedure of refining the curve in application FairCurveModeler.

Программа выполняет анализ NURBS-эскиза на изогеометричность формы кривой и ломаной узловых точек. Проверяет количество точек перегиба NURBS-эскиза и ломаной узловых точек. Если количество точек перегиба эскиза и участков перегиба опорной ломаной не совпадает, то присваивается коэффициент изогеометричности 1. Если изогеометричность обеспечивается, то коэффициент изогеометричности присваивается 2. Коэффициент изогеометричности равен 3, если кривая и ломаная имеют одинаковое количество экстремумов кривизны у кривой и экстремумов дискретной аппроксимации кривизны у ломаной. Обычно это происходит при качественной аппроксимации точек, снятых с аналитической кривой или после процедуры рафинирования  кривой в приложении FairCurveModeler.

 

If the similarity coefficient is 3, the curve is structured by Hermite GD of  second-order fixation (up to values ​​of curvature). In Hermite GD also are transferred the exact coordinates of inflection points and tangent vectors.

 

Если коэффициент изогеометричности равен 3, то кривая структурируется ГО Эрмита второго порядка фиксации (с точностью до значений кривизны). В ГО Эрмита также переносятся точные координаты точек перегиба и векторов касательных.

 

In this case, you can construct NURBzS curve without refining options. The approximation preserves the quality of approximation (or disadvantages) of the original curve. In the same way is constructed NURBzS curve on Hermite GD of an analytic curve (see documents "Analytic Curve to NURBS .... nb".

В этом случае можно восстанавливать NURBzS кривую без опций рафинирования. Аппроксимация сохраняет качество (или недостатки) исходной кривой. Таким же образом строится NURBzS кривая на ГО Эрмита аналитической кривой (см. документы “Analitic Curve to NURBS … .nb”.

 

If the similarity coefficient is equal to 2, then the curve is structured by Hermite GD of first-order fixation (by polyline of nodal points with given tangent vectors at points). NURBzS curve can be constructed on the tangent polyline or on polyline of nodal points.

Если коэффициент изогеометричности равен 2, то кривая структурируется ГО Эрмита первого порядка фиксации (ломаной узловых точек с заданными векторами касательных в точках). Можно восстанавливать NURBzS кривую на касательной ломаной или  на ломаной узловых точек.

 

If the similarity coefficient is equal to 1, then the curve is structured by Hermite GD of the zero-order fixation on polyline of nodal points. Curve is constructed with mandatory option of refining.

Если коэффициент изогеометричности равен 1, то кривая структурируется ГО Эрмита нулевого порядка фиксации на ломаной узловых точек. Кривая строится с обязательной опцией рафинирования.

 

Depending on the similarity coefficient, the type and degree NURBS-sketch set certain refining options and NURBS curve builds of high quality.

В зависимости от коэффициента изогеометричности, типа и степени NURBS-эскиза устанавливаются те или иные опции рафинирования и выполняется построение NURBS кривой высокого качества.

 

If the inflection point of the NURBS-sketch belongs to the node, then the constructed curve also contains this point as node. Number of segments of the curve does not change.

Если точка перегиба эскиза NURBS кривой принадлежит узловой точке, то построенная кривая также содержит эту точку как узловую. Количество сегментов кривой  не изменяется.

 

Number of curve segments increases if the inflection point does not belong to the node of sketch curve and subdivision option is not enabled.

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

 

With subdivision option enabled regardless of the location of the inflection points on the curves the number of segments of curves will be exactly twice. It is important when constructing surfaces. In this case, the set of curves must be matched by the number of segments.

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

 

Drawing the Hermite GD

Рисунок ГО Эрмита

 

Is drawn Hermite GD. Is drawn base polyline and tangent vectors and curvature vectors.

Рисуется ГО Эрмита. Рисуется опорная ломаная и векторы касательных и кривизны.

 

 

 

 

3.4. Creation on Hermite GD the v-curve, improving the Hermite GD with params of v-curve and approximation the improved Hermite GD by NURBzS or B-Spline curve of high degree using external program FarCurveModeler.exe

3.4. Построение на ГО Эрмита v-кривой, улучшение ГО Эрмита параметрами v-кривой  и аппроксимация улучшенного ГО Эрмита  NURBzS или B-Сплайновой кривой

 

On locally convex sites of GO Hermite are constructed v-curves. V-curves - virtual curves that do not have an analytical expression. V-point curves iteratively algorithmically generated on the sequence of sets of curves of double conical ground. In the limit v-curve is a curve of class C5 [Muftejev 80].

На локально выпуклых участках ГО Эрмита строятся v-кривые. V-кривые – виртуальные кривые, которые не имеют аналитического выражения. Точки v-кривые итерационно алгоритмически генерируются на  последовательности множеств конических кривых двойного соприкосновения. В пределе v-кривая принадлежит кривым класса C5 [Muftejev 80].

 

The remarkable properties of v-curve are the following properties:

- V-curve coincides with a conical curve if the tangents or points of Hermite GD correspond to conic curve;

- The possibility of dual representation of the same v-curve or by  tangent polyline or by base polygon;

- the affine invariant of the definition of v-curve.

К замечательным свойствам v-кривой относятся следующие свойства:

- v-кривая совпадает с конической кривой, если точки или касательные ГО Эрмита соответствуют конической кривой;

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

- аффинная инвариантность определения v-кривой.

 

In constructing the v-curve on Hermite GD use the following options:

При построении v-кривой на ГО Эрмита используются следующие опции:

 

1) The option of constructing v-curve on the base polygon. On the convex sites of Hermite GD is constructed v-curve which passes through vertices of the base polyline.

1) Опция построения v-кривой на опорной ломаной. На выпуклых участках ГО Эрмита строится v-кривая, которая проходит через вершины опорной  ломаной.

 

2) The option of constructing v-curve on a tangent polyline. On the convex sites of Hermite GD is constructed v-curve, which passes tangent to segments of polyline, formed by the points and tangent vectors of Hermite GD.

2) Опция построения v-кривой на касательной ломаной. На выпуклых участках ГО Эрмита строится v-кривая, которая проходит касательно к звеньям  ломаной, образованной точками и касательными векторами ГО Эрмита.

 

3) Option of subdivision. Once generated additional points on v-curve. Number of curve segments doubles.

3) Опция уплотнения. Один раз генерируются дополнительные точки на v-кривой. Количество сегментов кривой удваивается.

 

4) Option of  favorable redistribution of points on the v-curve. Points on the v-curve redistributed so that the chords of polyline of redistributed points are parallel to the tangents of the v-curve. Option significantly increases the quality of the approximation the v-curve by the b-spline curve.

4) Опция благоприятного перераспределения точек на v-кривой. Точки на v-кривой перераспределяются таким образом, что хорды ломаной перераспределенных точек становятся параллельны касательным к v-кривой. Опция существенно повышает качество аппроксимации v-кривой посредством b-сплайновой кривой.

 

 

 

3.5. Approximation

3.5. Аппроксимация

 

Performed Isogeometric approximation of v-curve by the NURBzS curve or b-spline curve of high degree m (m = 6,8,10) [Muftejev 2007, Muftejev 2009 Donecsk].

Выполняется изогеометрическая аппроксимация v-кривой посредством NURBzS кривой или b-сплайновой кривой высокой степени m (m=6,8,10) [Muftejev 2007, Muftejev 2009 Donecsk].

 

 

3.6. The dynamic editing the curve on Hermite GD

3.6. Динамическое редактирование кривой на ГО Эрмита

 

For editing are available the following options and parameters:

Для редактирования доступны следующие опции и параметры:

 

Axis_X 1-X,2-Y,3-Z ,

Axis_Y 1-X,2-Y,3-Z

Editing is done on an arbitrary projection. Projection given by the numbers of coordinates {X, Y, Z}, which determine the coordinate on the graph is displayed on an axis X ("Axis_X 1-X, 2-Y , 3-Z") and the axis Y ("Axis_Y 1-X, 2-Y ,3-Z "). By default, the X-axis coordinate graph displayed X. Y-axis coordinate Y.

Редактирование выполняется на произвольной проекции. Проекция задается номерами координат {X,Y,Z}, которые определят какая координата на графике будет отображена по оси X ("Axis_X 1-X,2-Y,3-Z") и по оси Y ("Axis_Y 1-X,2-Y,3-Z").  По умолчанию по оси X графика отображается координата X. По оси Y координата Y.

 

Scale

Option “Scale  sets the display scale of curvature graph. Sets the scale with respect of the maximum value of curvature to the length of a curve.

Параметр “Scale” устанавливает масштаб отображения графика кривизны. Устанавливает масштаб отображения максимального значения кривизны относительно длины кривой.

 

View

Parameterviewspecifies the view of the graph of curvature (curvature graph or graph of evolute).

Параметр “view” задает вид графика кривизны (график кривизны или эволюту).

 

 

Fairings

Refining (improvement, smoothing) of curve is carried out by construction of v-curve curve on the base polyline of node points of the original spline and by approximation of v-curve with NURBzS or with b-spline curve of high degree.

Рафинирование (улучшение, сглаживание) кривой осуществляется построением v-кривой на опорной ломаной узловых точек исходного сплайна и аппроксимацией v-кривой посредством b-сплайновой кривой высокой степени.

[None]

- button to switch off the curve refinement options;

- переключатель выключения опций рафинирования кривой;

[On points]

-  button to switch the mode to improve the curve by constructing v-curve on the base polyline;

 - переключатель установки режима улучшения кривой путем построения v-кривой на опорной ломаной;

[On tangents]

- button to switch the mode to improve the curve by creating a v-curve on the tangent vectors GO Hermite;

- переключатель установки режима улучшения кривой путем построения v-кривой на касательных векторах ГО Эрмита;

[Redistributing]

- button to switch the mode to improve the curve by constructing v-curve on the base polyline with a favorable redistribution of points along the curve.

- переключатель установки режима улучшения кривой путем построения v-кривой на опорной ломаной с благоприятным перераспределением точек по кривой.

 

Subdivide

In the area “Subdivide” can change the number of points of base polyline:

Subdivide [Subdivide All] [Insert One] [Delete One]

В области Subdivide можно изменять количество точек опорной ломаной:

Subdivide [Subdivide All][Insert One][Delete One]

 

You can enter the new points on the curve by subdivision curve as a whole [Subdivide All], you can enter only one point after the current checkpoint [Insert One]. You can delete one current checkpoint [Delete One].

Можно вводить новые точки на кривой путем подразбиения кривой в целом [Subdivide All], можно вводить только одну точку после текущей контрольной точки [Insert One]. Можно удалить одну текущую контрольную точку [Delete One].

 

Approximation

In the area "Approximation" set approximation method:

Approximation [by Bezier Spline] [by B-Spline]

V-curve can be approximated by NURBzS curve [by Bezier Spline] or by b-spline curve [by B-Spline].

В области “Approximation” устанавливается способ аппроксимации:

Approximation [by Bezier Spline][by B-Spline]

Можно аппроксимировать v-кривую NURBzS кривой [by Bezier Spline] или b-сплайновой кривой [by B-Spline].

 

When approximating by b-spline curve in the area "Degree" is given the degree of the approximating spline:

Degree [6] [8] [10]

You can set the degree 6, 8, 10.

При аппроксимации b-сплайновой кривой в области “Degree” задается степень аппроксимирующего сплайна кривой:

Degree [6][8][10]

Можно установить степени 6, 8, 10.

 

Fix Start Curvature

Fix End Curvature

 [off][on] - radios to save or not to save a given curvature at the endpoints of Hermite GD in approximating curve;

[off][on] - переключатели установки [on] или выключения [off] опции сохранения заданной кривизны в концевых точках ГО Эрмита в аппроксимирующей кривой;

 

Edit on Hermite GD

Editing of the shape of the curve on Hermite GD performed by dragging the control points - vertices of base polyline, the ends of the tangent vectors or the ends curvature vectors.

Edited element of Hermite GD selected in "Edit on Hermite GD":

Edit on Hermite GD [Points][Tangents][Curvatures]

Редактирование формы кривой на ГО Эрмита выполняется перемещением контрольных точек - вершин опорной ломаной, концов касательных векторов или концов векторов кривизны.

Редактируемый элемент ГО Эрмита выбирается в области ”Edit on Hermite GD”:

Edit on Hermite GD [Points][Tangents][Curvatures]

 

ReCreate

In the area "ReCreate" you can recreate the curve on the modified Hermite GD:

ReCreate [on] [off]

To re-create  press [on].

В области “ReCreate” можно перестроить кривую на измененном ГО Эрмита:

ReCreate [on][off]

Для перестроения нажмите кнопку [on].

 

Vertex

You can set the current control vertex by selecting a number of vertex from of a given range (Vertex [ ] ) or by moving the control vertex over the vertices of  the base  polyline, over  the ends of the tangent vectors and vectors of curvatures by using the buttons [<<] [<] [>] [>>].

Можно установить текущую контрольную вершину путем выбора  номера вершины из заданного диапазона  Vertex  [  ] или путем перемещения контрольной вершины  по вершинам опорной ломаной, по концам векторов касательных и кривизны  с помощью кнопок [<<][<][>][>>].

 

Axis_X Axis_Y Step

You can move the current control vertex (vertex of polyline, end of the tangent vector, the end of the curvature vector) at a predetermined pitch on screen X-axis or the axis Y. Step movement set from the specified range Step []. The movement is performed using the Axis_X [-] [+] Axis [-] [+].

Можно перемещать текущую контрольную вершину (вершину ломаной, конец вектора касательной, конец вектора кривизны) с заданным шагом по экранной оси X или оси Y. Шаг перемещения устанавливается  из заданного диапазона Step [   ]. Перемещение выполняется с помощью кнопок Axis_X [-][+] Axis_Y [-][+].

 

 

Current point:   Tangent:  Curvature:

Are displayed the coordinates of the current point and the values ​​of the reference polyline tangent vector and the curvature value at this point:

Current Point: {x, y, z} Tangent {tx, ty, tz} Curvature {value}

Отображаются координаты текущей точки опорной ломаной и значения касательного вектора и значение кривизны в этой точке:

Current Point: { x, y, z } Tangent { tx, ty,tz } Curvature { value }

 

 

 

3.7. Analysis of the quality of refined curve

3.7. Анализ качества рафинированной кривой

 

Analyzing refined curve. Displays graphs and macroparameters curvature curve.

Выполняется анализ рафинированной кривой. Отображаются графики кривизны и макропараметры кривой.

 

You can check the current quality of dynamically editable curve. You must select the cell after the title "Drawing the graphs of curvature of Faired Curve" and press Shift + Enter. Graphics curvature are changed to display the current graphics of curvature of the editable curve.

Можно проверить текущее качество динамически редактируемой кривой. Необходимо выделить клетку (cell)  после названия “Drawing the graphs of  curvature of Faired Curve” и нажать Shift+Enter. Графики кривизны изменятся и отобразят текущие графики кривизны редактируемой кривой.

 

Similarly, you can determine the Macroparameters of the editable curve in the cell after the title "Macroparams of faired NURBS curve"

Аналогично можно определить макропараметры редактируемой кривой в клетке после названия “Macroparams of faired NURBS curve

 

 

 

3.8. Writing NURBS model to an output file

3.8. Запись NURBS модели во внешний файл

 

Recording is performed to the output file of refined curve. The output file type (dxf / xlsm), the path and name are specified on the "Page for setting params and options".

Выполняется запись в выходной файл рафинированной кривой. Тип выходного файла (dxf / xlsm), путь и имя задаются на странице “Page for setting params and options”.

 

You can overwrite to the same output file dynamically the editable curve. You must select the cell after the title of "Writing the faired NURBS model to output file" and press Shift + Enter.

Можно перезаписать в тот же  выходной файл динамически  редактируемую кривую. Необходимо выделить клетку (cell)  после названия “Writing the faired NURBS model to output file” и нажать Shift+Enter.

 

 

 

3.9. Examples of modeling / improving the curves

3.9. Примеры моделирования / улучшения кривых

 

Application contains examples of modeling curves of high quality, and examples of improvement of curves modeled in CAD-systems:

Приложение содержит примеры моделирования кривых высокого качества и примеры улучшения кривых, смоделированных в CAD-системах.

Examples can be viewed and repeat in document "Refining NURBS by editing on Hermite GD.nb".

Примеры можно просмотреть и повторить в документе "Refining NURBS by editing on Hermite GD.nb".

On the page "Page for setting params and options" in the form of comments are two lists:

List of input files of NURBS-sketches:

На странице “Page for setting params and options” в виде комментариев даны два списка:

Список входных файлов NURBS-эскизов:

(*INFILE="CAD_NURBS\\1_Circle1Degree.dxf";*)

(* 1  Example of Creation Curve on Сlosed  Polyline from circle *)

(*INFILE="CAD_NURBS\\2_TngOnCircle.dxf";*)

(* 2  Example of Creation Curve on Closed Tangent Polyline from Circle*)

(*INFILE="CAD_NURBS\\3_BSpline1degree.dxf";*)

(* 3  Example of Creation Curve on s-formed Polyline *)

(*INFILE="CAD_NURBS\\4_BSpline2degree.dxf";*)

(* 4  Example of Creation on Unclosed s-form Tangent Polyline*)

(*INFILE="CAD_NURBS\\5_BSpline_Degree3.dxf";*)

(* 5 Example of Improving of Closed BSpline 3 degree created on edited

points *)

(*INFILE="CAD_NURBS\\6_BSpline_Degree10.dxf";*)(* 6 Example of

Improving of BSpline 10 degree created by control vertices *)

INFILE = "CAD_NURBS\\7_Helix.dxf";

(* 7  Example of Improving the spatial primitive Helix from AutoCAD*)

(*INFILE="CAD_NURBS\\8_Unclosed_7Degree_Alias.dxf";*)

(* 8 Example of Improving of UnClosed BSpline 7 degree created on

edited points in Alias Design *)

 

List of output files for refined curves:

Список выходных файлов для рафинированных кривых:

(*OUTFILE="Fair_NURBS\\1_FCircle1Degree.dxf"; *)(* 1 *)

(*OUTFILE="Fair_NURBS\\2_FTngOnCircle.dxf";*) (* 2 *)

(*OUTFILE="Fair_NURBS\\3_FBSpline1degree.dxf";*) (* 3 *)

(*OUTFILE="Fair_NURBS\\4_FBSpline2degree.dxf";*)  (* 4 *)

(*OUTFILE="Fair_NURBS\\5_FBSpline_Degree3.dxf";*) (* 5 *)

(*OUTFILE="Fair_NURBS\\6_FBSpline_Degree10.dxf";*) (* 6 *)

(*OUTFILE="Fair_NURBS\\7_FHelix.dxf";*)(* 4 *)

(*OUTFILE="Fair_NURBS\\8_FUnclosed_7Degree_Alias.dxf"; *) (* 7 *)

 

For example, you need to work out some example n. For this example, in the strings with the number n determining the variables INFILE and OUTFILE you must remove comment symbols "(*" and "*)". The remaining strings should be in the comments.

By default, it is an active example of the number 8.

Например, вам нужно отработать некоторый пример n. Для данного примера в строках с номером n определения переменных INFILE и OUTFILE необходимо удалить значки комментария ” (*” и ” *)”. Остальные строки должны быть в комментариях.

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

 

Working example reads DXF-file with NURBS-sketch from folder “CAD_NURBS” and write refined NURBS curve to the output DXF-file in folder “Fair_NURBS”.

Работающий пример считывает DXF-файл с NURBS-эскизом из папки CAD_NURBS и записывет рафинированную NURBS кривую в выходной DXF-файл Fair_NURBS.

 

 

Brief descriptions of examples:

Краткие описания примеров:

1) Example of construction of NURBS curve on closed polyline. Vertices are distributed non uniform along the circle. This example demonstrates the stability of the methods to the non-uniformity of arrangement of control points on the contour of the curve.

Polyline represented as the NURBS-sketch of degree 1. In accordance with the specified options and the application logic is generated NURBS curve at the base polyline. In the section of dynamic editing, press ReCreate [on]. Then go to Fairings [on Tangents] and repeat the rebuilding curve ReCreate [on]. Make sure that the dual geometric determinant defines the same curve.

1) Пример построения NURBS кривой на полилинии. Вершины неравномерно распределены по окружности. Пример демонстрирует устойчивость методов к неравномерности расположения опорных точек по контуру кривой. Полилиния представлена NURBS-эскизом степени 1. В соответствии с заданными опциями  и логикой программы формируется NURBS кривая на опорной ломаной. В разделе динамического редактирования нажмите ReCreate [on]. Затем перейдите к Fairings [on Tangents] и повторите перестроение кривой  ReCreate [on]. Убедитесь, что дуальный геометрический определитель определяет ту же кривую.

 

 

2) Example of structuring the curve (circle) a tangent polyline and of construction NURBzS curve approximating the geometrically exactly circle. This example demonstrates the wide arsenal of types of geometrical determinants and accuracy modeling of conics.

Tangent polyline represented as NURBS curve of degree 2. In the section of dynamic editing, press ReCreate [on]. Then switch on the type of refining Fairings [on Points] and repeat the rebuilding curve by ReCreate [on]. Make sure that the dual geometric determinant defines the same curve. Change the method of approximation by Approximation [B-Spline].

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

Касательная ломаная представлена NURBS кривой степени 2. В разделе динамического редактирования нажмите ReCreate [on]. Затем переключите тип рафинирования на Fairings [on Points] и повторите перестроение кривой  ReCreate [on]. Убедитесь, что дуальный геометрический определитель определяет ту же кривую. Измените способ аппроксимации на Approximation [B-Spline].

 

3)  Example of Creation on s - formed Polyline

3) Пример построения NURBS кривой на s-образной полилинии.

Перейдите к динамическому редактированию. Конфигурации с точками перегиба более качественно аппроксимируются b-сплайновой кривой.  Измените тип аппросимации на Approximation [B-Spline]. Перестройте кривую ReCreate [on]. Управляя положением контрольных опорных точек, добейтесь желаемого графика кривизны. Убедитесь в том, что перемещение опорных точек в пределах заданной структуры вызывает вполне прогнозируемое изменение графика кривизны.

 

4) This example demonstrates the modeling of curve with one inflection point using a tangent polyline. Go to the dynamic editing. Configurations with inflection points higher quality are approximated by b-spline curve. Change the type of approximation by Approximation [B-Spline]. Rebuild curve ReCreate [on].

Go to the editing with the tangent vectors. Controlling the direction of the tangent vectors, achieve the desired curvature graph. Make sure that the change in direction of the tangent vectors within the given structure of the curve is quite predictable change in the graph of curvature.

4) Пример демонстрирует моделирование кривой с одной точкой перегиба с помощью касательной ломаной. Перейдите  к динамическому редактированию. Конфигурации с точками перегиба более качественно аппроксимируются b-сплайновой кривой.  Измените тип аппроксимации на Approximation [B-Spline]. Перестройте кривую ReCreate [on].

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

 

5)  Example of improvement of closed NURBS curve third degree , drawn in AutoCAD on nodal points (edited points). Evaluate example. Form of the original NURBS curve does not fit the shape of a polyline of nodal points .

Compare graphics of curvature over curves. AutoCAD method does not provide for smoothness of curve. Graph of curvature continuous , but with kinks. Curvature graph over improved curve is smooth curve. We note that the smoothness of the v-curve is order 5 .

Compare macroparameters. The number of vertices of the curve is reduced from 13 to 7 ! That is radically eliminated ripple curvature. Minimum number of vertices and the structure of the curve exactly defined by form of base polyline.

5) Пример улучшения замкнутой NURBS кривой 3-ей степени, построенной в AutoCAD по узловым точкам (edited points). Отработайте пример. Форма исходной NURBS кривой не соответствует форме ломаной узловых точек.

Сравните графики кривизны над кривыми. Метод AutoCAD не обеспечивает плавности кривой. График кривизны непрерывный, но с изломами. График кривизны у улучшенной кривой плавный. Отметим, у v-кривой гладкость 5-го порядка.

Сравните макропараметры. Количество вершин кривой снижено от 13 до 7! То есть радикально устраняется пульсация кривизны. Количество вершин минимально и соответствует структуре кривой, заданной опорными точками.

 

 

6) Example of  improvement of NURBS curve tenth degree, modeled using s-polygon in AutoCAD. Obtained a significant improvement of NURBS curve tenth degree, modeled using the most popular modeling method in modern CAD systems.

6) Пример улучшения NURBS кривой 10-ой степени, построенной с помощью s-полигона в AutoCAD. Достигается  существенное улучшение NURBS кривой 10-ой степени, смоделированной наиболее популярным в современных САПР методом моделирования кривых высокого качества.

 

 

7) Example improving spatial curve Helix drawn in AutoCAD. Compare the curves and curvature graphs form k = F (l) and in 3D on a 3D graphics. Ensure  high quality of improved spatial curve. Provides smooth and monotonic change of curvature, compared with sawtooth form of curvature graph of the original curve.

7) Пример улучшения пространственной кривой Helix. Сравните кривые и графики кривизны вида k=F(l) и в 3D пространстве на 3D графиках. Убедитесь в высоком качестве улучшенной пространственной кривой.  Обеспечивается плавное и монотонное изменение кривизны, по сравнению с пилообразной формы графика кривизны исходной кривой.

 

8) Example of improvement of NURBS curve seventh degree constructed on edited points  in Alias Design. The example shows the possibility of a radical improvement of the quality of NURBS curves of high degrees, constructed on edited points in the Alias Design. The example also shows a higher robustness of the proposed approximation methods in app FairCurveModeler compared to the method for constructing the spline on edited points in Alias Design.

8) Пример улучшения NURBS кривой 7-ой степени, построенной по определяющим точкам (edited points) в Alias Design. Пример показывает возможность радикального улучшения качества NURBS кривых высоких степеней, построенных по определяющим точкам в Alias Design. Пример также демонстрирует более высокую устойчивость предложенных методов аппроксимации в приложении FairCurveModeler по сравнению с методом построения сплайнов по определяющим точкам в Alias Design.

 

More information about the examples, see the examples

Подобнее о примерах см. в Описание примеров

 

Bibliography

Библиография