VCMFC高斯平均引数大地专题材料正反算.docx

上传人:b****5 文档编号:14980135 上传时间:2023-06-28 格式:DOCX 页数:24 大小:173.86KB
下载 相关 举报
VCMFC高斯平均引数大地专题材料正反算.docx_第1页
第1页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第2页
第2页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第3页
第3页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第4页
第4页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第5页
第5页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第6页
第6页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第7页
第7页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第8页
第8页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第9页
第9页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第10页
第10页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第11页
第11页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第12页
第12页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第13页
第13页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第14页
第14页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第15页
第15页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第16页
第16页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第17页
第17页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第18页
第18页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第19页
第19页 / 共24页
VCMFC高斯平均引数大地专题材料正反算.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

VCMFC高斯平均引数大地专题材料正反算.docx

《VCMFC高斯平均引数大地专题材料正反算.docx》由会员分享,可在线阅读,更多相关《VCMFC高斯平均引数大地专题材料正反算.docx(24页珍藏版)》请在冰点文库上搜索。

VCMFC高斯平均引数大地专题材料正反算.docx

VCMFC高斯平均引数大地专题材料正反算

地球科学与环境工程学院

实验报告书

课程名:

学号:

姓名:

指导老师:

日期:

四、程序代码…………………………………………………………………………………….......…...4

 

一、目的与要求

参考椭球面是大地测量计算的基准面。

大地坐标是椭球面上的基本坐标系,根据大地测量的观测成果(如距离与方向),从大地原点出发,逐点计算在椭球面上的大地坐标;或根据两点的大地坐标,计算它们之间的大地线长度和大地方位角,这类计算称为大地问题解算(或称为大地主题解算)。

大地问题解算的用途是多方面的,随着现代空间技术和航空航天、航海等领域的发展,大地问题解算(尤其是大地反算)有着更为重要的作用,因此需要熟练掌握其计算。

二、实验内容

在《大地测量学基础》教材中,介绍了高斯平均引数法与白塞尔方法的计算过程、步骤。

鉴于此,需要熟练掌握高斯平均引数法与白塞尔方法解大地主题问题的基本方法与原理。

采用所熟悉的计算机语言编程计算。

计算时采用克拉索夫椭球参数,至少完成其中一种方法正反算,按照数据序号选取不同的已知数据,在计算结果中注明所选取的数据序号,选取其它数据作为无效数据处理。

三、计算公式整理

3.1、高斯平均引数正算计算公式(S<200km)

3.2、高斯平均引数正算计算公式(S<200km)

四、程序代码

4.1、角度转换类的头文件:

#pragmaonce

constdoublePi=3.141592653589793;

classAngleTrans

{

public:

AngleTrans(void);

~AngleTrans(void);

doubleD,F,M,DFM,Rad,Ten;

doubletrans1(doubleDFM),//度分秒形式的角度转换为弧度形式

trans2(doubleRad),//弧度形式的角度转换为度分秒形式

trans3(doubleD);//十进制度转化为弧度

};

 

4.2、角度转换类的源文件:

#include"StdAfx.h"

#include"AngleTrans.h"

#include

AngleTrans:

:

AngleTrans(void)

{

}

AngleTrans:

:

~AngleTrans(void)

{

}

//度分秒转换为弧度

doubleAngleTrans:

:

trans1(doubleDFM)

{D=floor(DFM);

F=floor((DFM-D)*100);

M=(DFM-D-F/100)*10000;

Ten=D+F/60+M/3600;

Rad=Ten/180*Pi;

returnRad;

}

//弧度转换为度分秒

doubleAngleTrans:

:

trans2(doubleRad)

{Ten=Rad/Pi*180;

D=floor(Ten);

F=(Ten-D)*60;

M=(F-floor(F))*60;

F=floor(F);

DFM=D+F/100+M/10000;

returnDFM;

}

//十进制度转化为弧度

doubleAngleTrans:

:

trans3(doubleD)

{Rad=D/180*Pi;

returnRad;

}

4.3、正反算类的头文件:

#pragmaonce

classZhengFanSuan

{

public:

ZhengFanSuan(void);

~ZhengFanSuan(void);

doublezB1,zL1,zA12,zS,fB1,fL1,fB2,fL2;

doubleZhengSuanB(doublezB1,doublezL1,doublezA12,doublezS),

ZhengSuanL(doublezB1,doublezL1,doublezA12,doublezS),

ZhengSuanA(doublezB1,doublezL1,doublezA12,doublezS);

doubleFanSuanA12(doublefB1,doublefL1,doublefB2,doublefL2),

FanSuanS(doublefB1,doublefL1,doublefB2,doublefL2),

FanSuanA21(doublefB1,doublefL1,doublefB2,doublefL2);

};

4.3、正反算类的源文件:

#include"StdAfx.h"

#include"ZhengFanSuan.h"

#include"AngleTrans.h"

#include

 

ZhengFanSuan:

:

ZhengFanSuan(void)

{

}

 

ZhengFanSuan:

:

~ZhengFanSuan(void)

{

}

