.. role:: blue :class: blue Эквидистантная кривая MbOffsetCurve3D ===================================== .. _MbOffsetCurve3D_Equidistant_Curve: .. версия ядра: Класс :blue:`MbOffsetCurve3D` объявлен в файле *cur_offset_curve3d.h*. Эквидистантная кривая описывается базовой кривой :ref:`MbCurve3D ` **basisCurve** и вектором смещения :ref:`MbVector3D ` **offset**. У кривой есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов кривой. Базовая кривая **basisCurve** представляет собой объект :blue:`MbSpine`, который для кривой строит перемещающуюся по ней локальную систему координат, первая координатная ось которой направлена по касательной к кривой. Вектор смещения **offset** определяет смещение начальной точки базовой кривой в начальную точку эквидистантной кривой. Вектор смещения **offset** ортогонален касательному вектору базовой кривой в начальной точке. В движущейся локальной системе координат смещение всех точек базовой кривой в соответствующую точку эквидистантной кривой равно вектору смещения и ортогонально касательному вектору базовой кривой в текущей точке. Вычисление радиуса-вектора точки эквидистантной кривой выполняется следующим образом. Для заданного параметра базовой кривой вычисляется точка на направляющей кривой и локальная система координат с началом в этой точке и первой координатной осью, направленной по касательной к кривой в этой точке. Далее вычисляется матрица поворота локальной системы координат при её перемещении из начальной точки базовой кривой в заданную точку. По матрице поворота трансформируется копия вектора смещения и на вычисленный вектор смещается вычисленная точка базовой кривой. В методе :blue:`PointOn`\( double & *t*, :ref:`MbCartPoint3D ` & **r**) радиус-вектор кривой **r** описывается векторной функцией .. math:: \mathbf{r}(t) = \mathbf{basisCurve}(t) + \mathbf{offset} \cdot \mathbf{A}(t), где **A**\(t) — матрица поворота локальной системы координат при её перемещении из начальной точки базовой кривой в заданную точку. Эквидистантная кривая к конической спирали приведена на рисунке: .. figure:: /MODELER/CURVES/pictures/O.4.12.1.png :width: 12cm :align: center Область изменения параметра эквидистантной кривой совпадает с областью изменения параметра базовой кривой. В качестве базовой кривой для эквидистантной кривой не должна использоваться другая эквидистантная кривая, а должна использоваться направляющая кривая последней с соответствующим пересчётом вектора смещения.