📄 jbjs.cpp
字号:
// Jbjs.cpp: implementation of the CJbjs class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "dzct.h"
#include "Jbjs.h"
#include <math.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CJbjs::CJbjs()
{
}
CJbjs::~CJbjs()
{
}
double CJbjs::DFM_M(double dfm)
{
double D,F;
dfm+=0.00000000000001;
dfm=modf(dfm,&D);//取度
dfm=modf(dfm*100,&F);//取分
return D*3600+F*60+dfm*100;//回秒值
}
double CJbjs::A(double L, double R)
{
L=DFM_M(L);
R=DFM_M(R);
return (R-L-180*3600)/2.0;
}
double CJbjs::_2C(double L, double R)
{
L=DFM_M(L);
R=DFM_M(R);
double _2c=L+180*3600-R;
if(_2c>648000)
_2c-=1296000;
else if(_2c<-648000)
_2c+=1296000;
return _2c;
}
double CJbjs::I(double L, double R)
{
L=DFM_M(L);
R=DFM_M(R);
return (L+R-1296000)/2;
}
double CJbjs::js_glc(double f0, double f1)//计算归零差
{
f0=DFM_M(f0);
f1=DFM_M(f1);
double glc=fabs(f0-f1);
if(glc>=648000)
return fabs(glc-1296000);
else
return glc;
}
double CJbjs::fxz(double L, double R,double F0)//计算普通方向值
{
double F=fxz_f0(L,R)-F0;
if(F<0)
return F+360*3600;
else
return F;
}
double CJbjs::fxz_f0(double L, double R)//计算1方向值
{
L=DFM_M(L);
R=DFM_M(R);
if(L<R)
return (L+R-180*3600)/2;
else
return (L+R+180*3600)/2;
}
double CJbjs::fxz_0_f0(double L, double R, double F0)//计算带归零的 1方向值
{
double gl=fxz_f0(L,R);
double A=(gl+F0)/2;
if(fabs(F0-gl)>180*3600)
{
if(A>=180*3600)
return A-180*3600;
else
return A+180*3600;
}
else
return A;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -