Соединительная кривая MbBridgeCurve3D

Класс MbBridgeCurve3D объявлен в файле cur_bridge3d.h.

Соединительная кривая является наследником кривой MbCurve3D и описывается двумя кривыми MbCurve3D curve1 и MbCurve3D curve2, параметрами точек этих кривых param1 и param2, признаками sense1 и sense2 совпадения направлений производных соединительной кривой и соединяемых кривых, двумя граничными параметрами соединительной кривой tmin и tmax.

Соединительная кривая строится конструктором

MbBridgeCurve3D( MbCurve3D & c1, double t1, bool s1,
                 MbCurve3D & c2, double t2, bool s2,
                 double _tmin = 0.0, double _tmax = 1.0 ).

Соединительная кривая служит для плавного соединения двух указанных точек кривых curve1 и curve2 и представляет собой кубический сплайн Эрмита, построенный по двум крайним точкам и производным кривой в этих точках. Параметр кривой t принимает значения на отрезке tmin ≤ t ≤ tmax.

В методе

PointOn(double & t, MbCartPoint3D & r)

радиус-вектор кривой r описывается векторной функцией

\[\mathbf{r}(t) = (1 - 3w^{2} + 2w^{3}) \cdot point1 + (3w^{2} + 2w^{3}) \cdot point2 + \Bigl(\bigl(w - 2w^{2} + w^{3}\bigr) \cdot derive1 + \bigl(-w^{2} + w^{3}\bigr) \cdot derive2\Bigr) \cdot (tmax - tmin),\]

где

\[w = \frac{t - tmin}{tmax - tmin}\]

– относительное значение параметра, point1 – точка кривой curve1, которая вычисляется методом PointOn(param1, point1), point2 – точка кривой curve2, которая вычисляется методом PointOn(param2, point2), derive1 и derive2 – производные соединительной кривой в крайних точках. Векторы derive1 и derive2 направлены параллельно производным соединяемых кривых. Длина векторов derive1 и derive2 равна расстоянию между крайними точками, делённому на tmax – tmin. Соединительная кривая приведена на рисунке:

../../../../_images/O.4.17.1.png

Форма кривой зависит от расположения крайних точек и направлений соединяемых кривых в этих точках. Для граничных параметров должны соблюдаться неравенства: tmin < tmax. Кривая не может быть периодической.