早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用Eclipse写Java程序实现小球的运动.匀速运动:速度可以改变加速运动:加速度可以改变,包括正负抛体运动:竖直上抛:可以改变初始速度平抛:可以改变水平初始速度斜抛:可以改变速

题目详情
用Eclipse写Java程序
实现小球的运动.匀速运动:速度可以改变 加速运动:加速度可以改变,包括正负 抛体运动:竖直上抛:可以改变初始速度 平抛:可以改变水平初始速度 斜抛:可以改变速度和角度 通过堆栈来实现小球运动轨迹的留存.小球的运动要写在下拉菜单中,点击后会跳出对话框来改变速度角 度加速度等.在框的边线上随机发出一个球,球做直线运动,当遇的边线时,成 角度的反弹,遇到另一条线 再成角度的反弹,如此循环下去.可 以改变球开始运动时的速度,加速度以及角度.如题 不要动态 写过程因为是题
▼优质解答
答案和解析
抛砖引玉一下
我觉得该题描述了3个事物
1 小球 Ball
2 放小球的容器 BallPanel
3 小球的控制器 BallControler
public class Ball{
double R = 0d; //球的半径
int cx;//当前小球中心X坐标
int cy;//当前小球中心Y坐标
double angle;//小球运动弧度 ,与cx,cy结合起来用来算出 小球移动到当前时的前一个坐标,及移动到下一个点的坐标
int speed;//小球运动速度,毫秒数
}
public class BallPanel{
double width;//放小球的容器宽
double height;//放小球的容器的高
BallControler []BallControlers;//放了多少个小球
}
public class BallControler extends Thread{
Ball tBall;//该控制器控制的小球
BallControler(Ball tBall){
this.tBall = tBall;
}
private int [] getNextPosition(){
/**
返回下一点的x,y坐标
*/
}
private int [] getPreviousPosition(){
/**
返回前一点的x,y坐标
*/
}
private void moveBall(int x,int y){
//移动小球到指定的x,y坐标.
//有必要的话,可以记录小球的运动轨迹到堆栈中
}
public void run(){
Thread.sleep(tBall.speed);//按照小球规定的速度移动
//下面的代码,计算并且移动小球到下一个点,计算是否碰壁(当前小球中心坐标+半径是否超过BallPanel的长,或者高等),并且移动小球
}
}