早教吧作业答案频道 -->数学-->
vc程序,以下是自已写的,但有错误,没法运行,求调试.//已知待定点的空间直角坐标(X、Y、Z),求其大地坐标(B、L、H).利用这两种坐标系可以看作时同一个地球坐标系的两种形式之间的关系,
题目详情
vc程序,以下是自已写的,但有错误,没法运行,求调试.
//已知待定点的空间直角坐标(X、Y、Z),求其大地坐标(B、L、H).利用这两种坐标系可以看作时同一个地球坐标系的两种形式之间的关系,确定其数学转换关系.
#include
#include
math()
{
float X=2325.2153,Y=5146.3214,Z=5324541314.1753; //已知待定点的空间直角坐标,单位为米
double e2=0.006738525414683,c=6399698.9017827110; //克氏椭球中椭圆的第一偏心率
float q,r,R,L,a,A1,A2,A3,A4,tB,B,V,N,H,fB,fL,dB,fenB,mB,C,dL,fenL,mL;
q=atan(Z/sqrt(X*X+Y*Y));
r=sqrt(X*X+Y*Y+Z*Z);
R=6371116.0; //地球半径
L=atan(Y/X); //大地坐标经度
a=1/298.3;
A1=a*tan(q)/R;
A2=sin(q)*sin(q)+2*a*cos(q)*cos(q)/R;
A3=3*sin(q)*sin(q)*sin(q)*sin(q)+16*(a*sin(q)*sin(q)*cos(q)*cos(q)/R+4*a*a*cos(q)*cos(q)*(2-5*sin(q)*sin(q))/(R*R));
A4=5*sin(q)*sin(q)*sin(q)*sin(q)*sin(q)*sin(q)+48*(a*sin(q)*sin(q)*sin(q)*sin(q)*cos(q)*cos(q)+20*a*a*cos(q)*cos(q)*sin(q)*sin(q)*(4-7*sin(q)*sin(q))/(R*R)+16*a*a*a*cos(q)*cos(q)*(1-7*sin(q)*sin(q)+8*sin(q)*sin(q)*sin(q)*sin(q))/(R*R*R));
tB=tan(q)+A1*e2*(1+e2/2.0*(A2+e2/4.0*(A3+A4/2.0)*e2));
B=atan(tB); //大地坐标纬度
V=sqrt(1+e2*cos(B)*cos(B));
N=c/V; //所在子午圈的卯酉圈曲率半径
H=r*cos(q)/cos(B)-N; //待定点的大地高
fB=rad2deg(B); //将弧度化成角度
fL=rad2deg(L);
dB=floor(fB);
fenB=floor((fB-dB)*60);
mB=floor(((fB-dB)*60-fenB)*60); //将角度用度,分,秒表示
C=floor(fL);
fenL=floor((fL-dL)*60);
mL=floor(((fL-dL)*60-fenL)*60);
printf("\nL=%d %d %d\n",dL,fenL,mL);
printf("B=%d %d %d\n",dB,fenB,mB);
}
//已知待定点的空间直角坐标(X、Y、Z),求其大地坐标(B、L、H).利用这两种坐标系可以看作时同一个地球坐标系的两种形式之间的关系,确定其数学转换关系.
#include
#include
math()
{
float X=2325.2153,Y=5146.3214,Z=5324541314.1753; //已知待定点的空间直角坐标,单位为米
double e2=0.006738525414683,c=6399698.9017827110; //克氏椭球中椭圆的第一偏心率
float q,r,R,L,a,A1,A2,A3,A4,tB,B,V,N,H,fB,fL,dB,fenB,mB,C,dL,fenL,mL;
q=atan(Z/sqrt(X*X+Y*Y));
r=sqrt(X*X+Y*Y+Z*Z);
R=6371116.0; //地球半径
L=atan(Y/X); //大地坐标经度
a=1/298.3;
A1=a*tan(q)/R;
A2=sin(q)*sin(q)+2*a*cos(q)*cos(q)/R;
A3=3*sin(q)*sin(q)*sin(q)*sin(q)+16*(a*sin(q)*sin(q)*cos(q)*cos(q)/R+4*a*a*cos(q)*cos(q)*(2-5*sin(q)*sin(q))/(R*R));
A4=5*sin(q)*sin(q)*sin(q)*sin(q)*sin(q)*sin(q)+48*(a*sin(q)*sin(q)*sin(q)*sin(q)*cos(q)*cos(q)+20*a*a*cos(q)*cos(q)*sin(q)*sin(q)*(4-7*sin(q)*sin(q))/(R*R)+16*a*a*a*cos(q)*cos(q)*(1-7*sin(q)*sin(q)+8*sin(q)*sin(q)*sin(q)*sin(q))/(R*R*R));
tB=tan(q)+A1*e2*(1+e2/2.0*(A2+e2/4.0*(A3+A4/2.0)*e2));
B=atan(tB); //大地坐标纬度
V=sqrt(1+e2*cos(B)*cos(B));
N=c/V; //所在子午圈的卯酉圈曲率半径
H=r*cos(q)/cos(B)-N; //待定点的大地高
fB=rad2deg(B); //将弧度化成角度
fL=rad2deg(L);
dB=floor(fB);
fenB=floor((fB-dB)*60);
mB=floor(((fB-dB)*60-fenB)*60); //将角度用度,分,秒表示
C=floor(fL);
fenL=floor((fL-dL)*60);
mL=floor(((fL-dL)*60-fenL)*60);
printf("\nL=%d %d %d\n",dL,fenL,mL);
printf("B=%d %d %d\n",dB,fenB,mB);
}
▼优质解答
答案和解析
fB=rad2deg(B);
fL=rad2deg(L);
dB=floor(fB);
在此处调用了外部函数,你的外部函数没有声明和实现,所以会报错.看看是否没有包含应包含的头文件.
fL=rad2deg(L);
dB=floor(fB);
在此处调用了外部函数,你的外部函数没有声明和实现,所以会报错.看看是否没有包含应包含的头文件.
看了vc程序,以下是自已写的,但有...的网友还看了以下:
英语翻译变电站的电气设备误操作会严重威胁电力系统的安全稳定运行,可能导致大面积停电、电力设备损坏、 2020-05-17 …
在作物的间作和套种中,往往将具须根系作物和具直根系的作物搭配。()A.正确B.错误 2020-05-25 …
备份指将文件系统或数据库系统中的数据加以复制,一旦发生灾难或错误操作的时候,得意方便而及时地 恢复系 2020-05-31 …
中国人失掉自信力了吗1.第一、二段摆出敌方论据和论点,第三至五段直接批驳2.敌方论据和论点之间无因 2020-06-04 …
指出下面应用文的错误,指出下面应用文的错误并作出修改:失物启示本人昨天不慎丢失皮夹一只,内有钥匙二 2020-06-05 …
北斗导航系统又被称为“双星定位系统”,具有导航、定位等功能.“北斗”系统中两颗工作卫星均绕地心O做 2020-07-25 …
有三个相同的传感器组成安全监控系统,误报概率为a,漏报为b.若在三中取二系统中,求漏报和误报的概率. 2020-11-03 …
2012年9月,南京市民丁先生到一银行的自助区存款,因操作失误,一万元被ATM机吞了,当即联系银行客 2020-11-24 …
用直尺和圆规作Rt△ABC斜边AB上的高线CD,甲、乙两人的作法如图:根据两人的作法可判断()A.甲 2020-11-29 …
在人类遗传病调查中发现某两个家系中都有甲遗传病(基因为A/a)和乙遗传病(基因为B/b)患者,两家系 2020-12-14 …