import java.util.Arrays;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.PrintWriter;
import java.io.IOException;
public class traineroutput {
public static void main(String args[]) throws IOException{
BufferedReader br = new BufferedReader(new FileReader("c:/input.txt")); //인풋 파일 읽기
while(true) {
String lines = br.readLine();
String [] Array1= lines.split("\\r?\\n");
Arrays.toString(Array1);
for (int i=1; i<489; i++){
String [] Array2=String(Array1[i]).split(" ");
String [] Array3=Array1[i-1].split(" ");
Array2[0]=lat1;
Array2[1]=lon1;
Array2[2]=z1;
Array3[0]=lat2;
Array3[1]=lon2;
Array3[2]=z2;
double lat1, lon1, lat2, lon2;
double theta1, theta2;
double x1, x2, x3, y1, y2, y3, z1, z2;
int r=63710000; //지구 반지름(m단위)
double lat3= ;
double lon3= ;
double z3= ;
x1= r*Math.cos(deg2rad(lat1/100))*Math.cos(deg2rad(lon1/100));//현 gps를 x좌표로 변환
x2= r*Math.cos(deg2rad(lat2/100))*Math.cos(deg2rad(lon2/100));//이전 gps
x3= r*Math.cos(deg2rad(lat3/100))*Math.cos(deg2rad(lon3/100));//목표지점 gps
y1= r*Math.cos(deg2rad(lat1/100))*Math.sin(deg2rad(lon1/100));//현 gps를 y좌표로 변환
y2= r*Math.cos(deg2rad(lat2/100))*Math.sin(deg2rad(lon2/100));//이전 gps
y3= r*Math.cos(deg2rad(lat3/100))*Math.sin(deg2rad(lon3/100));//목표지점 gps
//z는 고도값 쓰면 된다.
double a= (y1-y2)/(x1-x2); //기울기들
double b= (y3-y1)/(x3-x1);
double c= (z1-z2)/(x1-x2);
double d= (z3-z1)/(x3-x1);
theta2= Math.atan(Math.abs(a-b)/(1+a*b));
theta1= Math.atan(Math.abs(c-d)/(1+c*d));
PrintWriter pw = new PrintWriter("c:/output.txt"); //아웃풋 파일 작성
{
pw.print(theta1);
pw.println(" "+ theta2);
}
pw.close();
}
if (lines==null) break;
}
br.close();
}
//주어진 도(degree) 값을 라디언으로 변환
private double deg2rad(double deg){
return (double)(deg * Math.PI / (double)180);
}
// 주어진 라디언(radian) 값을 도(degree) 값으로 변환
private double rad2deg(double rad){
return (double)(rad * (double)180 / Math.PI);
}
}
...엉망인 코드입니다만 알고리즘은 분석까지 바라지도 않습니다...
최종적으로는 txt파일을 얻고 싶은데 어디선가 string이 꼬인거 같습니다
그냥 틀린게 보일때마다 지적 부탁드립니다...