2011-07-04 5 views
1

が使用されている:ボールの物理的特性はどのように設定する必要がありますか?ボールの物理的性質以下

  • ゴルフボール

    // Create circle shape 
    b2CircleShape circle; 
    circle.m_radius = 15.5/PTM_RATIO; 
    
    // Create ball shape definition and add to body 
    b2FixtureDef ballShapeDef; 
    ballShapeDef.shape = &circle; 
    ballShapeDef.density = 5000.0f; 
    ballShapeDef.friction = 10.0f; 
    ballShapeDef.restitution = 0.2f; 
    
    ballFixture = ballBody->CreateFixture(&ballShapeDef); 
    
  • cricketball

    // Create circle shape 
    b2CircleShape circle; 
    circle.m_radius = 17.0/PTM_RATIO; 
    
    // Create ball shape definition and add to body 
    b2FixtureDef ballShapeDef; 
    ballShapeDef.shape = &circle; 
    ballShapeDef.density = 5000.0f; 
    ballShapeDef.friction = 10.0f; 
    ballShapeDef.restitution = 0.4f; 
    
    ballFixture = ballBody->CreateFixture(&ballShapeDef); 
    
  • ironball

    // Create circle shape 
    b2CircleShape circle; 
    circle.m_radius = 23.0/PTM_RATIO; 
    
    // Create ball shape definition and add to body 
    b2FixtureDef ballShapeDef; 
    ballShapeDef.shape = &circle; 
    ballShapeDef.density = 5000.0f; 
    ballShapeDef.friction = 10.0f; 
    ballShapeDef.restitution = 0.0f; 
    
    ballFixture = ballBody->CreateFixture(&ballShapeDef); 
    
  • 個の
  • サッカーボール:

    // Create circle shape 
    b2CircleShape circle; 
    circle.m_radius = 24.0/PTM_RATIO; 
    
    // Create ball shape definition and add to body 
    b2FixtureDef ballShapeDef; 
    ballShapeDef.shape = &circle; 
    ballShapeDef.density = 5000.0f; 
    ballShapeDef.friction = 10.0f; 
    ballShapeDef.restitution = 0.8f; 
    
    ballFixture = ballBody->CreateFixture(&ballShapeDef); 
    
  • バスケットボール:いまいましい、

    // Create circle shape 
    b2CircleShape circle; 
    circle.m_radius = 24.0/PTM_RATIO; 
    
    // Create ball shape definition and add to body 
    b2FixtureDef ballShapeDef; 
    ballShapeDef.shape = &circle; 
    ballShapeDef.density = 5000.0f; 
    ballShapeDef.friction = 10.0f; 
    ballShapeDef.restitution = 0.6f;   
    ballFixture = ballBody->CreateFixture(&ballShapeDef); 
    

は、すべて私は推測に基づいて実施している初心者なので、私はstucked障害物のようないくつかの問題を抱えていますスローモーションでのスローモーション、そしてその他多くのものがありますので、もっと良い解決策があればそれらを入れてください。

答えて

1

まず、100を超える密度を使用することはお勧めしません。これは悪いシミュレーションを提供します。密度を1から100の範囲に保ちます。動的ボディの場合は範囲​​[0.1,10]のボディのサイズと同じです(静的な場合はbox2dドキュメントのもの)。通常、摩擦は0と1の間に設定されます(box2dドキュメントからも)。だからあなたは、自分のユニットで足の足の範囲で働かなければなりません。たとえば、密度を1立方センチメートルあたりのグラム数で測定できます。

ボールの密度を評価するには、ボールの半径と質量を知る必要があります。この場合、m/Vとして密度を求めることができます。ここで、Vは音量です。

傷害を測定するには、YouTubeでいくつかの動画を見つけ、投げたときにボールがどれほど高く飛び跳ねるかを確認します。反発はh2/h1となります.h1の初期高さ、h2 - バウンス後の高さ

0

私はこれに本当の答えがないと思いますが、おそらくあなたに最もよく見えるものと一緒に行く必要があります。しかし、いくつかのコメント:密度は非常に高く、摩擦は0-1の間でなければならない、ゴルフボールの反発は実際にはかなり高いです。私は1の密度と約0.5の摩擦で始まりそこから調整することを提案します。

関連する問題