Цилиндрическая поверхность MbCylinderSurface

Класс MbCylinderSurface объявлен в файле surf_cylinder_surface.h.

Цилиндрическая поверхность MbCylinderSurface принадлежит к группе элементарных поверхностей MbElementarySurface. Цилиндрическая поверхность описывается радиусом radius и высотой height, заданными в локальной системе координат 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 локальной системы координат поверхности.

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

\begin{equation} \mathbf{s}(u, v) = \mathbf{position.origin} + \mathit{radius} \left( \cos(u)\, \mathbf{position.axisX} + \sin(u)\, \mathbf{position.axisY} \right) + \mathit{height} \cdot v\, \mathbf{position.axisZ} \end{equation}

Цилиндрическая поверхность приведена на рисунке:

../../../../_images/O.5.3.1.png

Радиус и высота должны быть больше нуля: radius > 0, height > 0. Для граничных параметров поверхности должны соблюдаться неравенства: umin < umax, vmin < vmax.

Локальная система координат position может быть как правой, так и левой. Если локальная система координат правая, то нормаль направлена в сторону выпуклости поверхности (от оси поверхности), если локальная система координат левая, то нормаль направлена в сторону вогнутости поверхности (в сторону оси поверхности).