c语言直角坐标系与大地坐标系转换,空间直角坐标系与大地坐标系转换程序

《空间直角坐标系与大地坐标系转换程序》由会员分享,可在线阅读,更多相关《空间直角坐标系与大地坐标系转换程序(5页珍藏版)》请在人人文库网上搜索。

1、空间直角坐标系与大地坐标系转换程序#include #include#include using namespace std; #define PI (2.0*asin(1.0)void main() double a,b,c,d1,d2,f1,f2,m1,m2,B,L,H,X,Y,Z,W,N,e;/coutab;a=; /以WGS84为例b=.3142;e=sqrt(a*a-b*b)/a;c=a*a/b;int x;coutx;switch(x)case 0:coutd1f1m1d2f2m2H;B=PI*(d1+f1/60+m1/3600)/180;L=PI*(d2+f2/60+m2/360。

2、0)/180;W=sqrt(1-e*e*sin(B)*sin(B);N=a/W;X=(N+H)*cos(B)*cos(L);Y=(N+H)*cos(B)*sin(L);Z=(N*(1-e*e)+H)*sin(B);coutXYZ;double t,m,n, P,k,B0; m=Z/sqrt(X*X+Y*Y); /t0B0=atan(m); /初值n=Z/sqrt(X*X+Y*Y);P=c*e*e/sqrt(X*X+Y*Y);k=1+(a*a-b*b)/(b*b);t=m+P*n/sqrt(k+n*n); /现在为t1,之后代替t2,t3.B=atan(t);W=sqrt(1-e*e*sin(B。

3、)*sin(B);N=a/W;H=Z/sin(B) - N*(1-e*e);int i;for(i=1;fabs(B-B0)10E-10;i+)/每一次新的B与上一次计算的B比较,误差小于10E-10 radB0=B;n=t;t=m+P*n/sqrt(k+n*n);/迭代B=atan(t);W=sqrt(1-e*e*sin(B)*sin(B);N=a/W;/if(X0)/L=atan(Y/X)+PI;/if(X0)&(Y0)/L=2*PI-atan(Y/X);L=atan2(Y,X);H=sqrt(X*X+Y*Y)/cos(B)-N;int Bd,Bf,Ld,Lf;double Bm,Lm;B=180*B/PI;/B转化为度做单位Bd=B;Bf=(B-Bd)*60;Bm=(B-Bd)*60-Bf)*60;L=180*L/PI;/L转化为度做单位Ld=L;Lf=(L-Ld)*60;Lm=(L-Ld)*60-Lf)*60;cout大地坐标系中纬度,经度,大地高(国际单位)分别为Bd Bf fixedsetprecision(6)BmendlLd Lf fixedsetprecision(6)Lmendlfixedsetprecision(6)Hendl;break;运行结果。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值