白塞尔大地主题解算 (2).docx

上传人:新** 文档编号:558644778 上传时间:2022-12-07 格式:DOCX 页数:7 大小:129.89KB
返回 下载 相关 举报
白塞尔大地主题解算 (2).docx_第1页
第1页 / 共7页
白塞尔大地主题解算 (2).docx_第2页
第2页 / 共7页
白塞尔大地主题解算 (2).docx_第3页
第3页 / 共7页
白塞尔大地主题解算 (2).docx_第4页
第4页 / 共7页
白塞尔大地主题解算 (2).docx_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《白塞尔大地主题解算 (2).docx》由会员分享,可在线阅读,更多相关《白塞尔大地主题解算 (2).docx(7页珍藏版)》请在金锄头文库上搜索。

1、白塞尔大地主题解算班级 测绘1112 学号 1120115230 姓名 陈晓旭一、 正算代码:#include#include#define ee 0.006693421622966#define I 3.141592653double F(double,double,double);void main(void) double A1,B1,L1,S,A2,B2,L2;double x1,x2,x3,y1,y2,y3,z1,z2,z3;double W1,sinu1,sinu2,cosu1,sinA0;double cota1,cos2a1,sin2a1,cosA0A0;double A,B,

2、C,d,e,a0,a1,m;double n,a,Q,R;printf(请输入数据B1= );scanf(%lf %lf %lf,&x1,&x2,&x3);B1=F(x1,x2,x3);printf(请输入数据L1= );scanf(%lf %lf %lf,&y1,&y2,&y3);L1=F(y1,y2,y3);printf(请输入A1= );scanf(%lf %lf %lf,&z1,&z2,&z3); A1=F(z1,z2,z3);printf(请输入S= );scanf(%lf,&S); printf(B1=%.9fn,B1);printf(L1=%.9fn,L1);printf(A1=

3、%.9fn,A1);printf(S=%fn,S);/*计算起点的规划纬度*/W1=sqrt(1-ee*sin(B1)*sin(B1); sinu1=sin(B1)*sqrt(1-ee)/W1;cosu1=cos(B1)/W1; printf(W1=%.9fn,W1);printf(sinu1=%.9fn,sinu1);printf(cosu1=%.9fn,cosu1);/*计算辅助函数值*/sinA0=cosu1*sin(A1); cota1=cosu1*cos(A1)/sinu1;sin2a1=2*cota1/(cota1*cota1+1);cos2a1=(cota1*cota1-1)/(

4、cota1*cota1+1); printf(sinA0=%.9fn,sinA0);printf(cota1=%.9fn,cota1);printf(sin2a1=%.9fn,sin2a1);printf(cos2a1=%.9fn,cos2a1);/*计算系数ABC及de*/cosA0A0=1-sinA0*sinA0; A=6356755.288+(10710.341-(13.534*cosA0A0)*cosA0A0;B=(5355.171-9.023*cosA0A0)*cosA0A0;C=(2.256*(cosA0A0)*cosA0A0+0.006;d=691.46768-(0.58143-

5、0.00144*cosA0A0)*cosA0A0;e=(0.2907-cosA0A0*0.0010)*cosA0A0;printf(cosA0A0=%.9fn,cosA0A0);printf(A=%.3fn,A);printf(B=%.6fn,B);printf(C=%.9fn,C);printf(d=%.7fn,d);printf(e=%.9fn,e);/*计算球面长度*/a0=(S-(B+C*cos2a1)*sin2a1)/A; m=sin2a1*cos(2*a0)+cos2a1*sin(2*a0);n=(cos2a1)*(cos(2*a0)-(sin2a1)*(sin(2*a0);a=a

6、0+(B+5*C*n)*m/A;printf(a0=%.9fn,a0);printf(m=%.9fn,m);printf(n=%.9fn,n);printf(a=%.9fn,a);/*计算经度差改正数*/Q=(d*a+(e*(m-sin2a1)/3600/180*I)*sinA0;printf(Q=%.7fn,Q);/*计算终点大地坐标及大地方位角*/sinu2=sinu1*cos(a)+cosu1*cos(A1)*sin(a);B2=180*atan(sinu2/(sqrt(1-ee)*(sqrt(1-sinu2*sinu2)/I;R=180*atan(sin(A1)*sin(a)/(cos

7、u1*cos(a)-sinu1*sin(a)*cos(A1)/I;printf(sinu2=%.9fn,sinu2);printf(B2=%fn,B2);printf(R=%fn,R*180/I);/*确定R的值*/if(sin(A1)0 & tan(R)0)R=abs(R);else if(sin(A1)0 & tan(R)0)R=I-abs(R);else if(sin(A1)0 & tan(R)0)R=-abs(R);elseR=abs(R)-I;/*确定L2A2的值*/L2=(L1*180/I+R-(Q/206265*180/I);A2=atan(cosu1*sin(A1)/(cosu

8、1*cos(a)*cos(A1)-sinu1*sin(a);if(sin(A1)0)A2=(fabs(A2)*180/I;else if(sin(A1)0&tan(A2)0&tan(A2)0)A2=(I+fabs(A2)*180/I;elseA2=(2*I-fabs(A2)*180/I;printf(A2=%3fn B2=%3fn L2=%3fn,A2,B2,L2);double F(double a2,double b2,double c2)double d2;d2=(double)(a2+1.0*b2/60+1.0*c2/3600);d2=(d2/180)*I;return (d2);运行

9、结果:二、 反算代码:#include#include#define ee 0.006693421622966#define I 3.141592653double F(double,double,double);void main(void) double B1,B2,L1,L2,A1,A2,S,Y;double W1,W2,L,Q,R,A,B,C;double x,y,z,p,q;double x1,x2,x3,y1,y2,y3,z1,z2,z3,w1,w2,w3;double a1,a2,b1,b2,m,n;double sinp,cosp,sinu1,sinu2,cosu1,cosu2

10、,sinA0,cosA0;Q=0;q=0;printf(请输入起始数据B1= );scanf(%lf %lf %lf,&x1,&x2,&x3);B1=F(x1,x2,x3);printf(请输入起始数据L1= );scanf(%lf %lf %lf,&y1,&y2,&y3);L1=F(y1,y2,y3);printf(请输入起始数B2= );scanf(%lf %lf %lf,&z1,&z2,&z3);B2=F(z1,z2,z3);printf(请输入起始数据L2= );scanf(%lf %lf %lf,&w1,&w2,&w3);L2=F(w1,w2,w3);printf(B1=%fn,B1

11、);printf(L1=%.9fn,L1);printf(B2=%.9fn,B2);printf(L2=%.9fn,L2);/*辅助计算*/W1=sqrt(1-ee*sin(B1)*sin(B1);W2=sqrt(1-ee*sin(B2)*sin(B2);sinu1=sin(B1)*sqrt(1-ee)/W1;sinu2=sin(B2)*(sqrt(1-ee)/W2;cosu1=cos(B1)/W1;cosu2=cos(B2)/W2;L=L2-L1;a1=sinu1*sinu2;a2=cosu1*cosu2;b1=cosu1*sinu2;b2=sinu1*cosu2;printf(W1=%.9

12、fn,W1);printf(W2=%.9fn,W2);printf(sinu1=%.9fn,sinu1);printf(sinu2=%.9fn,sinu2);printf(cosu1=%.9fn,cosu2);printf(L=%.9fn,L);printf(a1=%.9fn,a1);printf(a2=%.9fn,a2);printf(b1=%.9fn,b1);printf(b2=%.9fn,b2);/*用逐次趋近法同时计算起点大地方位角、球面长度及经差R*/do R=L+Q; x=cosu2*sin(R); y=b1-b2*cos(R); A1=atan(x/y); if(x0&y0) A1=fabs(A1); else if(x0&y0) A1=I-fabs(A1); else if(x0&y0) p=fabs(p); sinA0=cosu1*sin(A1); cosA0=sqrt(1-sinA0*sinA0); p=I-fabs(p); z=2*a1-cosA0*cosA0*cos(p);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号