资源简介
武汉大学测绘学院大地测量学编程--大地主题解算-高斯投影算C++源码
代码片段和文件信息
// Gauss.cpp : Defines the entry point for the console application.
//Gauss正反算
//武汉大学测绘学院测绘工程0609班 学号 200631610370 刘浩
#include “stdafx.h“
#include
#include
#include
#include //setprecision()函数的头文件 用于控制小数的位数
#define M 8
#define PI 3.141592653589793
void OuDegree(double ); //声明按°′″格式输出函数
int i;
void main(void)
{
cout<<“请选择你要进行的运算:\n【高斯投影正算 1】【高斯投影反算 2】“< cin>>i;
if(i==1)
{
cout<<“您选择了高斯投影正算正算的结果为:“< //定义3个数组,第一个存放°,第二个存放′,第三个存放″
double degree[M]={51 111 0}
minute[M]={38 2 0}
second[M]={43.9023 13.1360 0};
//将 B L 化成弧度
double B=(degree[0]+minute[0]/60+second[0]/3600)*PI/180;
double L=(degree[1]+minute[1]/60+second[1]/3600)*PI/180;
int N L0;
double l NN a0 a4 a6 a3 a5 x y;
N=(int)(degree[1]+minute[1]/60+second[1]/3600)/6+1;
L0=6*N-3;
l=((degree[1]+minute[1]/60+second[1]/3600)-L0)*PI/180;
NN=6399698.902-(21562.267-(108.973-0.612*cos(B)*cos(B))*cos(B)*cos(B))*cos(B)*cos(B);
a0=32140.404-(135.3302-(0.7092-0.0040*cos(B)*cos(B))*cos(B)*cos(B))*cos(B)*cos(B);
a4=(0.25+0.00252*cos(B)*cos(B))*cos(B)*cos(B)-0.04166;
a6=(0.166*cos(B)*cos(B)-0.084)*cos(B)*cos(B);
a3=(0.3333333+0.001123*cos(B)*cos(B))*cos(B)*cos(B)-0.166667;
a5=0.0083-(0.1667-(0.1968+0.0040*cos(B)*cos(B))*cos(B)*cos(B))*cos(B)*cos(B);
x=6367558.4969*B-(a0-(0.5+(a4+a6*l*l)*l*l)*l*l*NN)*sin(B)*cos(B);
y=(1+(a3+a5*l*l)*l*l)*l*NN*cos(B);
y=y+500000.0;
//输出计算成果
cout<<“B=“< cout<<“sin(B)=“< cout<<“cos(B)=“< cout<<“l=“< cout<<“L0=“< cout<<“NN=“< cout<<“a0=“< cout<<“a4=“< cout<<“a6=“< cout<<“a3=“< cout<<“a5=“< cout<<“N=“< cout<<“x=“< cout<<“y=“< }
//反算
if(i==2)
{
cout<<“您选择了高斯投影反算反算的结果为:“< double x=5724004.82174 y=19502559.91994;
double bBfZNfb2b3b4b5BlLL0Ny0;
N=(int)y/1000000; //计算带数
L0=(6*N-3)*PI/180; //计算子午线的弧度
y0=y-N*1e6-500000; //计算y的实际值
b=x/6367558.4969;
Bf=b+(50221746+(293622+(2350+22*cos(b)*cos(b))*cos(b)*cos(b))*cos(b)*cos(b))*1e-10*sin(b)*cos(b);
Nf=6399698.902-(21562.267-(108.973-0.612*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
Z=y0/(Nf*cos(Bf));
b2=(0.5+0.003369*cos(Bf)*cos(Bf))*sin(Bf)*cos(Bf);
b3=0.333333-(0.166667-0.001123*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
b4=0.25+(0.16161+0.00562*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
b5=0.2-(0.1667-0.0088*cos(Bf)*cos(Bf))*cos(Bf)*cos(Bf);
B=Bf-(1-(b4-0.12*Z*Z)*Z*Z)*Z*Z*b2;
l=(1-(b3-b5*Z*Z)*Z*Z)*Z;
L=L0+l;
cout<<“N的值为:“< cout<<“β的值为:“< cout<<“cos(β)的值为:“< cout<<“sin(β)的值为:“< cout<<“Bf的值为:“< cout<<“Z的值为:“< cout<<“Nf的值为:“< cout<<“b2的值为:“< cout<<“b3的值为:“< cout<<“b4的值为:“< cout<<“b5的值为:“<
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 48640 2008-10-19 12:22 Gauss_ty\Gauss.opt
文件 3610 2008-10-19 12:21 Gauss_ty\Gauss.cpp
文件 769 2008-10-16 20:31 Gauss_ty\StdAfx.h
文件 292 2008-10-16 20:31 Gauss_ty\StdAfx.cpp
文件 1202 2008-10-16 20:31 Gauss_ty\ReadMe.txt
文件 4524 2008-10-16 20:31 Gauss_ty\Gauss.dsp
文件 535 2008-10-16 20:31 Gauss_ty\Gauss.dsw
文件 50176 2008-10-19 12:22 Gauss_ty\Gauss.ncb
文件 58368 2008-10-19 12:21 Gauss_ty\Debug\vc60.idb
文件 203736 2008-10-16 20:31 Gauss_ty\Debug\Gauss.pch
文件 102400 2008-10-19 12:21 Gauss_ty\Debug\vc60.pdb
文件 1765 2008-10-16 20:31 Gauss_ty\Debug\StdAfx.obj
文件 406620 2008-10-19 12:21 Gauss_ty\Debug\Gauss.ilk
文件 225325 2008-10-19 12:21 Gauss_ty\Debug\Gauss.exe
文件 549888 2008-10-19 12:21 Gauss_ty\Debug\Gauss.pdb
文件 30283 2008-10-19 12:21 Gauss_ty\Debug\Gauss.obj
文件 1494 2008-10-19 12:21 Gauss_ty\Gauss.plg
目录 0 2008-10-16 20:31 Gauss_ty\Debug
目录 0 2008-10-16 20:31 Gauss_ty
----------- --------- ---------- ----- ----
1689627 19
评论
共有 条评论