Библиотека Cannon.js реализует физический движок для JavaScript, предоставляя средства для симуляции твердых тел с учетом законов Ньютона. Одними из ключевых параметров, определяющих поведение тел, являются масса и момент инерции. Эти величины напрямую влияют на движение объектов под действием сил и на их реакцию при столкновениях.
Масса (mass) задается в килограммах и отражает
сопротивление тела ускорению при приложении силы. В Cannon.js масса
является обязательным параметром при создании динамических тел:
const body = new CANNON.Body({
mass: 5, // кг
shape: new CANNON.Sphere(1) // радиус 1
});
Ключевые моменты:
mass: 0) делает тело
статическим, оно не реагирует на силы и не перемещается
под действием физики.Момент инерции (inertia) описывает сопротивление тела
вращению относительно осей. Для простых форм Cannon.js автоматически
вычисляет момент инерции, исходя из формы и массы:
body.updateMassProperties();
Особенности момента инерции:
m —
масса, r — радиус.inertia:body.inertia.set(1, 1, 1); // отдельные значения по X, Y, Z
body.invInertia.set(
1 / body.inertia.x,
1 / body.inertia.y,
1 / body.inertia.z
);
updateMassProperties(), чтобы физический движок правильно
пересчитал внутренние параметры.Масса и момент инерции тесно связаны через формулы для различных форм тел. Cannon.js использует стандартные формулы для:
Неверное определение массы или момента инерции может привести к неестественному поведению тел, например:
const box = new CANNON.Body({
mass: 2,
shape: new CANNON.Box(new CANNON.Vec3(1, 1, 1))
});
box.position.set(0, 5, 0);
box.updateMassProperties();
box.mass = 5;
box.updateMassProperties();
box.inertia.set(2, 3, 4);
box.invInertia.set(
1 / box.inertia.x,
1 / box.inertia.y,
1 / box.inertia.z
);
mass = 0
используют меньше ресурсов, не требуют пересчета инерции.updateMassProperties() после изменения
mass или inertia.Масса и момент инерции в Cannon.js являются фундаментальными параметрами, от которых зависит реалистичность симуляции. Правильная настройка этих величин обеспечивает физически достоверное поведение объектов, управляемое законом Ньютона, с естественными ускорениями и вращениями.