Двумерная проекционная кривая MbProjCurve

Класс MbProjCurve объявлен в файле cur_projection_curve.h.

Двумерная проекционная кривая описывается пространственной кривой MbCurve3D* spaceCurve, поверхностью MbSurface* surface и двумерной кривой MbCurve* curve. У кривой есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов кривой.

Двумерная проекционная кривая представляет собой проекцию пространственной кривой spaceCurve на поверхность surface, которая приближённо описывается двумерной кривой curve в области определения параметров поверхности. Области определения параметров кривых spaceCurve и curve совпадают. Двумерная кривая curve, как правило, является сплайном, контрольные точки которого получены проецированием точек пространственной кривой spaceCurve на поверхность surface. Параметризация кривой curve согласована с параметризацией пространственной кривой в контрольных точках. Двумерная кривая curve может располагаться за пределами области определения параметров поверхности.

В методе

PointOn( double & t, MbCartPoint & r)

радиус-вектор кривой r описывается векторной функцией

\[\mathbf{r}(t) = [u \quad v],\]

где u, v — параметры проекции точки spaceCurve(t) на поверхность surface.

Метод PointOn() корректирует параметр t, если он выходит за пределы области определения кривой. Для вычисления точки без коррекции параметра используется метод _PointOn().

Начальное приближение параметров u и v вычисляется методом

curve->PointOn(t, point),

u = point.x, v = point.y.

Далее параметры u и v уточняются итерационным методом, использующим уравнения

\[ \begin{align}\begin{aligned}\mathbf{deriveU} \cdot (\mathbf{spaceCurve}(t) - \mathbf{surface}(u,\, v)) = 0,\\\mathbf{deriveV} \cdot (\mathbf{spaceCurve}(t) - \mathbf{surface}(u,\, v)) = 0,\end{aligned}\end{align} \]

где deriveU и deriveV — частные производные радиуса-вектора поверхности, которые вычисляются методами

surface->_DeriveU(u, v, deriveU)

и

surface->_DeriveV(u, v, deriveV),

соответственно.

Проекционная кривая приведена на рисунке:

../../../../_images/O.3.16.1.png

Проекционная кривая используется для точного описания проекции пространственной кривой на поверхность.