-
大小: 923KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-29
- 語言: 其他
- 標(biāo)簽: 坐標(biāo)轉(zhuǎn)換??
資源簡介
可以用文件的方式把xyz的坐標(biāo)值轉(zhuǎn)換為NEU方向

代碼片段和文件信息
/******************************************************???????????????????????????????????????*/
/************************************************************************/
#include
#include
#include
#include?
using?namespace??std;
#define?M_PI?3.1415926
//笛卡爾坐標(biāo)系結(jié)構(gòu)體
typedef?struct?tagCRDCARTESIAN
{
double?x;
double?y;
double?z;
}CRDCARTESIAN;
typedef?CRDCARTESIAN?*PCRDCARTESIAN;
//大地坐標(biāo)系結(jié)構(gòu)體
typedef?struct?tagCRDGEODETIC
{
double?longitude;
double?latitude;
double?height;
}CRDGEODETIC;
typedef?CRDGEODETIC?*PCRDGEODETIC;
//站心地平坐標(biāo)(線坐標(biāo)形式)結(jié)構(gòu)體
typedef?struct?tagCRDTOPOCENTRIC
{
double?northing;
double?easting;
double?upping;
}CRDTOPOCENTRIC;
typedef?CRDTOPOCENTRIC?*PCRDTOPOCENTRIC;
//站心地平坐標(biāo)(極坐標(biāo)形式)結(jié)構(gòu)體
typedef?struct?tagCRDTOPOCENTRICPOLAR
{
double?range;
double?azimuth;
double?elevation;
}CRDTOPOCENTRICPOLAR;
typedef?CRDTOPOCENTRICPOLAR?*PCRDTOPOCENTRICPOALR;
//度分秒轉(zhuǎn)換為弧度函數(shù)(1.2345表示1°23‘45‘‘)
void?DMS_RAD(double?DMSdouble?*Rad);
//弧度轉(zhuǎn)換為度分秒
void?RAD_DMS(double?Raddouble?*DMS);
//笛卡爾坐標(biāo)系轉(zhuǎn)換為大地坐標(biāo)系
//pcc為笛卡爾坐標(biāo)對象指針,pcg為大地坐標(biāo)系結(jié)構(gòu)體對象指針,dSemiMajorAxis為橢球長半軸,dFlattening為橢球扁率
bool?CARTESIANTOGEODETIC(PCRDCARTESIAN?pccPCRDGEODETIC?pcgdouble?dSemiMajorAxisdouble?dFlattening);
//大地坐標(biāo)系轉(zhuǎn)換為笛卡爾坐標(biāo)系
//pcg為大地坐標(biāo)系結(jié)構(gòu)體對象指針,pcc為笛卡爾坐標(biāo)對象指針,dSemiMajorAxis為橢球長半軸,dFlattening為橢球扁率
bool?GEODETICTOCARTESIAN(PCRDGEODETIC?pcgPCRDCARTESIAN?pccdouble?dSemiMajorAxisdouble?dFlattening);
//笛卡爾坐標(biāo)系轉(zhuǎn)換站心地平坐標(biāo)系
//pcc指向待轉(zhuǎn)換的笛卡爾坐標(biāo)的指針,pccCenter指向站心的笛卡爾坐標(biāo)的指針,pct指向所轉(zhuǎn)換出的站心地平坐標(biāo)的指針,
//dSemiMajorAxis為橢球長半軸,dFlattening為橢球扁率
bool?CARTESIANTOTOPOCENTRIC(PCRDCARTESIAN?pccPCRDCARTESIAN?pccCenterPCRDTOPOCENTRIC?pctdouble?dSemiMajorAxisdouble?dFlattening);
//站心地平坐標(biāo)系轉(zhuǎn)換為站心地平極坐標(biāo)系
//pct指向待轉(zhuǎn)換的站心地平坐標(biāo)的指針pctp指向所轉(zhuǎn)換出的站心地平極坐標(biāo)的指針
bool?TOPOCENTRICTOTOPOCENTRICPOLAR(PCRDTOPOCENTRIC?pctPCRDTOPOCENTRICPOALR?pctp);
void?DMS_RAD(double?DMSdouble?*Rad)
{
int?DegMin;
double?Sec;
Deg=(int)DMS;
Min=(int)((DMS-Deg)*100);
Sec=((DMS-Deg)*100-Min)*100;
*Rad=(Deg+Min/60.0+Sec/3600.0)/180.0*M_PI;
return;
}
void?RAD_DMS(double?Raddouble?*DMS)
{
int?DegMin;
double?Sec;
double?ARAM;
AR=Rad;
if?(Rad<0)
AR=-Rad;
AR=AR+1.0e-10;
AR=AR*180.0/M_PI;
Deg=(int)AR;
AM=(AR-Deg)*60.0;
Min=(int)AM;
Sec=(AM-Min)*60;
*DMS=Deg+Min/100.0+Sec/10000.0;
if(Rad<0)
*DMS=-*DMS;
return;
}
bool?CARTESIANTOGEODETIC(PCRDCARTESIAN?pccPCRDGEODETIC?pcgdouble?dSemiMajorAxisdouble?dFlattening)
{
double?B0RN;
double?B_L_;
double?X=pcc->x;
double?Y=pcc->y;
double?Z=pcc->z;
R=sqrt(X*X+Y*Y);
B0=atan2(ZR);
while?(1)
{
N=dSemiMajorAxis/sqrt(1.0-dFlattening*(2-dFlattening)*sin(B0)*sin(B0));
B_=atan2(Z+N*dFlattening*(2-dFlattening)*sin(B0)R);
if(fabs(B_-B0)<1.0e-10)
break;
B0=B_;
}
L_=atan2(YX);
pcg->height=R/cos(B_)-N;
RAD_DMS(B_&pcg->latitude);
RAD_DMS(L_&pcg->longitude);
return?true;
}
bo
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????5944??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\11.cpp
?????文件???????4614??2011-03-20?21:02??批量處理xyz轉(zhuǎn)換到neu\11.dsp
?????文件????????527??2011-03-20?20:59??批量處理xyz轉(zhuǎn)換到neu\11.dsw
?????文件??????41984??2011-03-21?09:40??批量處理xyz轉(zhuǎn)換到neu\11.ncb
?????文件??????48640??2011-03-21?09:40??批量處理xyz轉(zhuǎn)換到neu\11.opt
?????文件????????238??2011-03-21?09:39??批量處理xyz轉(zhuǎn)換到neu\11.plg
?????文件??????10540??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\result.txt
?????文件??????11232??2011-03-21?09:12??批量處理xyz轉(zhuǎn)換到neu\新建?文本文檔.txt
?????文件?????557099??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\Debug\11.exe
?????文件?????828040??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\Debug\11.ilk
?????文件?????300210??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\Debug\11.obj
?????文件????2001576??2011-03-20?21:15??批量處理xyz轉(zhuǎn)換到neu\Debug\11.pch
?????文件????1131520??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\Debug\11.pdb
?????文件??????82944??2011-03-21?09:39??批量處理xyz轉(zhuǎn)換到neu\Debug\vc60.idb
?????文件?????110592??2011-03-21?09:14??批量處理xyz轉(zhuǎn)換到neu\Debug\vc60.pdb
?????目錄??????????0??2011-03-22?10:22??批量處理xyz轉(zhuǎn)換到neu\Debug
?????目錄??????????0??2011-03-22?10:22??批量處理xyz轉(zhuǎn)換到neu
-----------?---------??----------?-----??----
??????????????5135700????????????????????17
評論
共有 條評論