.. role:: blue :class: blue Дуга эллипса MbArc3D ==================== .. _MbArc3D_Elliptical_Arc: .. версия ядра: Класс :blue:`MbArc3D` объявлен в файле *cur_arc_3d.h*. Дуга эллипса является наследником кривой :blue:`MbCurve3D`. Дуга эллипса :blue:`MbArc3D` описывается двумя радиусами *a* и *b* и двумя углами *trim1* и *trim2*, заданными в локальной системе координат :ref:`MbPlacement3D ` **position**. Углы *trim1* и *trim2* отсчитываются по дуге в направлении движения от вектора **position.axisX** к вектору **position.axisY**. Углы *trim1* и *trim2* будем называть параметрами усечения. Значения параметров усечения, равные нулю и 2π, соответствуют точке на координатной оси **position.axisX**. Параметр кривой *t* принимает значения на отрезке: 0 ≤ *t* ≤ *trim2* – *trim1*. Кривая может быть периодической. У периодической кривой *trim2* – *trim1* = 2π. В методе :blue:`PointOn`\( double & *t*, :blue:`MbCartPoint3D` & **r** ) радиус-вектор кривой **r** описывается векторной функцией .. math:: \mathbf{r}(t) = \mathbf{position.origin} + a \cos(\mathit{trim1} + t)\,\mathbf{position.axisX} + b \sin(\mathit{trim1} + t)\,\mathbf{position.axisY}. Дуга эллипса приведена на рисунке: .. figure:: /MODELER/CURVES/pictures/O.4.4.1.png :width: 15cm :align: center Радиусы кривой должны быть больше нуля: *a* > 0, *b* > 0. Для параметров усечения должны соблюдаться неравенства: *trim1* < *trim2*. Локальная система координат **position** может быть как правой, так и левой.