高斯投影的正算反算C++源代码-课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
高斯投影的正算反算C++源代码 一、 设计目的:
加深理解高斯—克吕格投影的实质,掌握高斯—克吕格投影直角坐标的运用,
理解通用坐标和自然坐标值的关系。 二、 设计内容:
1、编程实现由经纬度到直角坐标的转换;
2、正确计算点所在的分度带;
3、准确计算出点的通用坐标值。 三、 方法与步骤:
1、理解公式中每个字母的含义;
2、编程。
3、编程的程序如下:
// 高斯投影正反算公式.cpp : Defines the entry point for the console application.
//#include "iostream.h"
#include "math.h"
int main(int argc, char* argv[])
{
int n,a,d,c;
int L[4],B[4],C[3],D[3],L0;
double l,N,a0,a4,a6,a3,a5,x,y,BB,P,b,Z,Bf,b2,b3,b4,b5,Nf,LL,xx,yy;
cout<<"1----正算(L,B-->x,y) 2----反算(x,y-->L,B)"<
>n;
/////////////////正算
if(n==1)
{
cout<<"请按顺序输入L,B:"<>L[1]>>L[2]>>L[3];
cout<<"请输入B(度,分,秒):"<>B[1]>>B[2]>>B[3];
BB=3.141592654*(B[1]+B[2]/60.0+B[3]/3600.0)/180;
P=3.141592654*(B[1]*3600+B[2]*60+B[3])/(180*3600);
////////////////计算点所在投影带的中央子午线
L[0]=6*(int((L[1]+L[2]/60.0+L[3]/3600.0)/6)+1)-3;
cout<<"点所在投影带的中央子午线为:"<>xx>>yy;
cout<<"请输入点所在投影带的中央子午线(度):"<>L0;
b=xx/6367558.4969;
Bf=b+(50221746+(293622+(2350+22*cos(b)*cos(b))*cos(b)*cos(b))
*cos(b)*cos(b))*(1.0E-10)*sin(b)*cos(b);
Nf=6399698.902-(21562.267-(108.973-0.612*cos(Bf)*cos(Bf))*cos(Bf)*c
os(Bf))*cos(Bf)*cos(Bf);
Z=yy/(Nf*cos(Bf));
b2=(0.5+0.00336975*cos(Bf)*cos(Bf))*sin(Bf)*cos(Bf);
b3=0.333333-(0.1666667-0.001123*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
b4=0.25+(0.161612+0.005617*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
b5=0.2-(0.1667-0.00878*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
BB=Bf*3600*180/3.141592654-(1-(b4-0.147*Z*Z)*Z*Z)*Z*Z*b2*180*
3600/3.141592654;
LL
C[1]=int((BB-C[0]*3600)/60);
C[2]=int(BB-C[0]*3600-C[1]*60);
cout<<"B="<
本文档为【高斯投影的正算反算C++源代码-课程设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。