Инерционные характеристики тела
Функция
void MassInertiaProperties( const MbSolid * solid,
double density,
double deviateAngle,
InertiaProperties & properties,
IfProgressIndicator * progress = 0 );
вычисляет площадь поверхности, объем, массу, центр масс и моменты инерции тела.
Входными параметрами функции являются:
solid – тело,
density – плотность или удельная масса на единицу площади,
deviateAngle – параметр управления точностью расчёта.
Выходными параметрами функции являются:
properties – рассчитанные инерционные характеристики,
progress – индикатор выполнения расчета.
Функция не возвращает значения.
Функция объявлена в файле mip_solid_mass_inertia.h.
Для замкнутого тела solid параметр density определяет плотность тела. Для незамкнутого тела solid параметр density определяет удельную массу единицы площади тела. Вычисление в общем случае выполняется численно и использует триангуляцию области определения параметров поверхности граней. Триангуляция параметрической области граней выполняется методом CalculateGrid(), описанным в параграфе Построение полигонов объекта, при значениях stepData.stepType = ist_MipStep и stepData.angle = deviateAngle. Параметр deviateAngle определяет максимально допустимый угол между нормалями соседних треугольников и четырёхугольников триангуляции поверхности. Параметр deviateAngle управляет точностью расчёта, и от его значения зависит время расчета. Параметр deviateAngle должен находиться в пределах 0.01 <= deviateAngle <= 0.35 радиан. Следует заметить, что при малых значениях deviateAngle для сложных моделей требуется большое время расчета.
Инерционные характеристики properties описаны в параграфе Построение полигонов объекта. Параметр progress выдает информацию о выполнении в процессе расчета и может использоваться для остановки вычислений.