AngleTrans_AngleTrans;

constdoublee1=0.0066934216622966,

e2=0.006738525414683,

a=6378245.0000,

b=6356863.01877,

temp=pow(10.0,-10);//精度要求

doubleCalc_M(doublez)//计算Mm

{doublex=a*(1-pow(e1,2))/sqrt(pow(1-pow(e1,2)*pow(sin(z),2),3));

returnx;

}

doubleCalc_N(doublez)//计算Nm

{doublex=a/sqrt(1-pow(e1,2)*pow(sin(z),2));

returnx;

}

doubleCalc_t(doublez)//计算tm

{doublex=tan(z);

returnx;

}

doubleCalc_yita(doublez)//计算yitam

{doublex=pow(e2,2)*pow(cos(z),2);

returnx;

}

//正算纬度

doubleZhengFanSuan:

:

ZhengSuanB(doublezB1,doublezL1,doublezA12,doublezS)

{doubleM[10000],

N[10000],

t[10000],

B[10000],Bm[10000],

L[10000],Lm[10000],

A[10000],Am[10000],

yita[10000];

double_zB1=_AngleTrans.trans1(zB1),

_zL1=_AngleTrans.trans1(zL1),

_zA12=_AngleTrans.trans1(zA12),

final;

t[1]=tan(_zB1);

yita[1]=pow(e2,2)*pow(cos(_zB1),2);

N[1]=a/sqrt(1-pow(e1,2)*pow(sin(_zB1),2));

M[1]=a*(1-pow(e1,2))/sqrt(pow(1-pow(e1,2)*pow(sin(_zB1),2),3));

B[0]=_AngleTrans.trans3(206265/M[1]*zS*cos(_zA12)/3600),

L[0]=_AngleTrans.trans3(206265*zS*sin(_zA12)/(N[1]*cos(_zB1))/3600),

A[0]=L[0]*sin(_zB1);

Bm[1]=_zB1+1/2*B[0];

Lm[1]=_zL1+1/2*L[0];

Am[1]=_zA12+1/2*A[0];

inti=1;

B[1]=_AngleTrans.trans3((206265/M[1]*zS*cos(Am[1])*(1+pow(zS,2)/(24*pow(N[1],2))*(pow(sin(Am[1]),2))*

(2+3*pow(t[1],2)+2*pow(yita[1],2))+3*pow(cos(Am[1]),2)*pow(yita[1],2)*(pow(t[1],2)-1-pow(yita[1],2)-

4*pow(yita[1],2)*pow(t[1],2))))/3600);

L[i]=_AngleTrans.trans3((206265/(N[1]*cos(Bm[1]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(t[i],2)*

pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);

A[i]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*

(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*

pow(yita[i],2)))))/3600);

while(B[i]-B[i-1]>=temp)

{B[i+1]=_AngleTrans.trans3((206265/M[i]*zS*cos(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(sin(Am[i]),2))*

(2+3*pow(t[i],2)+2*pow(yita[i],2))+3*pow(cos(Am[i]),2)*pow(yita[i],2)*(pow(t[i],2)-1-pow(yita[i],2)-

4*pow(yita[i],2)*pow(t[i],2))))/3600);

L[i+1]=_AngleTrans.trans3((206265/(N[i]*cos(Bm[i]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(t[i],2)*

pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);

A[i+1]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*

(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*

pow(yita[i],2)))))/3600);

Bm[i+1]=_zB1+1/2*B[i];

Lm[i+1]=_zL1+1/2*L[i];

Am[i+1]=_zA12+1/2*A[i];

M[i+1]=Calc_M(B[i]);

N[i+1]=Calc_N(N[i]);

yita[i+1]=Calc_yita(yita[i]);

t[i+1]=Calc_t(t[i]);

final=B[i];

i++;

}

doubleFinal=final+_zB1;

return_AngleTrans.trans2(Final);

}

//正算经度

doubleZhengFanSuan:

:

ZhengSuanL(doublezB1,doublezL1,doublezA12,doublezS)

{doubleM[10000],

N[10000],

t[10000],

B[10000],Bm[10000],

L[10000],Lm[10000],

A[10000],Am[10000],

yita[10000];

double_zB1=_AngleTrans.trans1(zB1),

_zL1=_AngleTrans.trans1(zL1),

_zA12=_AngleTrans.trans1(zA12),

final;

t[1]=tan(_zB1);

yita[1]=pow(e2,2)*pow(cos(_zB1),2);

N[1]=a/sqrt(1-pow(e1,2)*pow(sin(_zB1),2));

M[1]=a*(1-pow(e1,2))/sqrt(pow(1-pow(e1,2)*pow(sin(_zB1),2),3));

B[0]=_AngleTrans.trans3(206265/M[1]*zS*cos(_zA12)/3600),

L[0]=_AngleTrans.trans3(206265*zS*sin(_zA12)/(N[1]*cos(_zB1))/3600),

A[0]=L[0]*sin(_zB1);

Bm[1]=_zB1+1/2*B[0];

Lm[1]=_zL1+1/2*L[0];

Am[1]=_zA12+1/2*A[0];

inti=1;

B[1]=_AngleTrans.trans3((206265/M[1]*zS*cos(Am[1])*(1+pow(zS,2)/(24*pow(N[1],2))*(pow(sin(Am[1]),2))*

(2+3*pow(t[1],2)+2*pow(yita[1],2))+3*pow(cos(Am[1]),2)*pow(yita[1],2)*(pow(t[1],2)-1-pow(yita[1],2)-

4*pow(yita[1],2)*pow(t[1],2))))/3600);

L[i]=_AngleTrans.trans3((206265/(N[1]*cos(Bm[1]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(t[i],2)*

pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);

A[i]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*

(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*

pow(yita[i],2)))))/3600);

