.. role:: blue :class: blue Коническая спираль MbConeSpiral =============================== .. _MbConeSpiral_Conical_Spiral: .. версия ядра: Класс :blue:`MbConeSpiral` объявлен в файле *cur_cone_spiral.h*. Коническая спираль является наследником кривой :blue:`MbSpiral`. Спираль описывается локальной системой координат :ref:`MbPlacement3D ` **position**, радиусом *radius*, тангенсом угла конусности *tgAlpha*, шагом спирали, делённым на 2π, *step_2pi* и двумя граничными параметрами спирали *tmin* и *tmax*. У кривой есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов кривой. Ось спирали совпадает с координатной осью **position.axisZ** локальной системы координат. Параметр *tgAlpha* равен тангенсу угла между осью спирали и образующей конуса спирали. Параметры *tmin* и *tmax* являются углами и отсчитываются от вектора **position.axisX** к вектору **position.axisY**. Значения углов, кратные 2π, соответствуют точке кривой в плоскости XZ локальной системы координат. Параметр кривой *t* принимает значения на отрезке: *tmin* ≤ *t* ≤ *tmax*. В методе :blue:`PointOn`\( double & *t*, :blue:`MbCartPoint3D` & **r**) радиус-вектор кривой **r** описывается векторной функцией .. math:: \mathbf{r}(t) = \mathbf{position.origin} + \left( radius + t \cdot tgAlpha \cdot step\_2pi \right) \left( \cos(t) \cdot \mathbf{position.axisX} + \sin(t) \cdot \mathbf{position.axisY} \right) + \left( t \cdot step\_2pi \right) \mathbf{position.axisZ}. Коническая спираль приведена на рисунке: .. figure:: /MODELER/CURVES/pictures/O.4.14.1.png :width: 9cm :align: center Радиус кривой должен быть больше нуля: *radius* > 0. Для граничных параметров должно выполняться неравенство *tmin* < *tmax*. Кривая не может быть периодической. Локальная система координат **position** может быть как правой, так и левой. Для цилиндрической спирали *tgAlpha* = 0.