.. role:: blue :class: blue MbCrookedSpiral Spiral with Curved Planar Axis ====================================================== .. _MbCrookedSpiral_Spiral_with_Curved_Planar_Axis_: .. версия ядра: The :blue:`MbCrookedSpiral` class is declared in the *cur_crooked_spiral.h* file. A crooked spiral with a planar curved axis is a derived curve of MbSpiral. The spiral is defined by a local coordinate system :ref:`MbPlacement3D ` **position**, a two-dimensional curve :blue:`MbCurve` **curve** that defines the spiral axis, the spiral radius *radius*, the spiral step *step,* and two boundary parameters of the spiral *tmin* and *tmax*. The curve also has some additional data that are optional and serve to speed up the curve methods. The two-dimensional curve **curve** lies in the XZ plane of the local coordinate system **position** and defines the spiral axis. The **position.axisZ** axis serves as the abscissa axis, and the **position.axisX** axis serves as the ordinate axis of the two-dimensional space of the **curve** curve. The origin of the two-dimensional coordinate system of the **curve** curve coincides with the origin of the local coordinate system **position**. The spiral radius is constant. The *tmin* and *tmax* parameters are angles and are measured from the **position.axisX** vector to the **position.axisY** vector. Angle values that are multiples of 2\ :math:`\pi` correspond to points of the curve in the XZ plane of the local coordinate system. In the :blue:`PointOn`\(double & *t*, :blue:`MbCartPoint3D` & **r**) method, the radius vector **r** of the curve is described by the vector function .. math:: \mathbf{r}(t) = \mathbf{position.origin} + \Bigl(\bigl(\mathbf{point}.y + \mathbf{radius} \cdot \cos(t) \cdot \mathbf{normal}.y\bigr) \cdot \mathbf{position.axisX}\Bigr) + \Bigl(\mathbf{radius} \cdot \sin(t) \cdot \mathbf{position.axisY}\Bigr) + \\ \Bigl(\bigl(\mathbf{point}.x + \mathbf{radius} \cdot \cos(t) \cdot \mathbf{normal}.x\bigr) \cdot \mathbf{position.axisZ}\Bigr), where **point** is a point of the two-dimensional curve computed by the **curve**\-\> :blue:`PointOn`\(*t*, **point**) method, and **normal** is the normal of the two-dimensional curve computed by the **curve**\-\> :blue:`Normal`\(*t*, **normal**) method. A variable-radius spiral is shown in the figure: .. figure:: /MODELER/CURVES/pictures/O.4.16.1.png :width: 9cm :align: center The minimum curvature radius of the **curve** curve must not be less than the spiral radius. For the boundary parameters, the inequality *tmin* < *tmax* must hold. The curve cannot be periodic. The local coordinate system **position** can be either right-handed or left-handed.