24 lines
645 B
Java
24 lines
645 B
Java
public class GreatCircle
|
|
{
|
|
public static void main(String [] args){
|
|
|
|
|
|
double x1 = Math.toRadians(Double.parseDouble(args[0]));
|
|
double y1 = Math.toRadians(Double.parseDouble(args[1]));
|
|
double x2 = Math.toRadians(Double.parseDouble(args[2]));
|
|
double y2 = Math.toRadians(Double.parseDouble(args[3]));
|
|
|
|
double t1 = (x2 - x1) / 2.0;
|
|
double t2 = (y2 - y1) / 2.0;
|
|
double q1 = Math.pow(Math.sin(t1), 2);
|
|
double q2 = Math.pow(Math.sin(t2), 2);
|
|
|
|
double as = q1 + (Math.cos(x1) * Math.cos(x2) * q2);
|
|
double sq = Math.sqrt(as);
|
|
|
|
double distance = 2 * 6371.0 * Math.asin(sq);
|
|
|
|
System.out.println(distance + " kilometers");
|
|
}
|
|
}
|