Дуга эллипса MbArc3D

Класс MbArc3D объявлен в файле cur_arc_3d.h.

Дуга эллипса является наследником кривой MbCurve3D. Дуга эллипса MbArc3D описывается двумя радиусами a и b и двумя углами trim1 и trim2, заданными в локальной системе координат MbPlacement3D position.

Углы trim1 и trim2 отсчитываются по дуге в направлении движения от вектора position.axisX к вектору position.axisY. Углы trim1 и trim2 будем называть параметрами усечения. Значения параметров усечения, равные нулю и 2π, соответствуют точке на координатной оси position.axisX. Параметр кривой t принимает значения на отрезке: 0 ≤ t ≤ trim2 – trim1. Кривая может быть периодической. У периодической кривой trim2 – trim1 = 2π.

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

\[\mathbf{r}(t) = \mathbf{position.origin} + a \cos(\mathit{trim1} + t)\,\mathbf{position.axisX} + b \sin(\mathit{trim1} + t)\,\mathbf{position.axisY}.\]

Дуга эллипса приведена на рисунке:

../../../../_images/O.4.4.1.png

Радиусы кривой должны быть больше нуля: a > 0, b > 0. Для параметров усечения должны соблюдаться неравенства: trim1 < trim2.

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