资源描述:
《白塞尔大地主题解算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、白塞尔大地主题解算班级测绘1112学号1120115230姓名陈晓旭一、正算代码:#include#include#defineee0.006693421622966#defineI3.141592653doubleF(double,double,double);voidmain(void){doubleA1,B1,L1,S,A2,B2,L2;doublex1,x2,x3,y1,y2,y3,z1,z2,z3;doubleW1,sinu1,sinu2,cosu1,si
2、nA0;doublecota1,cos2a1,sin2a1,cosA0A0;doubleA,B,C,d,e,a0,a1,m;doublen,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
3、);A1=F(z1,z2,z3);printf("请输入S=");scanf("%lf",&S);printf("B1=%.9f",B1);printf("L1=%.9f",L1);printf("A1=%.9f",A1);printf("S=%f",S);/*计算起点的规划纬度*/W1=sqrt(1-ee*sin(B1)*sin(B1));sinu1=sin(B1)*sqrt(1-ee)/W1;cosu1=cos(B1)/W1;printf("W1=%.9f",W1);prin
4、tf("sinu1=%.9f",sinu1);printf("cosu1=%.9f",cosu1);/*计算辅助函数值*/sinA0=cosu1*sin(A1);cota1=cosu1*cos(A1)/sinu1;sin2a1=2*cota1/(cota1*cota1+1);cos2a1=(cota1*cota1-1)/(cota1*cota1+1);printf("sinA0=%.9f",sinA0);printf("cota1=%.9f",cota1);printf("sin2a
5、1=%.9f",sin2a1);printf("cos2a1=%.9f",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-0.00144*cosA0A0)*cosA0A0;e
6、=(0.2907-cosA0A0*0.0010)*cosA0A0;printf("cosA0A0=%.9f",cosA0A0);printf("A=%.3f",A);printf("B=%.6f",B);printf("C=%.9f",C);printf("d=%.7f",d);printf("e=%.9f",e);/*计算球面长度*/a0=(S-(B+C*cos2a1)*sin2a1)/A;m=sin2a1*cos(2*a0)+cos2a1*sin(2*a0);n=(cos
7、2a1)*(cos(2*a0))-(sin2a1)*(sin(2*a0));a=a0+((B+5*C*n))*m/A;printf("a0=%.9f",a0);printf("m=%.9f",m);printf("n=%.9f",n);printf("a=%.9f",a);/*计算经度差改正数*/Q=(d*a+(e*(m-sin2a1))/3600/180*I)*sinA0;printf("Q=%.7f",Q);/*计算终点大地坐标及大地方位角*/sinu2=sinu1*cos(
8、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)/(cosu1*cos(a)-sinu1*sin(a)*cos(A1)))/I;printf("sinu2=%.9f",sinu2);printf("B2=%f",B2);printf("R=%f",R*180/I);/*确定R的值*/if(si