资源简介
大地坐标系和空间直角坐标系转换能实现大地坐标和空间直角坐标的相互转换
代码片段和文件信息
#include
#include
#include
#include
#define MAX 100
#define PI 3.1415926
/////////////////////////////////// 结构体存放BLH
struct BLH
{char name1[20];
char name2[20];
double B;
char name3[20];
double L;
char name4[20];
double H;
};
/////////////////////////////// 结构体存放XYZ
struct XYZ
{char name1[20];
char name2[20];
double X;
char name3[20];
double Y;
char name4[20];
double Z;
};
///////////////////////////////// 文件输入BLH
double FILEIN(BLH &bchar *fname)
{
ifstream in(fnameios::nocreate); // 建立文件流并与输入文件名建立关联
if(!in)
{
cout< cout<<“--------------------------请手动输入数据 -------------------------\n“< return 0;
}
in>>b.name1;
in>>b.name2;
in>>b.B;
in>>b.name3;
in>>b.L;
in>>b.name4;
in>>b.H;
in.close();
return 1;
}
//////////////////////////////////////////////// 文件输入XYZ
double FILEIN1(XYZ &bchar *fname)
{
ifstream in(fnameios::nocreate); // 建立文件流并与输入文件名建立关联
if(!in)
{
cout< cout<<“-------------------------- 请手动输入数据-------------------------\n“< return 0;
}
in>>b.name1;
in>>b.name2;
in>>b.X;
in>>b.name3;
in>>b.Y;
in>>b.name4;
in>>b.Z;
in.close();
return 1;
}
////////////////////////////////////////////////////////
double d_h(double angle) //角度化弧度
{
double ab;
angle=modf(angle&a);
angle=modf(angle*100.0&b);
return (a+b/60.0+angle/36.0)*(PI+3.0E-16)/180.0;
}
///////////////////////////////////////////////////////////
double h_d(double angle) //弧度化角度
{
double abc;
angle=modf(angle*180.0/(PI-3.0E-16)&a);
angle=modf(angle*60.0&b);
angle=modf(angle*60.0&c);
return a+b*0.01+c*0.0001+angle*0.0001;
}
/////////////////////////////////////////// 键盘输入BLH
jianpan(BLH &a)
{cout<<“请输入大地坐标B “< cin>>a.B;
cout<<“请输入大地坐标L “< cin>>a.L;
cout<<“请输入大地坐标H “< cin>>a.H;
}
///////////////////////////////////////// 键盘输入XYZ
jianpan1(XYZ &a)
{
cout<<“请输入空间直角坐标X “< cin>>a.X;
cout<<“请输入空间直角坐标Y “< cin>>a.Y;
cout<<“请输入空间直角坐标Z “< cin>>a.Z;
}
////////////////////////////////////////////////////// 大地坐标系换算到空间直角坐标系
double B_X(BLH &a)
{double aa[MAX][MAX];
double a1b1NE1XYZ;
int knm;
char outfilename[20]fname[20];
cout<<“请选择:“< cout<<“1:文件输入“< cout<<“2:键盘输入“< cin>>m;
if(m==1)
{cout<<“请输入文件名“< cin>>fname;
if(FILEIN(afname));
else
{if(jianpan(a));
else
{cout<<“输入有误,程序中止,请重新运行“< return false;
}
}
}
else if(m==2)
jianpan(a);
else
{cout<<“输入代码有误,程序中止,请重新运行“< return false;}
if(a.B<-90||a.B>90)
{cout<<“输入B有误,程序中止,请重新运行“< return false;}
if(a.L<0||a.L>360)
{cout<<“输入L有误,
评论
共有 条评论