Коническая спираль MbConeSpiral

Класс MbConeSpiral объявлен в файле cur_cone_spiral.h.

Коническая спираль является наследником кривой MbSpiral. Спираль описывается локальной системой координат MbPlacement3D position, радиусом radius, тангенсом угла конусности tgAlpha, шагом спирали, делённым на 2π, step_2pi и двумя граничными параметрами спирали tmin и tmax. У кривой есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов кривой.

Ось спирали совпадает с координатной осью position.axisZ локальной системы координат. Параметр tgAlpha равен тангенсу угла между осью спирали и образующей конуса спирали. Параметры tmin и tmax являются углами и отсчитываются от вектора position.axisX к вектору position.axisY. Значения углов, кратные 2π, соответствуют точке кривой в плоскости XZ локальной системы координат. Параметр кривой t принимает значения на отрезке: tmin ≤ t ≤ tmax.

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

\[\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}.\]

Коническая спираль приведена на рисунке:

../../../../_images/O.4.14.1.png

Радиус кривой должен быть больше нуля: radius > 0. Для граничных параметров должно выполняться неравенство tmin < tmax. Кривая не может быть периодической.

Локальная система координат position может быть как правой, так и левой. Для цилиндрической спирали tgAlpha = 0.