
正文
自由落体运动java代码 java小球自由落体代码
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Java求解自由落体问题,用Java语言
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入高度自由落体运动java代码:");
float m = input.nextFloat();
System.out.print("请输入弹跳次数自由落体运动java代码:");
int n = input.nextInt();//
float sum = 0;
for (int i = n; i 0; i--) {
sum += m;
sum += m /= 2;
}
// 保留两位小数
// System.out.println("第n次弹起高度:" + (m+"").substring(0,(m+"").indexOf(".")+3) + "米\n共经过自由落体运动java代码:" +(sum+"").substring(0,(sum+"").indexOf(".")+3)+"米");
System.out.println("第n次弹起高度:" + m + "米\n共经过:" + sum + "米");
}
}
相关问答
Q1: java实现一个小球的自由落体运动
你说的是模拟直线运动还是轨迹是抛物线的那种?
如何去模拟说白了就是要根据某种算法计算出物体运动的下一个坐标,做自由落体运动满足能量守恒定理,要把它实现出来关键是确定一个能量衰减(转化为其他能量)系数,就是物体以多少速度撞击然后以多少速度反弹,以多少角度撞击和以多少角度反弹,这个类似于镜面反射。
确定了以上这些,实现起来就不难了。
Q2: JAVA 模拟小球自由落体和平抛运动
这个绝对可以的,我都试过了。请采纳,谢谢。
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class BallThread extends Applet implements Runnable{
Thread red, blue;
Graphics redPen, bluePen;
int t=0;
public void init(){
red = new Thread(this);
blue = new Thread(this);
redPen = getGraphics();
bluePen = getGraphics();
redPen.setColor(Color.red);
bluePen.setColor(Color.blue);
}
public void start(){
red.start();
blue.start();
}
public void run(){
while(true){
t=t+1;
if(Thread.currentThread()==red){
if(t100)t=0;
redPen.clearRect(0,0,110,400);
redPen.fillOval(50,(int)(1.0/2*t*9.8),15,15);
try{
red.sleep(40);
}catch(InterruptedException e){}
}else if(Thread.currentThread()==blue){
bluePen.clearRect(120,0,900,500);
bluePen.fillOval(120+7*t,(int)(1.0/2*t*9.8),15,15);
try{
blue.sleep(40);
}catch(InterruptedException e){}
}
}
}
}
Q3: java自由落体题
发现“cloudhy”同学的程序,有点小问题,完善如下:
/**
*1. 模拟自由落体程序 程序描述:一个小球从100m高度自由落下,每次落地后反弹跳回原高度的一半,再落下。编程实现:
* 1)求小球在第5次落地时,一共经过多少m?
* 2) 第5次反弹高度多少m?
* 3) 将以上两个计算结果的输出。
*/
public class FreeFallen {
/**
* 计算第time次弹起的高度
*
* @param time 弹起的次数
*/
public static double countHeight(int time) {
double height = 100; //应该是double类型的,第三次弹起就是小数了
for (int i = 0; i time; i++) {
height = height / 2;
}
return height;
}
/**
* 计算第time次落地后经过的距离
*
* @param time 落地的次数
*/
public static double countDistance(int time) {
double distance = 100; //总距离
double each; //每次经过的距离
for (int i = 1; i time; i++) {
//distance += distance / 2;
each = countHeight(i-1); //每次弹起下落一回就等于上一次的高度,因为每次落地后反弹跳回原高度的一半
distance += each;
}
return distance;
}
public static void main(String[] args) {
System.out.println(countDistance(5));
System.out.println(countHeight(5));
}
}
Q4: java GUI模拟平抛运动和自由落体运动
简单做了一个
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Color;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Panel;
import java.awt.Point;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.List;
public class MyFrame extends Frame implements Runnable,ActionListener{
double x1 = 100,y1 = 0;//A的起始位置
double x2 = 100,y2 = 0;//B的起始位置
double s2 = 26;//B的水平速度
double g = 9.8;//G
long time = 10000;//模拟10秒钟
double py = 1;//y轴比例尺
ListPoint list1 = new ArrayListPoint();
ListPoint list2 = new ArrayListPoint();
MPanel p1 = new MPanel();
Button b1 = new Button("启动");
Thread t ;
public MyFrame(){
b1.addActionListener(this);
this.add(b1,BorderLayout.NORTH);
this.add(p1,BorderLayout.CENTER);
this.setSize(800,600);
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}});
this.setVisible(true);
}
public void run(){
list1 = new ArrayListPoint();
list2 = new ArrayListPoint();
double xx1 = x1,yy1 = y1,xx2 = x2,yy2 = y2;//本时刻位置
long start = System.currentTimeMillis();
long end = start;
while(end-start=time){
end = System.currentTimeMillis();
double t = (end - start)/1000.0;
yy1 = (y1 + g*t*t/2)*py;
xx2 = x1 + s2*t;
yy2 = (y2 + g*t*t/2)*py;
int sx1 = (int)xx1;
int sy1 = (int)yy1;
int sx2 = (int)xx2;
int sy2 = (int)yy2;
list1.add(new Point(sx1,sy1));
list2.add(new Point(sx2,sy2));
p1.repaint();
try {
Thread.sleep(50);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void actionPerformed(ActionEvent e) {
if (t==null||!t.isAlive()){
t = new Thread(this);
t.start();
}
}
public class MPanel extends Panel{
BufferedImage im = new BufferedImage(800,600,BufferedImage.TYPE_INT_RGB);
public void paint(Graphics gg){
Graphics g = im.getGraphics();
g.setColor(Color.white);
g.fillRect(0,0,800,600);
g.setColor(Color.blue);
Point ppp1 = null;
Point ppp2 = null;
for (int i=0;ilist1.size();i++){
Point pp1 = list1.get(i);
Point pp2 = list2.get(i);
if (ppp1!=nullppp2!=null){
g.drawLine(pp1.x,pp1.y,ppp1.x,ppp1.y);
g.drawLine(pp2.x,pp2.y,ppp2.x,ppp2.y);
}
ppp1 = pp1;
ppp2 = pp2;
}
if (ppp1!=nullppp2!=null){
g.fillOval(ppp1.x-5,ppp1.y-5,10,10);
g.fillOval(ppp2.x-5,ppp2.y-5,10,10);
}
g.dispose();
gg.drawImage(im,0,0,800,600,p1);
}
}
public static void main(String[] args) {
new MyFrame();
}
}
关于自由落体运动java代码和java小球自由落体代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。






