📄 planecrash.java
字号:
public class planecrash
{ public static void main(String[] args)
{ boolean [][] number=new boolean[6][6];
double x[]={0,150,85,150,145,130};
double y[]={0,140,85,155,50,150};
double h[]={Math.PI*52/180,Math.PI*243/180,Math.PI*236/180,Math.PI*220.5/180,Math.PI*159/180,Math.PI*230/180};
double v=800;
double [] t=new double[6];
double [][] T=new double[6][6];
double a,b,c;
double [][] d=new double[6][6];
for (int i=0;i<=5;i++)
{if ((h[i]>=0)&(h[i]<=Math.PI/2))
t[i]=Math.min((double)((160-x[i])/(v*Math.cos(h[i]))),(double)((160-y[i])/(v*Math.sin(h[i]))));
if((h[i]>Math.PI/2)&(h[i]<=Math.PI))
t[i]=Math.min((double)((-1)*x[i]/(v*Math.cos(h[i]))),(double)((160-y[i])/(v*Math.sin(h[i]))));
if((h[i]>Math.PI)&(h[i]<=Math.PI*3/2))
t[i]=Math.min((double)((-1)*x[i]/(v*Math.cos(h[i]))),(double)((-1)*y[i]/(v*Math.sin(h[i]))));
if((h[i]>Math.PI*3/2)&(h[i]<=Math.PI*2))
t[i]=Math.min((double)((160-x[i])/(v*Math.cos(h[i]))),(double)((-1)*y[i]/(v*Math.sin(h[i]))));
}
for (int i=0;i<=4;i++)
for (int j=i+1;j<=5;j++)
T[i][j]=Math.min(t[i],t[j]);
for(int i=0;i<=4;i++)
for(int j=i+1;j<=5;j++)
{a=Math.pow(v,2)*(Math.pow(Math.cos(h[i])-Math.cos(h[j]),2)+Math.pow(Math.sin(h[i])-Math.sin(h[j]),2));
b=v*((x[i]-x[j])*(Math.cos(h[i])-Math.cos(h[j]))+(y[i]-y[j])*(Math.sin(h[i])-Math.sin(h[j])));
c=Math.pow(x[i]-x[j],2)+Math.pow(y[i]-y[j],2);
if(b>=0)
d[i][j]=c;
if(b<0&b>(-1)*a*T[i][j])
d[i][j]=c-Math.pow(b,2)/a;
if (b<=(-1)*a*T[i][j])
d[i][j]=a*Math.pow(T[i][j],2)+2*b*T[i][j]+c;}
for(int i=0;i<=4;i++)
for(int j=i+1;j<=5;j++)
if (d[i][j]<=64)
{ number[i][j]=true;
System.out.println("plane"+i+" "+"plane"+j+" "+"will crash");}
else
number[i][j]=false;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -