Поверхность соединения MbJoinSurface

Класс MbJoinSurface объявлен в файле surf_joint_surface.h.

Поверхность соединения MbJoinSurface описывается множеством кривых RPArray< MbCurve3D > curves, узловым вектором knots, порядком сплайна degree, граничными значениями первого параметра поверхности umin и umax, признаком периодичности первого параметра поверхности closedU, признаком периодичности второго параметра поверхности closedV, признаком наличия полюса поверхности при граничных значениях первого параметра isPoleUmin, isPoleUmax, признаком наличия полюса поверхности при граничных значениях второго параметра isPoleUmin, isPoleUmax.

Кривые curves согласованы друг с другом: имеют одинаковое направление и одинаковую область определения параметра. Первый параметр поверхности u совпадает с параметром кривых curves, который является общим для них. Первый параметр поверхности принимает значения на отрезке umin ≤ u ≤ umax, который соответствует области определения кривых curves. Поверхность может быть периодической по первому параметру, если периодическими являются все кривые curves. Пусть узловой вектор knots содержит knotsCount элементов, а количество кривых в множестве curves равно curvesCount. Количества элементов в множествах связаны равенством curvesCount + degree = knotsCount.

Второй параметр поверхности v принимает значения на отрезке vmin ≤ v ≤ vmax, где vmin = knots[degree − 1], vmax = knots[knotsCount − degree]. Поверхность не может быть периодической по второму параметру.

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

\[s(u, v) = \frac{\sum\limits_{j = 0}^{\mathit{\text{curvesCount}} - 1}{N_j^{degree}(v)\mathbf{\text{curves}}\lbrack j\rbrack(u)}}{\sum\limits_{j = 0}^{\mathit{\text{curvesCount}} - 1}{N_j^{degree}(v)}},\]

где \(N_j^{degree}(v)\) — B-сплайны порядка degree для j-ой кривой curves[j]. Поверхность соединения приведена на рисунке:

../../../../_images/O.5.21.1.png

Каждая кривая s(const, v) с фиксированным первым параметром поверхности u = const является NURBS-кривой порядка degree, построенной по точкам curves[i](const).