编写一个Java GUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动:一个球自由落下,一个球水平抛出。 (自由落体物理公式:h= g *t2/2 ;平抛运动物理公式:h= g *t2/2 ,x=26*t ;
编写一个Java GUI应用程序,采用Java多线程技术,模拟自由落体和平抛运动:一个球自由落下,一个球水平抛出。 (自由落体物理公式:h= g *t2/2 ;平抛运动物理公式:h= g *t2/2 ,x=26*t ;
package com.tkt;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Down extends JFrame implements Runnable{
int x=30,y=30; //坐标
long t=0; //时间
public Down(){
this.setSize(1200,700);
JPanel panel =new JPanel(){
public void paint(Graphics g){
x+=3*t; //自由落体就把这行代码注掉
y+=t*t/10;
g.fillOval(x,y,40, 40);//画小球的位置
}
};
this.setContentPane(panel);
panel.setBackground(Color.blue);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
Down d = new Down();
new Thread(d).start();
}
public void run(){ //这个线程用来不断重画我们的图面
while(true){
try {
Thread.sleep(50); //每隔50ms画一次
t+=1;
this.repaint();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
这里面我只是没有按g=9.18m/s*s来算,只要符合函数式就一样,也没有什么