if(L[i]-L[i-1]>=temp)

{while(L[i]-L[i-1]>=temp)

{B[i+1]=_AngleTrans.trans3((206265/M[i]*zS*cos(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(sin(Am[i]),2))*

(2+3*pow(t[i],2)+2*pow(yita[i],2))+3*pow(cos(Am[i]),2)*pow(yita[i],2)*(pow(t[i],2)-1-pow(yita[i],2)-

4*pow(yita[i],2)*pow(t[i],2))))/3600);

L[i+1]=_AngleTrans.trans3((206265/(N[i]*cos(Bm[i]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(t[i],2)*

pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);

A[i+1]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*

(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*

pow(yita[i],2)))))/3600);

Bm[i+1]=_zB1+1/2*B[i];

Lm[i+1]=_zL1+1/2*L[i];

Am[i+1]=_zA12+1/2*A[i];

M[i+1]=Calc_M(B[i]);

N[i+1]=Calc_N(N[i]);

yita[i+1]=Calc_yita(yita[i]);

t[i+1]=Calc_t(t[i]);

final=L[i];

i++;

}

}

else

final=L[i];

doubleFinal=final+_zL1;

return_AngleTrans.trans2(Final);

}

//正算大地方位角

doubleZhengFanSuan:

:

ZhengSuanA(doublezB1,doublezL1,doublezA12,doublezS)

{doubleM[100],

N[100],

t[100],

B[100],Bm[100],

L[100],Lm[100],

A[100],Am[100],

yita[10000];

double_zB1=_AngleTrans.trans1(zB1),

_zL1=_AngleTrans.trans1(zL1),

_zA12=_AngleTrans.trans1(zA12),

final;

t[1]=tan(_zB1);

yita[1]=pow(e2,2)*pow(cos(_zB1),2);

N[1]=a/sqrt(1-pow(e1,2)*pow(sin(_zB1),2));

M[1]=a*(1-pow(e1,2))/sqrt(pow(1-pow(e1,2)*pow(sin(_zB1),2),3));

B[0]=_AngleTrans.trans3(206265/M[1]*zS*cos(_zA12)/3600),

L[0]=_AngleTrans.trans3(206265*zS*sin(_zA12)/(N[1]*cos(_zB1))/3600),

A[0]=L[0]*sin(_zB1);

Bm[1]=_zB1+1/2*B[0];

Lm[1]=_zL1+1/2*L[0];

Am[1]=_zA12+1/2*A[0];

inti=1;

B[1]=_AngleTrans.trans3((206265/M[1]*zS*cos(Am[1])*(1+pow(zS,2)/(24*pow(N[1],2))*(pow(sin(Am[1]),2))*

(2+3*pow(t[1],2)+2*pow(yita[1],2))+3*pow(cos(Am[1]),2)*pow(yita[1],2)*(pow(t[1],2)-1-pow(yita[1],2)-

4*pow(yita[1],2)*pow(t[1],2))))/3600);

L[i]=_AngleTrans.trans3((206265/(N[1]*cos(Bm[1]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(t[i],2)*

pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yita[i],2)-9*pow(yita[i],2)*pow(t[i],2)))))/3600);

A[i]=_AngleTrans.trans3((206265/N[i]*zS*sin(Am[i])*t[i]*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(cos(Am[i]),2)*

(2+7*pow(yita[i],2)+9*pow(yita[i],2)*pow(t[i],2)+5*pow(yita[i],4))+pow(sin(Am[i]),2)*(2+pow(t[i],2)+2*

pow(yita[i],2)))))/3600);

while(A[i]-A[i-1]>=temp)

{B[i+1]=_AngleTrans.trans3((206265/M[i]*zS*cos(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(sin(Am[i]),2))*

(2+3*pow(t[i],2)+2*pow(yita[i],2))+3*pow(cos(Am[i]),2)*pow(yita[i],2)*(pow(t[i],2)-1-pow(yita[i],2)-

4*pow(yita[i],2)*pow(t[i],2))))/3600);

L[i+1]=_AngleTrans.trans3((206265/(N[i]*cos(Bm[i]))*zS*sin(Am[i])*(1+pow(zS,2)/(24*pow(N[i],2))*(pow(t[i],2)*

pow(sin(Am[i]),2)-pow(cos(Am[i]),2)*(1+pow(yi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2