我有一个简单的 java 应用程序,可以测试 4 个墙壁和 10 个球中的每一个的碰撞...我已经弄清楚了墙壁,但圆到圆似乎对我不起作用。当我与程序的其余部分一起运行该部分时,我得到了 10 个非常摇晃的圆圈(它们似乎在与自己发生碰撞)并且它们根本不动。如果我把这个部分拿出来,我会得到 10 个圆,它们会平稳地移动并从 4 个墙壁上碰撞。有人可以告诉我可能导致问题的原因吗?谢谢
for (int j = 0; j < ballnum; ++j) {
for (int k = 0; k < ballnum; ++k) {
if (Math.sqrt((Math.pow(balls[j].givebackpoint().x - balls[k].givebackpoint().x, 2))
+ (Math.sqrt(Math.pow(balls[j].givebackpoint().y - balls[k].givebackpoint().y, 2)))) <= 2 * RADIUS) {
if (balls[j].givebackangle() >= 180) {
balls[j].setangle(balls[j].givebackangle()-180);
}
else{
balls[j].setangle(360-balls[j].givebackangle());
}
}
}
}