角度转换弧度
1 double DRad:: d2rad(double d,double m,double s)//角度转弧度 2 { 3 double e; 4 double sign=(d<0.0)? -1.0:1.0; 5 if(d==0) 6 { 7 sign=(m<0.0)? -1.0:1.0; 8 if(m==0) 9 { 10 sign=(s<0.0)? -1.0:1.0; 11 } 12 } 13 if(d<0) 14 d=d*(-1.0); 15 if(m<0) 16 m=m*(-1.0); 17 if(s<0) 18 s=s*(-1.0); 19 20 //a为整数度b为分c为秒 21 e=sign*(d*3600+m*60+s)*PI/(3600*180); 22 return e; 23 }
弧度转角度
1 //该函数为弧度化为度分秒形式的角度, 2 //如0.029088820866572159615394846141477的弧度化为度分秒的角度值为1.4000 3 public static double Rad2Ddmmss(double rad) 4 { 5 int f = rad >= 0 ? 1 : -1; // 符号+ - 6 //加0.001秒(用弧度表示),化为度 7 rad = (rad + f * 4.8481368110953599358991410235795e-9) * PI/180; 8 int d = (int)rad;//将弧度换算成以度为单位 9 rad = (rad - d) * 60.0; 10 int m = (int)rad; 11 double s = (rad - m) * 60.0; 12 13 return d + m / 100.0 + s / 10000.0 - f * 0.0000001; 14 }