Построение элементарной поверхности
Функция
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:
Рис. 1
При построении цилиндрической поверхности точка point0 определяет центр нижнего основания цилиндра, в котором располагается начало локальной системы координат. Точка point1 определяет центр верхнего основания цилиндра. Ось axisZ локальной системы координат поверхности направлена из точки point0 в точку point1. Точка point2 вместе с предыдущими точками определяет плоскость расположения осей axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point1 определяет высоту цилиндрической поверхности, расстояние от оси axisZ до точки point2 определяет радиус цилиндрической поверхности, рис. 2:
Рис. 2
Цилиндрическая поверхность описана в параграфе Цилиндрическая поверхность MbCylinderSurface.
При построении конической поверхности точка point0 определяет вершину конуса, в которой располагается начало локальной системы координат. Точка point1 определяет центр основания конуса и направление оси axisZ локальной системы координат конуса. Точка point2 вместе с предыдущими точками определяет плоскость расположения осей axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point1 определяет высоту конической поверхности. Точка point2 определяет угол конусности, из условия, что точка point2 лежит на конической поверхности, рис. 3:
Рис. 3
Коническая поверхность описана в параграфе Коническая поверхность MbConeSurface.
При построении сферической поверхности точка point0 определяет центр сферы, в котором располагается начало локальной системы координат. Ось axisZ локальной системы координат поверхности направлена из точки point0 в точку point1. Точка point2 вместе с предыдущими точками определяет плоскость расположения осей axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point2 определяет радиус сферической поверхности, рис. 4:
Рис. 4
Сферическая поверхность описана в параграфе Сферическая поверхность MbSphereSurface.
При построении поверхности тора точка point0 определяет центр тора, в котором располагается начало локальной системы координат. Ось axisX локальной системы координат поверхности направлена из точки point0 в точку point1. Точка point2 вместе с предыдущими точками определяет плоскость, в которой располагаются оси axisX и axisZ локальной системы координат поверхности. Расстояние между точками point0 и point1 определяет больший радиус тора, расстояние между точками point1 и point2 определяет меньший радиус тора, рис. 5:
Рис. 5
Поверхность тора описана в параграфе Поверхность тора MbTorusSurface.
В тестовом приложении test.exe построение элементарной поверхности по заданным точкам выполняется командой меню «Создать → Поверхность → Элементарную».