Коническая поверхность MbConeSurface

Класс MbConeSurface объявлен в файле surf_cone_surface.h.

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

../../../../_images/O.5.4.1.png

Рис. 1

Радиус и высота должны быть больше нуля, а угол по модулю не должен превышать π/2: radius > 0, height > 0, -π/2 < angle < π/2. При angle = 0 коническая поверхность эквивалентна цилиндрической поверхности. Для граничных параметров поверхности должны соблюдаться неравенства: umin < umax, vmin < vmax. Полюсу поверхности соответствует значение второго параметра v = -radius / (height · tg(angle)). Граничные параметры vmax и vmin принимают такие значения, при которых поверхность располагается с одной стороны от полюса.

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