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

📄 jingweidu.h

📁 这是大地主题解算时求解大地距离的大椭圆距离的程序实现,用到的头文件我将同时上传
💻 H
字号:
//定义平面坐标,大地经纬度,地心经纬度,球面经纬度以及坐标之间的转化关系
//另外定义了符号函数,这样做是为了更方便查找
#ifndef JINGWEIDU
#define JINGWEIDU
#include<iostream.h>
#include "base.h"
#define pi 3.141592653589793
//平面坐标在高斯投影中用到
class pingmian
{
public:
	long double x;
	long double y;
	pingmian(long double i,long double j)//输入角度
	{
		x=i;
		y=j;
	}
	pingmian(const pingmian &ping)
	{
		x=ping.x;
		y=ping.y;
	}
	pingmian operator=(const pingmian &ping)
	{
		x=ping.x;
		y=ping.y;
		return *this;
	}
	friend ostream&
		operator<<(ostream & os,const pingmian &ping)
	{
		return os<<ping.x<<"    "<<ping.y;
	}
};
//定义大地经纬度
class dadijingweidu
{
public:
	long double B;
	long double L;
	dadijingweidu(long double b=0,long double l=0)
	{
		B=b*pi/180;
		L=l*pi/180;
	}
	dadijingweidu(base base1,base base2)
	{
		B=(base1.degree+base1.minite/60+base1.second/3600)*pi/180;

		L=(base2.degree+base2.minite/60+base2.second/3600)*pi/180;
	}
	dadijingweidu(const dadijingweidu &da)
	{
		B=da.B;
		L=da.L;
	}
	dadijingweidu operator=(const dadijingweidu &da)
	{
		B=da.B;
		L=da.L;
		return *this;
	}
	friend ostream&
		operator<<(ostream & os,const dadijingweidu &da)
	{
		return os<<da.B*180/pi<<"    "<<da.L*180/pi;
	}
};
//在求大椭圆距离时用到地心经纬度,故定义之
class dixinjingweidu
{
public:
	long double psi;
	long double L;
	dixinjingweidu(long double p=0,long double l=0)
	{
		psi=p*pi/180;
		L=l*pi/180;
	}
	dixinjingweidu(const dixinjingweidu &di)
	{
		psi=di.psi;
		L=di.L;
	}
    dixinjingweidu operator=(const dixinjingweidu &di)
	{
		psi=di.psi;
		L=di.L;
		return *this;
	}
	friend ostream&
		operator<<(ostream & os,const dixinjingweidu &di)
	{
		return os<<di.psi*180/pi<<"    "<<di.L*180/pi;
	}
};
//在求概位时需要将大地坐标对应到辅助球面上,故定义如下
class qiumianjingweidu
{
public:
	long double psi;
	long double lambda;
	qiumianjingweidu(long double p=0,long double l=0)
	{
		psi=p*pi/180;
		lambda=l*pi/180;
	}
	qiumianjingweidu(const qiumianjingweidu &qiu)
	{
		psi=qiu.psi;
		lambda=qiu.lambda;
	}
	qiumianjingweidu operator=(const qiumianjingweidu &qiu)
	{
		psi=qiu.psi;
		lambda=qiu.lambda;
		return *this;
	}
	friend ostream&
		operator<<(ostream & os,const qiumianjingweidu &qiu)
	{
		return os<<qiu.psi*180/pi<<"    "<<qiu.lambda*180/pi;
	}

};
#endif

⌨️ 快捷键说明

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