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

Класс MbEvolutionSurface объявлен в файле surf_evolution_surface.h.

Кинематическая поверхность MbEvolutionSurface принадлежит к группе поверхностей движения MbSweptSurface. Кинематическая поверхность является общим случаем поверхности движения с произвольной направляющей кривой. Поверхность вращения описывается образующей кривой MbCurve3D * curve, направляющим объектом MbCurve3D * spine, положением начала направляющей MbCartPoint3D origin. У поверхности есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов поверхности.

Первый параметр поверхности u совпадает с параметром образующей кривой curve. Первый параметр поверхности принимает значения на отрезке umin ≤ u ≤ umax, который соответствует области определения образующей кривой. Поверхность может быть периодической по первому параметру, если периодической является образующая кривая.

Направляющий объект spine заменяет собой направляющую кривую, построен на базе кривой и отличается от последней тем, что может генерировать локальную систему координат, связанную с кривой. Второй параметр поверхности v совпадает с параметром кривой направляющего объекта spine. Второй параметр поверхности принимает значения на отрезке vmin ≤ v ≤ vmax, который соответствует области определения направляющей кривой. Поверхность может быть периодической по второму параметру, если периодической является направляющая кривая.

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

\begin{equation} \mathbf{s}(u, v) = \mathbf{spine}(v) + \left( \mathbf{curve}(u) - \mathbf{origin} \right) \mathbf{M}(v), \end{equation}

где M(v) — матрица, связанная с направляющей кривой. Заметим, что умножение вектора (curve(u) - origin) на матрицу M(v) выполняется справа. Матрица M(v) имеет вид

\begin{equation} \mathbf{M}(v) = \mathbf{A}^{-1}(vmin) \cdot \mathbf{A}(v), \end{equation}

где матрица A(v) является матрицей преобразования координат радиуса-вектора точки из подвижной системы координат, связанной с направляющей кривой, в глобальную систему координат. Матрица A(v) зависит от второго параметра поверхности. Строки матрицы A(v) составлены из компонент базисных векторов подвижной системы координат:

\begin{equation} A(v) = \begin{bmatrix} i_{1}(v) \\ i_{2}(v) \\ i_{3}(v) \end{bmatrix}, \end{equation}

где i1(v) — касательный вектор направляющей кривой, i2(v) — вектор, ортогональный i1(v) и связанный с вектором direction направляющего объекта spine, i3(v) — вектор, ортогональный i1(v) и i2(v). Поверхность вращения приведена на рис. 1:

../../../../_images/O.5.11.1.png

Рис. 1

Касательный вектор i1(v) вычисляется по направляющей кривой. Вектор i2(v) вычисляется из условия плавного изменения при переходе от точки к точке направляющей кривой и ортогональности i1(v). Вектор i3(v) вычисляется как векторное произведение векторов i1(v) и i2(v).