簡體   English   中英

圓之間的沖突

[英]Glancing collision between circles

我正在將游戲原型中的對象建模為圓圈。 每個對象都有質量,半徑,速度和位置。 沒有兩個物體具有相同的質量和半徑。

我必須遵循應該用來計算它們之間的彈性碰撞的代碼,但是我注意到結果總是好像圓環彼此碰撞一樣。

private void handleCollision(JumpObject a, JumpObject b) {
        double newVelAX = (a.getVelocity().x * (a.getMass() - b.getMass()) + (2 * b.getMass() * b.getVelocity().x)) 
                / (a.getMass() + b.getMass());
        double newVelAY = (a.getVelocity().y * (a.getMass() - b.getMass()) + (2 * b.getMass() * b.getVelocity().y)) 
                / (a.getMass() + b.getMass());
        double newVelBX = (b.getVelocity().x * (b.getMass() - a.getMass()) + (2 * a.getMass() * a.getVelocity().x)) 
                / (a.getMass() + b.getMass());
        double newVelBY = (b.getVelocity().y * (b.getMass() - a.getMass()) + (2 * a.getMass() * a.getVelocity().y)) 
                / (a.getMass() + b.getMass());

        a.getVelocity().setLocation(newVelAX, newVelAY);
        b.getVelocity().setLocation(newVelBX, newVelBY);
}

我需要處理這樣一個情況,其中一個圓以一個掠過的角度撞到另一個圓(如果需要的話,我可以稍后再做一個圖),例如當一個小圓剛經過時幾乎不刻划一個大圓的邊緣時。

如何修改我的碰撞算法以說明一個圈擊中對方?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM