#include "angle.h" //#include "StdAfx.h" #include "Stream/ugdefs.h" #include "math.h" const double EPSILON=1.0E-12; //const double PI=4.0*atan(1.0); //重载构造函数,有缺省值 Angle::Angle() { } Angle::~Angle(void) { } //度 转 度分秒 void Angle::DegtoDms(double deg, int &d, int &m, double &s) { d = int(deg + EPSILON);//整数部分度 double dTmp = (deg - d) * 60;//小数部分转换成分 m = int(dTmp+ EPSILON);//取分的整数部分 s = (dTmp - m) * 60;//截取秒 } //角度 转弧度 void Angle::DegtoRad(double deg, double &rad) { rad = deg * PI/180; } //角度 转 十进制度 void Angle::DegtodDeg(double deg, int &d, double &m) { d = int(deg + EPSILON);//整数部分度 m = (deg - d) * 60;//小数部分转换成分 } // 度分秒 转 度 void Angle::DmstoDeg(int d, int m, double s, double °) { deg = d + (m / 60.0) + (s / 3600.0); } //度分秒 转 十进制度 void Angle::DmstodDeg(int d, int m, double s, int &dDeg, double &dm) { dDeg = d; dm = m + s/60; }