Ломаная линия MbPolyline3D

Класс MbPolyline3D объявлен в файле cur_polyline3d.h.

Ломаная является наследником кривой MbPolyCurve3D. Ломаная MbPolyline3D описывается количеством сегментов segmentsCount, множеством контрольных точек SArray<MbCartPoint3D> pointList и признаком периодичности кривой closed.

Кривая проходит через множество точек pointList[i], i = 0,…, segmentsCount, при значениях параметра t = 0,…, segmentsCount. Если closed = true, то кривая содержит сегмент, соединяющий последнюю точку множества pointList[segmentsCount - 1] с начальной точкой pointList[0]. Параметр кривой t принимает значения на отрезке: 0 ≤ t ≤ segmentsCount.

В методе PointOn( double & t, MbCartPoint3D & r ) радиус-вектор кривой r описывается векторной функцией

\[\mathbf{r}(t) = \mathbf{pointList}[i] \cdot (1 - w) + \mathbf{pointList}[i + 1] \cdot w,\]

где

\[w = \frac{t - t_{i}}{t_{i+1} - t_{i}},\]

а ti ≤ t ≤ ti+1. Ломаная является простейшей кривой, построенной по набору точек. Она состоит из отрезков, последовательно соединяющих контрольные точки.

Ломаная приведена на рисунке:

../../../../_images/O.4.5.1.png

Кривая может быть периодической. Период периодической кривой равен segmentsCount. Производные кривой в контрольных точках (при целочисленных значениях параметра) теряют непрерывность по длине и направлению. Производные кривой в контрольных точках имеют особое направление и длину. Ломаная обладает рядом полезных свойств: работа с ней требует минимум вычислений, проекция ломаной линии также будет ломаной линией.