.. role:: blue :class: blue Контур на поверхности MbContourOnSurface ======================================== .. _MbContourOnSurface_Contour_on_Surface: .. версия ядра: Класс :blue:`MbContourOnSurface` объявлен в файле *cur_contour_on_surface.h*. Контур на поверхности MbContourOnSurface описывается поверхностью :ref:`MbSurface ` **surface** и двумерным контуром :ref:`MbContour ` **contour** в пространстве параметров поверхности. У кривой есть ещё некоторые данные, которые не обязательны и служат для ускорения работы методов кривой. Контур на поверхности представляет собой составную кривую, поэтому может иметь изломы в точках стыковки сегментов двумерного контура. Контур на поверхности представляет собой отображение контура двумерного пространства параметров поверхности в трёхмерное пространство. Двумерный контур **contour** может располагаться за пределами области определения параметров поверхности. Область определения параметров контура на поверхности совпадает с областью определения параметров двумерного контура **contour**. В методе :blue:`PointOn`\( double & *t*, :blue:`MbCartPoint3D` & *r* ) радиус-вектор кривой *r* описывается векторной функцией .. math:: \mathbf{r}(t) = \mathbf{surface}(\mathbf{point}.x, \mathbf{point}.y), где *point* -- точка двумерного контура, которая вычисляется методом *contour* → :blue:`PointOn`\( *t*, *point* ). Координаты *x* и *y* двумерной точки *point* служат параметрами *u* и *v* поверхности *surface*\(\ *u*\,\ *v*). Контур на поверхности построен путём введения зависимости параметров поверхности *u* и *v* от некоторого общего для них параметра *t*: *u* = *u*\(\ *t*), *v* = *v*\(\ *t*). Эту зависимость описывает двумерный контур *contour*. Производная контура на поверхности вычисляется как сложная функция .. 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** -- производная двумерного контура, которая вычисляется методом *contour* → :blue:`FirstDer`\( *t*, *derive* ). Производная контура на поверхности лежит в касательной плоскости поверхности, построенной в рассматриваемой точке. Контур на поверхности приведен на рисунке: .. figure:: /MODELER/CURVES/pictures/O.4.22.1.png :width: 12cm :align: center Контур на поверхности может быть периодическим, если периодическим является двумерный контур *contour* или если периодической является поверхность *surface*, а крайние точки контура *contour* смещены на соответствующий период периодической по первому или второму параметру поверхности *surface*. Периодический контур на поверхности обычно используется для описания границы этой поверхности. Поверхностью *surface* контура на поверхности может служить любая поверхность, кроме поверхности, ограниченной кривыми :ref:`MbCurveBoundedSurface `. Если требуется построить контур на поверхности, ограниченной кривыми, то поверхностью будет служить базовая поверхность *MbCurveBoundedSurface*.