.. role:: blue :class: blue MbArc3D Elliptical Arc ====================== .. _MbArc3D_Elliptical_Arc_: .. kernel version: The :blue:`MbArc3D` class is declared in the *cur_arc_3d.h* file. The elliptical arc is a inheritor of the :blue:`MbCurve3D` curve. The :blue:`MbArc3D` elliptical arc is defined by two radii *a* and *b* and two angles *trim1* and *trim2* specified in the local coordinate system :ref:`MbPlacement3D ` **position**. The angles *trim1* and *trim2* are measured along the arc in the direction of motion from the **position.axisX** vector to the **position.axisY** vector. The angles *trim1* and *trim2* will be called trimming parameters. The trimming parameter values equal to zero and 2π correspond to the point on the coordinate axis **position.axisX**. The curve parameter *t* takes values on the interval 0 ≤ *t* ≤ *trim2* – *trim1*. The curve may be periodic. For a periodic curve, *trim2* – *trim1* = 2π. 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} + a \cos(\mathit{trim1} + t)\,\mathbf{position.axisX} + b \sin(\mathit{trim1} + t)\,\mathbf{position.axisY}. The elliptical arc is shown in the figure: .. figure:: /MODELER/CURVES/pictures/O.4.4.1.png :width: 15cm :align: center The radii of the curve must be greater than zero: *a* > 0, *b* > 0. The trimming parameters must satisfy the inequalities *trim1* < *trim2*. The local coordinate system **position** may be either right-handed or left-handed.