0

状況

私はビリヤード シミュレータを作成しており、ボールとして btSphere を使用してテーブル サーフェスを表す静的 btBox を持っています。デモでは、地面 (テーブル サーフェス) と btSphere の両方に、転がり摩擦にそれぞれ 1.0 と 0.3 の正の値が与えられています。デモ ショーでは球体が自然に回転し、最終的には静止します。

シミュレーションでこれらの値を使用すると、球体は角速度を維持できず、テーブルを横切って「滑る」だけです。サーフェス/球体に設定した転がり摩擦の値に関係ありません。

表面の転がり摩擦をゼロに設定すると (どちらでも構いません)、ボールが静止しようとするまで、現実的な転がり動作が生成されます。その後、どういうわけかこの一定の遅い速度を取得し、テーブルの周りをゾンビのように転がります。また、接触する前に、ボールが転がり始めることがあります。

考慮事項

摩擦と減衰のさまざまな組み合わせを試しましたが、デモの動作を再現したり、言及した問題を修正したりできません。私が考えることができる私のセットアップの唯一の重要な違いは、私のものははるかに小さいということです。これらが非常に小さい理由を説明するのは簡単ではありませんが、私の BALL_RADIUS = 0.0103 および BALL_MASS = 0.12393 です。

質問

表面と球体の両方に転がり摩擦があるのに、なぜボールが回転しないのですか?

それ以外の場合、球に転がり摩擦のみを設定しているときにボールが止まらないようにしているアイデアはありますか?

考え

docs/demo/code/web は、転がり摩擦を文書化するのにあまり良い仕事をしていません。それか、私が非常に奇妙なことをしている...助けてください!

4

1 に答える 1