目录
GalileanCoordinateTransformation.java
刚学这部分的知识,可能存在错误的地方,如有发现错误恳请提醒一下谢谢!
题目
一个猎人练习弓箭,他点开手机视频拍摄后开始正式计时(从时间0开始),他往正北方射出一只弓箭,这只以8m/s百步穿杨,射中后他回看了手机射箭视频,射箭花费时间刚好6秒整(假定t=t'),在射中之后的3秒,杨树上的小鸟受到惊吓,假定小鸟和弓箭射出的水平高度相同(都是1.5米),假定猎人轴向及小鸟的轴向为0,小鸟往弓箭射出的同个方向即正北方逃离,在空中飞行了220米。由猎人的位置确定的这只小鸟此时的大致坐标?
判断
假定的因素
1.时间相同,都为6秒开始。
2.高度相同,都为1.5米。
3.轴向相同,都为0。
思考
1.需要通过确定猎人的坐标和树的坐标来判断小鸟此时的坐标。
计算得出
GalileanCoordinateTransformation.java
import java.util.Scanner;
class Factors{
double x;
double y;
double z;
double t;
double t2;
double t3;
double v;
//---------------------------------------------------------
double x1;
double y1;
double z1;
double t1;
public Factors(double x, double y, double z, double t, double t2,double v) {
this.x = x;
this.y = y;
this.z = z;
this.t = t;
this.t2 = t2;
this.v = v;
System.out.println("x为:"+x+" y为:"+y+" z为:"+z+" t为:"+t+" t2为:"+t2+" v为:"+v);
}
public void Calculate(){
x1=x-v*t;
y1=y; //假定相同高度
z1=z; //假定相同轴向
t1=t; //假定相同时间
t3=t1+t2;
x1=x1;
System.out.print("这只小鸟此时的大致坐标为:("+Math.round(x1)+","+Math.round(y1)+","+Math.round(z1)+","+Math.round(t3)+")\n\n");
}
}
public class GalileanCoordinateTransformation {
public static void main(String[] args){
Scanner input=new Scanner(System.in);
System.out.print("请输入小鸟飞行的距离(单位:m):");
double Distance=input.nextDouble();
System.out.print("请输入猎人射出弓箭的水平高度(单位:m):");
double Height=input.nextDouble();
System.out.print("请输入猎人位置的轴向:");
double AxialDirection=input.nextDouble(); //轴向
System.out.print("请输入猎人射箭花费的时间(单位:s):");
double Time=input.nextDouble();
System.out.print("请输入猎人射中树后小鸟飞之前相隔的时间(单位:s):");
double Time2=input.nextDouble();
System.out.print("请输入猎人射出弓箭的速度(单位:m/s):");
double Velocity=input.nextDouble();
Factors factors=new Factors(Distance,Height,AxialDirection,Time,Time2,Velocity);
factors.Calculate();
}
}