Построение элементарной поверхности

Функция

MbResultType ElementarySurface( const MbCartPoint3D & point0,
                                const MbCartPoint3D & point1,
                                const MbCartPoint3D & point2,
                                      MbeSpaceType    surfaceType,
                                      MbSurface *&    result )

выполняет построение элементарной поверхности.

Входными параметрами функции являются:

  • point0 – точка, определяющая начало локальной системы координат поверхности;

  • point1 – точка, определяющая направление осей axisX, axisZ (в зависимости от типа поверхности) локальной системы координат и высоту поверхности;

  • point2 – точка, определяющая направление оси axisY локальной системы;

  • surfaceType – тип поверхности.

Выходным параметром функции является построенная поверхность result.

При успешном завершении работы функция возвращает rt_Success, в противном случае функция возвращает код ошибки из перечисления MbResultType.

Функция объявлена в файле action_surface.h.

Параметр surfaceType определяет тип создаваемой поверхности. Контрольные точки point0, point1 и point2 определяют локальную систему координат и размеры элементарной поверхности. Точка point0 определяет начало локальной системы координат. В таблице приведены тип поверхности, ось локальной системы координат и величина, которую определяет точка point1 для создания поверхности типа surfaceType:

surfaceType

Тип поверхности

Точка point1 определяет

st_Plane

плоскость

axisX

st_CylinderSurface

цилиндрическая поверхность

axisZ, высоту

st_ConeSurface

коническая поверхность

axisZ, высоту

st_SphereSurface

сферическая поверхность

axisZ

st_TorusSurface

поверхность тора

axisX, больший радиус

Точка point1 определяет высоту цилиндрической поверхности, высоту конической поверхности, больший радиус поверхности тора. Точка point2 определяет радиус цилиндрической поверхности, радиус конической поверхности и угол конусности, радиус сферы, малый радиус поверхности тора.

При построении плоскости точки point0, point1 и point2 определяют локальную систему координат плоскости с началом в точке point0. Ось axisX локальной системы координат плоскости направлена из точки point0 в точку point1, ось axisY локальной системы координат плоскости ортогональна оси axisX и направлена в сторону точки point2. Область определения первого параметра равна удвоенному расстоянию между точками point0 и point1. Область определения второго параметра равна удвоенному расстоянию между точками point0 и проекцией на ось axisY точки point2, рис. 1:

../../../../_images/M.5.1.1.png

Рис. 1

При построении цилиндрической поверхности точка point0 определяет центр нижнего основания цилиндра, в котором располагается начало локальной системы координат. Точка point1 определяет центр верхнего основания цилиндра. Ось axisZ локальной системы координат поверхности направлена из точки point0 в точку point1. Точка point2 вместе с предыдущими точками определяет плоскость расположения осей axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point1 определяет высоту цилиндрической поверхности, расстояние от оси axisZ до точки point2 определяет радиус цилиндрической поверхности, рис. 2:

../../../../_images/M.5.1.2.png

Рис. 2

Цилиндрическая поверхность описана в параграфе Цилиндрическая поверхность MbCylinderSurface.

При построении конической поверхности точка point0 определяет вершину конуса, в которой располагается начало локальной системы координат. Точка point1 определяет центр основания конуса и направление оси axisZ локальной системы координат конуса. Точка point2 вместе с предыдущими точками определяет плоскость расположения осей axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point1 определяет высоту конической поверхности. Точка point2 определяет угол конусности, из условия, что точка point2 лежит на конической поверхности, рис. 3:

../../../../_images/M.5.1.3.png

Рис. 3

Коническая поверхность описана в параграфе Коническая поверхность MbConeSurface.

При построении сферической поверхности точка point0 определяет центр сферы, в котором располагается начало локальной системы координат. Ось axisZ локальной системы координат поверхности направлена из точки point0 в точку point1. Точка point2 вместе с предыдущими точками определяет плоскость расположения осей axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point2 определяет радиус сферической поверхности, рис. 4:

../../../../_images/M.5.1.4.png

Рис. 4

Сферическая поверхность описана в параграфе Сферическая поверхность MbSphereSurface.

При построении поверхности тора точка point0 определяет центр тора, в котором располагается начало локальной системы координат. Ось axisX локальной системы координат поверхности направлена из точки point0 в точку point1. Точка point2 вместе с предыдущими точками определяет плоскость, в которой располагаются оси axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point1 определяет больший радиус тора, расстояние между точками point1 и point2 определяет меньший радиус тора, рис. 5:

../../../../_images/M.5.1.5.png

Рис. 5

Поверхность тора описана в параграфе Поверхность тора MbTorusSurface.

В тестовом приложении test.exe построение элементарной поверхности по заданным точкам выполняется командой меню «Создать → Поверхность → Элементарную».