Получение коэффициента демпфирования для работы с Box2D и DistanceJoint
Я безуспешно пытался в нескольких проектах получить совместное расстояние, чтобы перестать качаться навсегда в Box2D для JavaScript. Независимо от того, какие значения я установил для плотности тел, коэффициента демпфирования и частоты Гц для определения удаленного сустава - в результате вы берете один конец, а другой конец качается бесконечно. Я хочу, чтобы качели стали меньше, а затем остановились после нескольких качелей.
// I have made a world and bodies with density of 1 (although I have tried bigger)
var distanceJointDef = new b2DistanceJointDef();
distanceJointDef.Initialize(circleBody, triBody, circleBody.GetWorldCenter(), triBody.GetWorldCenter());
distanceJointDef.dampingRatio = 1; // tried .5, 20, etc. no difference
distanceJointDef.frequencyHz = 30; // tried all sorts of numbers
world.CreateJoint(distanceJointDef);
Соединение работает - но демпфирование - нет. Любая помощь будет оценена. Вот ссылка на Box2D, которую я использую: https://github.com/joelgwebber/bench2d/tree/master/js/Box2dWeb-2.1a.3
1 ответ
Ответ заключается в нанесении линейного демпфирования на объекты, которые вы качаете. var definition = new b2BodyDef(); Definition.linearDamping = .5; // и т. д., где числа к 1 быстро замедляются