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

📄 大地问题解算.cpp

📁 由大地经纬度转为空间直角坐标
💻 CPP
字号:

#include<iostream.h>
#include<math.h>
void main()
	{
	//正解
	double s=40000.000,epi2=0.0067395018195,B1=32*3.14159265359/180,ita12,L1=118+10/60+5/3600;
	ita12=epi2*cos(B1)*cos(B1);
	cout.precision(11);
	cout<<"ita1^2\t"<<ita12<<endl;
	double c=6399596.652,N1;
	N1=c/sqrt(1+ita12);
	cout<<"N1\t"<<N1<<endl;
	double A1=45*3.14159265359/180,V1;
	V1=sqrt(1+ita12);
	cout<<"V1\t"<<V1<<endl;
	cout<<"A1\t"<<A1<<endl<<endl;
	double l[3],b[3],a[3],deil,deib,deic,t,m;
	b[0]=s*cos(A1)*V1*V1/N1;
	l[0]=s*sin(A1)/(N1*cos(B1));
	m=l[0]*cos(B1);
	cout<<"第一次赋值: \nb,l,m\t"<<0<<'\t'<<b[0]<<'\t'<<l[0]<<'\t'<<m<<endl;
	for(int i=1;i<3;i++)
		{ 
		t=tan(B1);//B1=0.5(B1+B2)
		cout<<"t\t"<<i-1<<'\t'<<t<<endl<<endl;
		deil=m*m*t*t/24-b[i-1]*b[i-1]*(1+ita12-9*ita12*t*t)/(24*V1*V1*V1*V1);
		deib=m*m*(2+3*t*t+2*ita12)/24+b[i-1]*b[i-1]*ita12*(t*t-1-ita12-4*ita12*t*t)/(8*V1*V1*V1*V1);
		deic=m*m*V1*V1/12+b[i-1]*b[i-1]*(3+8*ita12+5*ita12*ita12)/(24*V1*V1*V1*V1);
		cout<<"deil,deib,deic\t"<<i<<'\t'<<deil<<'\t'<<deib<<'\t'<<deic<<endl;
		l[i]=s*sin(A1)*(1+deil)/(N1*cos(B1));
		b[i]=s*cos(A1)*V1*V1*(1+deib)/N1;
		a[i]=s*sin(A1)*t*(1+deil+deic)/N1;
		cout<<"l,b,a\t"<<l[i]<<'\t'<<b[i]<<'\t'<<a[i]<<endl;
		L1+=(l[i]*180/3.14159265359);
		/*cout<<"L1,B1\t"<<L1<<'\t'<<B1*180/3.14159265359<<endl<<endl<<endl;*/

		//重新赋值
		A1+=(a[i]/2+(90*3.14159265359/180));
		B1+=(b[i]/2);
		m=l[i]*cos(B1);
		cout<<"m\t"<<i<<'\t'<<m<<endl;
		ita12=epi2*cos(B1)*cos(B1);
		cout<<"ita\t"<<i<<'\t'<<ita12<<endl;
		V1=sqrt(1+ita12);
		cout<<"V\t"<<i<<'\t'<<V1<<endl;
		N1=c/sqrt(1+ita12);
		cout<<"N1\t"<<i<<'\t'<<N1<<endl;
		cout<<"A1\t"<<A1<<endl;
		cout<<"B1\t"<<B1<<endl;
		}
	}

⌨️ 快捷键说明

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