Box2D for JavaScript でディスタンス ジョイントのスイングを永久に停止させるために、いくつかのプロジェクトで失敗しました。ボディの密度と、ダンピング レシオと離れたジョイント定義の周波数 Hz にどのような値を設定しても、結果として、一方の端を持ち上げると、もう一方の端が際限なく揺れます。スイングが小さくなり、数回スイングした後に停止するようにしたい。
// 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