Сферическая поверхность MbSphereSurface

Класс MbSphereSurface объявлен в файле surf_sphere_surface.h.

Сфера MbSphereSurface принадлежит к группе элементарных поверхностей MbElementarySurface. Сфера описывается радиусом radius, заданным в локальной системе координат MbPlacement3D position.

Первый параметр поверхности отсчитывается по дуге от вектора position.axisX в направлении вектора position.axisY. Первый параметр поверхности u принимает значения на отрезке: umin ≤ u ≤ umax. Значения u = 0 и u = 2π соответствуют точке на плоскости XZ. Поверхность может быть периодической по первому параметру. У периодической поверхности umax - umin = 2π, у не периодической поверхности umax - umin < 2π.

Второй параметр поверхности отсчитывается по дуге от плоскости XY локальной системы координат поверхности в направлении вектора position.axisZ. Второй параметр поверхности v принимает значения на отрезке: vmin ≤ v ≤ vmax. Значение v = 0 соответствует точке на плоскости 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{radius} \cdot \sin(v)\, \mathbf{position.axisZ} \end{equation}

Сфера приведена на рис. 1:

../../../../_images/O.5.5.1.png

Рис. 1

Радиус сферы должен быть больше нуля: radius > 0. Сфера имеет полюсы для параметра v = π/2 и v = -π/2. Для граничных параметров поверхности должны соблюдаться неравенства: umin < umax, vmin < vmax, vmax ≤ π/2, vmin ≥ -π/2.

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