.. role:: blue :class: blue Кривая на поверхности MbSurfaceCurve ===================================== .. _MbSurfaceCurve_Curve_on_Surface: .. версия ядра: Класс :blue:`MbSurfaceCurve` объявлен в файле *cur_surface_curve.h*. Кривая на поверхности MbSurfaceCurve описывается поверхностью :ref:`MbSurface ` *surface*, двумерной кривой :ref:`MbCurve ` *curve* в пространстве параметров поверхности и признаком периодичности кривой *closed*. У кривой есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов кривой. Кривая на поверхности представляет собой отображение кривой двумерного пространства параметров поверхности в трёхмерное пространство. Двумерная кривая *curve* может располагаться за пределами области определения параметров поверхности. Область определения параметров кривой на поверхности совпадает с областью определения параметров двумерной кривой *curve*. В методе :blue:`PointOn`\( double & *t*, :blue:`MbCartPoint3D` & *r*) радиус-вектор кривой *r* описывается векторной функцией *r*\(\ *t*) = *surface*\(\ *point.x*, *point.y* ), где *point* -- точка двумерной кривой, которая вычисляется методом *curve* → :blue:`PointOn`\(*t*, *point*). Координаты *x* и *y* двумерной точки *point* служат параметрами *u* и *v* поверхности *surface*\(\ *u*, *v*\). Кривая на поверхности построена путём введения зависимости параметров поверхности *u* и *v* от некоторого общего для них параметра *t*: *u* = *u*\(\ *t*), *v* = *v*\(\ *t*). Эту зависимость описывает двумерная кривая *curve*. Кривая на поверхности приведена на рис. 1: .. figure:: /MODELER/CURVES/pictures/O.4.20.1.png :width: 12cm :align: center Рис. 1 Двумерная кривая в области определения параметров поверхности приведена на рис. 2: .. figure:: /MODELER/CURVES/pictures/O.4.20.2.png :width: 15cm :align: center Рис. 2 Производная кривой на поверхности вычисляется как сложная функция .. math:: \frac{\mathit{dr}(t)}{\mathit{\text{dt}}} = \frac{\partial\mathbf{\text{surface}}(u,v)}{\partial u}\mathbf{\text{derive}}\text{.}{x + \frac{\partial\mathbf{\text{surface}}(u,v)}{\partial v}}\mathbf{\text{derive}}\text{.}y, где *derive* -- производная двумерной кривой, которая вычисляется методом *curve* → :blue:`FirstDer`\(\ *t*, *derive*\). Производная кривой на поверхности лежит в касательной плоскости поверхности, построенной в рассматриваемой точке. Кривая на поверхности может быть периодической, если периодической является двумерная кривая *curve* или если периодической является поверхность *surface*, а кривая *curve* имеет совпадающие производные на краях и крайние точки кривой смещены на соответствующий период периодической по первому или второму параметру поверхности *surface*. Поверхностью *surface* кривой на поверхности может служить любая поверхность, кроме поверхности, ограниченной кривыми :ref:`MbCurveBoundedSurface `. Если требуется построить кривую на поверхности, ограниченной кривыми, то поверхностью будет служить базовая поверхность *MbCurveBoundedSurface*.