JAVA如何实现小球的弹性碰撞

重点在于碰撞时小球的速度方向的计算方式,以及移动的步长计算,万分感谢!
2026年09月20日 23:25
有2个网友回答
网友(1):

我没用java写过代码,所以我只说算法,代码你自己翻译下
按C的语法来:
void xiaoqiu
{
int UB=10,DB=200,LB=10,RB=200; //定义弹球范围的边界
int sh=1; //定义横向步长
int sz=1; //定义纵向步长(两步长之比决定了反弹的角度)
int x=LB,y=UB; //定义坐标
int i=10000; //循环次数(自己选择跳出手段)

while(i>0)
{
i--;
x=x+sh;
if(x>=RB||x<=LB) sh=-sh; //碰壁后步长变反
y=y+sz;
if(y>=DB||y<=UB) sz=-sz; //碰壁后步长变反
(显示代码)

}
return;

}

总得来说,就是相当于横向和纵向分别处理移动、反弹的问题,碰壁后步长变为相反数

不懂请追问

网友(2):

用递归算法!