Построение правильного многоугольника
Функция
MbResultType RegularPolygon( const MbCartPoint3D & centre,
const MbCartPoint3D & point,
const MbVector3D & axisZ,
size_t vertexCount,
bool describe,
MbCurve3D *& result )
выполняет построение правильного многоугольника, вписанного в обозначенную окружность или описанного около окружности.
Входными параметрами функции являются:
centre — центр окружности, описанной около равностороннего многоугольника или вписанной в равносторонний многоугольник;
point — точка на окружности;
axisZ — вектор, перпендикулярный плоскости окружности;
vertexCount — количество вершин многоугольника;
describe — флаг описанной или вписанной окружности (true — описанный многоугольник, false — вписанный многоугольник).
Выходным параметром функции является построенная ломаная кривая result.
При успешном завершении работы функция возвращает rt_Success, в противном случае функция возвращает код ошибки из перечисления MbResultType.
Функция объявлена в файле action_curve3d.h.
Параметры centre, point и axisZ определяют окружность, в которую будет вписан (describe = false) многоугольник с числом вершин vertexCount или вокруг которой будет описан (describe = true) многоугольник с числом вершин vertexCount. Центр окружности будет расположен в точке centre, окружность пройдёт через точку point, ось окружности будет параллельна вектору axisZ.
Параметр vertexCount определяет число вершин правильного многоугольника:
при vertexCount == 0 строится окружность с центром centre, проходящая через point;
при vertexCount == 1 строится отрезок c крайними точками centre и point;
при vertexCount == 2 строится прямоугольник со сторонами, параллельными глобальным осям и с противоположными вершинами в centre и point;
при vertexCount >= 3 строится правильный многоугольник с заданным числом сторон, вписанный в окружность (describe == false) или описанный вокруг окружности (describe == true) с центром centre, проходящей через point.
Построенная кривая будет замкнутой ломаной линией, описанной в подразделе Ломаная линия MbPolyline3D (для vertexCount >= 3). На рис. 1 приведён вписанный в окружность правильный многоугольник, а на рис. 2 приведён описанный вокруг окружности правильный многоугольник:
Рис. 1
Рис. 2