.. role:: blue :class: blue Коническая поверхность MbConeSurface ===================================== .. _MbConeSurface_Conical_Surface: .. версия ядра: 1180ХХ Класс :blue:`MbConeSurface` объявлен в файле *surf\_cone\_surface.h*. Коническая поверхность :blue:`MbConeSurface` принадлежит к группе элементарных поверхностей :blue:`MbElementarySurface`. Коническая поверхность описывается радиусом *radius*, высотой *height* и углом конусности *angle*, заданными в локальной системе координат :ref:`MbPlacement3D ` **position**. Первый параметр поверхности отсчитывается по дуге от вектора **position.axisX** в направлении вектора **position.axisY**. Первый параметр поверхности *u* принимает значения на отрезке: *umin* ≤ *u* ≤ *umax*. Значения *u* = 0 и *u* = 2π соответствуют точке на плоскости XZ. Поверхность может быть периодической по первому параметру. У периодической поверхности *umax* - *umin* = 2π, у непериодической поверхности *umax* - *umin* < 2π. Второй параметр поверхности отсчитывается по прямой вдоль вектора **position.axisZ**. Второй параметр поверхности *v* принимает значения на отрезке: *vmin* ≤ *v* ≤ *vmax*. Значение *v* = 0 соответствует началу локальной системы координат, а значение *v* = 1 соответствует точке на расстоянии *height* от плоскости XY локальной системы координат поверхности. В методе :blue:`PointOn`\( double *u*, double *v*, :ref:`MbCartPoint3D ` & **s** ) радиус-вектор поверхности **s** описывается векторной функцией .. math:: :nowrap: \begin{equation} \mathbf{s}(u, v) = \mathbf{position.origin} + \left( \mathit{radius} + \mathit{height} \cdot v \cdot \mathrm{tg}(\mathit{angle}) \right) \left( \cos(u)\, \mathbf{position.axisX} + \sin(u)\, \mathbf{position.axisY} \right) + \mathit{height} \cdot v\, \mathbf{position.axisZ} \end{equation} Коническая поверхность приведена на рис. 1: .. figure:: /MODELER/SURFACES/pictures/O.5.4.1.png :width: 15cm :align: center Рис. 1 Радиус и высота должны быть больше нуля, а угол по модулю не должен превышать π/2: *radius* > 0, *height* > 0, -π/2 < *angle* < π/2. При *angle* = 0 коническая поверхность эквивалентна цилиндрической поверхности. Для граничных параметров поверхности должны соблюдаться неравенства: *umin* < *umax*, *vmin* < *vmax*. Полюсу поверхности соответствует значение второго параметра *v* = -*radius* / (*height* · tg(*angle*)). Граничные параметры *vmax* и *vmin* принимают такие значения, при которых поверхность располагается с одной стороны от полюса. Локальная система координат **position** может быть как правой, так и левой. Если локальная система координат правая, то нормаль направлена в сторону выпуклости поверхности (от оси поверхности), если локальная система координат левая, то нормаль направлена в сторону вогнутости поверхности (в сторону оси поверхности).