.. role:: blue :class: blue Линейчатая поверхность MbRuledSurface ===================================== .. _MbRuledSurface_Ruled_Surface: .. версия ядра: 1180ХХ Класс :blue:`MbRuledSurface` объявлен в файле *surf\_ruled\_surface.h*. Линейчатая поверхность MbRuledSurface принадлежит к группе поверхностей движения MbSweptSurface. Линейчатая поверхность описывается кривой :ref:`MbCurve3D ` * **curve**, кривой :ref:`MbCurve3D ` * **sline**, признаком наличия полюса поверхности при начальном значении первого параметра *poleMin*, признаком наличия полюса поверхности при конечном значении первого параметра *poleMax*, начальным параметром *tmin* кривой **sline**, производной *dt* параметра кривой **sline** по параметру кривой **curve** и типом формы поверхности *type*. У поверхности есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов поверхности. Первый параметр поверхности *u* совпадает с параметром кривой **curve**. Первый параметр поверхности принимает значения на отрезке *umin* ≤ *u* ≤ *umax*, который соответствует области определения кривой **curve**. Производная *dt* определяется равенством .. math:: :nowrap: \begin{equation} \mathit{dt} = \frac{\mathit{tmax} - \mathit{tmin}}{\mathit{umax} - \mathit{umin}}, \end{equation} где *tmax* — конечный параметр кривой **sline**. Поверхность может быть периодической по первому параметру, если периодическими являются кривые **curve** и **sline**. Второй параметр поверхности *v* принимает значения на отрезке *vmin* ≤ *v* ≤ *vmax*. Значение *v* = *vmin* соответствует точке на кривой **curve**, значение *v* = *vmax* соответствует точке на кривой **sline**. Поверхность не может быть периодической по второму параметру. В методе :blue:`PointOn`\( double *u*, double *v*, :ref:`MbCartPoint3D ` & **s** ) радиус-вектор поверхности **s** описывается векторной функцией .. math:: :nowrap: \begin{equation} \mathbf{s}(u, v) = \mathbf{curve}(u) (1 - w) + \mathbf{sline}(t) \, w, \end{equation} где .. math:: :nowrap: \begin{equation} w = \frac{v - \mathit{vmin}}{\mathit{vmax} - \mathit{vmin}}, \quad t = tmin + (u - umin) \cdot dt. \end{equation} Линейчатая поверхность приведена на рис. 1: .. figure:: /MODELER/SURFACES/pictures/O.5.14.1.png :width: 12cm :align: center Рис. 1 Кривые поверхности **s**\ (\ *const*\ , *v*\ ) с параметрами *u* = const являются отрезками прямой. Поверхность может иметь полюс, если одна из кривых **curve** или **sline** стянута в точку, или если кривые **curve** и **sline** совпадают на одном из краёв.