Соединительная кривая 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 описывается векторной функцией
где
– относительное значение параметра, point1 – точка кривой curve1, которая вычисляется методом PointOn(param1, point1), point2 – точка кривой curve2, которая вычисляется методом PointOn(param2, point2), derive1 и derive2 – производные соединительной кривой в крайних точках. Векторы derive1 и derive2 направлены параллельно производным соединяемых кривых. Длина векторов derive1 и derive2 равна расстоянию между крайними точками, делённому на tmax – tmin. Соединительная кривая приведена на рисунке:
Форма кривой зависит от расположения крайних точек и направлений соединяемых кривых в этих точках. Для граничных параметров должны соблюдаться неравенства: tmin < tmax. Кривая не может быть периодической.