.. role:: blue :class: blue Вычисление площади поверхности ============================== .. _Calculation_of_Surface_Area: .. версия ядра: Метод .. code-block:: cpp double CalculateArea( const RPArray & faces, double deviateAngle ) вычисляет площадь поверхности набора граней. Входными параметрами метода являются: - **faces** – набор граней - *deviateAngle* – параметр управления точностью расчёта Метод возвращает площадь набора граней. Метод объявлен в файле *mip_solid_mass_inertial.h*. Параметр *deviateAngle* управляет точностью расчёта, и от его значения зависит время расчёта. Параметр *deviateAngle* должен находиться в пределах 0.01 <= *deviateAngle* <= 0.35 радиан. Вычисление в общем случае выполняется численно и использует триангуляцию области определения параметров поверхности граней. Триангуляция параметрической области граней выполняется методом :blue:`CalculateGrid`\(), описанным в параграфе :ref:`Построение полигонов объекта `, при значениях *stepData*\.*stepType* = ist_MipStep и *stepData.angle* = *deviateAngle*. Параметр *deviateAngle* определяет максимально допустимый угол между нормалями соседних треугольников и четырёхугольников триангуляции поверхности. Метод .. code-block:: cpp double CalculateArea( const MbFace & face, double deviateAngle ) вычисляет площадь поверхности одной грани. Входными параметрами метода являются: - **face** – грань - *deviateAngle* – параметр управления точностью расчёта Метод возвращает площадь грани **face**. Метод объявлен в файле *tri_face.h*. Параметр *deviateAngle* управляет точностью расчёта, и от его значения зависит время расчёта. Параметр *deviateAngle* должен находиться в пределах 0.01 <= *deviateAngle* <= 0.35 радиан. Метод .. code-block:: cpp double CalculateArea( const MbSurface & surface, double deviateAngle ) вычисляет площадь поверхности. Входными параметрами метода являются: - **surface** – поверхность - *deviateAngle* – параметр управления точностью расчёта Метод возвращает площадь поверхности **surface**. Метод объявлен в файле *mip_solid_area_volume.h*. Параметр *deviateAngle* управляет точностью расчёта, и от его значения зависит время расчёта. Параметр *deviateAngle* должен находиться в пределах 0.01 <= *deviateAngle* <= 0.35 радиан. Метод .. code-block:: cpp double CalculateAreaCentre( const MbFace & face, double deviateAngle, bool byOuter, VERSION version, MbCartPoint3D & centre ) вычисляет площадь поверхности и центр масс грани. Входными параметрами метода являются: - **face** – грань - *deviateAngle* – параметр управления точностью расчёта - *byOuter* – параметр игнорирования внутренних вырезов грани - version – параметр версионирования расчёта Выходным параметром метода является **centre** – центр масс грани. Метод возвращает площадь грани. Метод объявлен в файле *mip_solid_area_volume.h*. Параметр *deviateAngle* управляет точностью расчёта, и от его значения зависит время расчёта. Параметр *deviateAngle* должен находиться в пределах 0.01 <= *deviateAngle* <= 0.35 радиан. Параметр *byOuter* позволяет исключить внутренние вырезы грани при расчёте. Если *byOuter* = true, то в расчёте считается, что внутренние вырезы грани отсутствуют. Для нормального расчёта площади поверхности и центра масс грани следует положить *byOuter* = false. Параметр version необходим для поддержания старых версий расчёта. Метод .. code-block:: cpp double CalculateAreaCentre( const MbFaceShell & shell, double deviateAngle, MbCartPoint3D & centre ) вычисляет площадь поверхности и центр масс набора граней. Входными параметрами метода являются: - **shell** – набор граней - *deviateAngle* – параметр управления точностью расчёта Выходным параметром метода является **centre** – центр масс набора граней. Метод возвращает площадь набора граней. Метод объявлен в файле *mip_solid_area_volume.h*. Параметр *deviateAngle* управляет точностью расчёта, и от его значения зависит время расчёта. Параметр *deviateAngle* должен находиться в пределах 0.01 <= *deviateAngle* <= 0.35 радиан.