⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crdtran.h

📁 卫星单点定位程序
💻 H
字号:
#ifndef _CRDTRAN_H_
#define _CRDTRAN_H_


//笛卡尔坐标
typedef struct tagCRDCARTESIAN {
	double x;
	double y;
	double z;
} CRDCARTESIAN;
typedef CRDCARTESIAN *PCRDCARTESIAN;

//大地坐标
typedef struct tagCRDGEODETIC {
	double longitude;		//经度
	double latitude;		//纬度
	double height;			//大地高
} CRDGEODETIC;
typedef CRDGEODETIC *PCRDGEODETIC;

//站心地平坐标(线坐标形式)
typedef struct tagCRDTOPOCENTRIC {
	double northing;			//北方向
	double easting;				//东方向
	double upping;				//垂线方向
} CRDTOPOCENTRIC;
typedef CRDTOPOCENTRIC *PCRDTOPOCENTRIC;

//站心地平坐标(极坐标形式)
typedef struct tagCRDTOPOCENTRICPOLAR {
	double range;						//极距
	double azimuth;						//方位角
	double elevation;					//高度角
} CRDTOPOCENTRICPOLAR;
typedef CRDTOPOCENTRICPOLAR *PCRDTOPOCENTRICPOLAR;


//1. 由笛卡尔坐标转换为大地坐标
void CartesianToGeodetic (PCRDGEODETIC pcg,		//指向所转换出的大地坐标的指针;
						  PCRDCARTESIAN pcc,	//指向待转换的笛卡尔坐标的指针;
						  double dSemiMajorAxis,//参考椭球的长半轴							
						  double dFlattening);	//参考椭球的扁率。


//2. 由大地坐标转换为笛卡尔坐标
void GeodeticToCartesian (PCRDCARTESIAN pcc,	//指向所转换出的笛卡尔坐标的指针;
						  PCRDGEODETIC pcg,		//指向待转换的大地坐标的指针;
						  double dSemiMajorAxis,//参考椭球的长半轴;
						  double dFlattening);	//参考椭球的扁率。


//3. 由笛卡尔坐标转换为站心地平坐标
void CartesianToTopocentric (PCRDTOPOCENTRIC pct,		//指向所转换出的站心地平坐标的指针;
							 PCRDCARTESIAN pcc,			//指向待转换的笛卡尔坐标的指针;
							 PCRDCARTESIAN pccCenter,	//指向站心的笛卡尔坐标的指针;
							 double dSemiMajorAxis,		//参考椭球的长半轴;
							 double dFlattening);		//参考椭球的扁率。


//4. 由站心地平直角坐标转换为站心地平极坐标
void TopocentricToTopocentricPolar (PCRDTOPOCENTRICPOLAR pctp,	//指向所转换出的站心地平极坐标的指针;
									PCRDTOPOCENTRIC pct);		//指向待转换的站心地平坐标的指针;

////////////////////////////////////////////////////////////////////////////////////////////
//将任意一个弧度 original 标准化成 0 ~ 6.28318530717958647693 之间的数字 [0 , 2π)
double radnormal(double original);

//将 DDD.MMSS 表示的角度化成弧度
double ang2rad(double ang);

//将弧度化成 DDD.MMSS 表示的角度
double rad2ang(double rad);


#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -