-
大小: 980KB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2021-06-10
- 語言: C/C++
- 標(biāo)簽: 測量??坐標(biāo)轉(zhuǎn)換??高斯正算??
資源簡介
已經(jīng)過測試的高斯正算的C++源代碼。因是以前寫的,坐標(biāo)轉(zhuǎn)換的模式不全,代碼僅提供了WGS84系統(tǒng)的大地坐標(biāo)到WGS84的高斯平面坐標(biāo)的轉(zhuǎn)換。其他坐標(biāo)系統(tǒng)的大地坐標(biāo)->高斯平面的轉(zhuǎn)換僅需修改部分參數(shù)即可。

代碼片段和文件信息
#include?“function.h“
#include?
#include?
using?namespace?std;
const?double?PI?=?3.14159265353846;
double?Dm2Dms(const?double&?Dm)
{
double?DegreeMinute;
double?Second;
int?Sign;
double?Dms;
double?TDm?=?Dm;
if(TDm?>=?0)
Sign?=?1;
else?
Sign?=?-1;
TDm?=?fabs(TDm);
Degree?=?floor(TDm/100.0);
Minute?=?floor(fmod(TDm100.0)?);
Second?=?fmod(TDm1.0)?*?60.0;
Dms?=?Sign?*?(Degree?*?10000.0?+?Minute?*?100.0?+?Second);
return?Dms;
}
double?Dms2Rad(const?double&?Dms)
{
double?TDms;
double?Degree?Miniute;
double?Second;
int?Sign;
double?Rad;
TDms?=?Dms;
if(TDms?>=?0)
Sign?=?1;
else
Sign?=?-1;
TDms?=?fabs(TDms);
Degree?=?floor(TDms?/10000.0);
Miniute?=?floor(fmod(TDms?/?100.0?100.0));
Second?=?fmod(TDms?100.0);
Rad?=?Sign?*?(Degree?+?Miniute?/?60.0?+?Second?/?3600.0)?*?PI?/?180.0;
return?Rad;
}
double?Rad2Dms(const?double&?Rad)??//OK
{
double?Degree?Miniute;
double?Second;
int?Sign;
double?Dms;
double?TRad?=?Rad;
if(TRad?>=?0)
Sign?=?1;
else
Sign?=?-1;
TRad?=?fabs(TRad?*?180.0?/?PI);
Degree?=?floor(TRad);
Miniute?=?floor(fmod(TRad?*?60.0?60.0));
//double?fmod(double?xdouble?y);?求兩浮點(diǎn)數(shù)相除后的余數(shù)?
Second?=?fmod(TRad?*?3600.0?60.0);
Dms?=?Sign?*?(Degree*10000.0?+?Miniute?*?100.0?+?Second?);//example?:?314?45?56.456
return?Dms;
}
double?DmsAddDms(const?double?x1const?double?x2)//第一個必須為正數(shù)
{
double?res;
int?dec;
int?min;
double?sec;
double?temp;
if(x2?>=?0)
{
res?=?x1?+?x2;
}
else
{
temp?=?fabs(x2);
dec?=?(int)(temp?/10000);
min?=?(int)((temp?-?dec?*?10000.00)?/?100);
sec?=?temp?-?dec?*?10000?-?min?*?100;
res?=?x1?-?dec*10000.0;
if(fmod(x110000.0)?<=?(min?*?100?+?sec)?)
{
res?=?res?-?10000.0;
if(fmod(x1100.0)?<=?sec)
{
res?=?res?-?100.0;
}
res?+=?fmod(x1100.0)?+?60?-?sec;
}
res?+=?((int)(fmod(x110000.0)/100.0)?)*100.0?+?60*100?-?min?*?100;
}
return?res;
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????2049??2008-07-07?15:05??GaoSiPrj\function.cpp
?????文件????????295??2008-07-07?14:51??GaoSiPrj\function.h
?????文件???????4615??2008-07-04?10:32??GaoSiPrj\GaoSiPrj.dsp
?????文件????????524??2008-07-03?14:36??GaoSiPrj\GaoSiPrj.dsw
?????文件??????66560??2009-02-15?22:05??GaoSiPrj\GaoSiPrj.ncb
?????文件??????54784??2009-02-15?22:05??GaoSiPrj\GaoSiPrj.opt
?????文件????????935??2009-02-15?21:56??GaoSiPrj\GaoSiPrj.plg
?????文件???????1008??2009-02-15?21:56??GaoSiPrj\main.cpp
?????文件???????9298??2009-02-15?22:05??GaoSiPrj\PrjPoint.cpp
?????文件???????1083??2009-02-15?22:05??GaoSiPrj\PrjPoint.h
?????文件??????16186??2008-07-07?15:05??GaoSiPrj\Debug\function.obj
?????文件?????606274??2009-02-15?21:56??GaoSiPrj\Debug\GaoSiPrj.exe
?????文件?????851636??2009-02-15?21:56??GaoSiPrj\Debug\GaoSiPrj.ilk
?????文件????2116272??2009-02-15?21:56??GaoSiPrj\Debug\GaoSiPrj.pch
?????文件????1451008??2009-02-15?21:56??GaoSiPrj\Debug\GaoSiPrj.pdb
?????文件?????152498??2009-02-15?21:56??GaoSiPrj\Debug\main.obj
?????文件??????32478??2009-02-15?21:56??GaoSiPrj\Debug\PrjPoint.obj
?????文件?????115712??2009-02-15?21:56??GaoSiPrj\Debug\vc60.idb
?????文件?????126976??2009-02-15?21:56??GaoSiPrj\Debug\vc60.pdb
?????目錄??????????0??2009-01-17?08:45??GaoSiPrj\Debug
?????目錄??????????0??2009-01-17?08:45??GaoSiPrj
-----------?---------??----------?-----??----
??????????????5610191????????????????????21
評論
共有 條評論