- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C高斯正反算
测绘程序设计基础实验七
实验报告
班 级:测绘0903班
姓 名:
学 号:
指导老师:
实验 7 常用测量程序设计
实验目的
1、巩固类的创建与使用
2、掌握数组参数的传递
3、掌握常用测绘程序设计的技巧
二、实验内容
要清楚计算步骤和公式,还有各个参数计算的前后顺序。编写高斯正反算公式。
界面设计
实验步骤
combox。
我为了实现椭球参数的选择使用了combox控件。
添加每行的显示信息
添加combox函数,定义一个全局变量type获得选择的参数
添加一个C++类,编写关于高斯正反算的各个函数
在头文件中定义
在CPP中写函数
定义参数
角度转换
改变参数
调用函数
实验结果
正算:
反算:
#include stdafx.h
#include Gauss.h
#include math.h
const double PI=3.1415926535897932384626433832795;
double a=6378245;
double b=6356863.0187730473;
double e2=sqr(a*a-b*b)/a;
double e2=sqr(a*a-b*b)/b;
double dms2deg(double dms)//度分秒转换度
{
double deg;
int idegree imin;
double dsec;
idegree=int(dms);
imin=int((dms-idegree)*100);
dsec=((dms-idegree)*100-imin)*100;
deg=ideree+double(imin/60)+double(dsec/3600);
return deg;
}
double deg2dms(double deg)//度转换度分秒
{
double dms;
int idegree imin;
double dsec;
double dtmp;
idegree=int(dms);
dtmp=(deg=idegree)*60;
immin=int(dtmp);
dsec=(dtmp-imin)*60;
return dms;
}
//椭球参数
void ellipd(int type)
{
if (type==0)
{
a=6378245;
b=6356863.0187730473;
e2=0.006693421622965949;
e2=0.00673852541468397;
};
if (type==1)
{
a=6378140;
b=6356755.2881575287;
e2=0.006694384999587952;
e2=0.006739501819472927;
};
}
//正算
double ComptX(double B)
{
double a0=1+3/4*e2+45/64*pow(e2,2)+350/512*pow(e2,3)+11025/16384*pow(e2,4);
double a2=-1/2*(3/4*e2+60/64*pow(e2,2)+525/512*pow(e2,3)+17640/16384*pow(e2,4));
double a4=1/4*(15/64*pow(e2,2)+210/512*pow(e2,3)+8820/16384*pow(e2,4));
double a6=-1/6*(35/512*pow(e2,3)+2520/16384*pow(e2,4));
double a8=1/8*(315/16384*pow(e2,4));
double X=a*(1-e2)*(a0*B+a2*sin(2*B)+a4*sin(4*B)+a6*sin(6*B)+a8*sin(8*B));
return X;
}
double ComptForward(double B,double L,double cmd,int type,double x,double y)
{
L=dms2deg(L);
cmd=dms2deg(cmd);
double l=(L-cmd)*3600/206265;
double b=dms2deg(B)*PI/180;
ellipd(type)
double N=a/sqr(1-e2*sin(b)*s
您可能关注的文档
- 7B词汇表.doc
- 7MFC的DLL.doc
- 737NG放水程序.ppt
- 400M核磁操作方法.ppt
- 7下.Grammar focus 语法焦点 翻译.doc
- 7寸产品规格书.doc
- 7章, 磁力.ppt
- 7第四章 数字滤波器的结构.ppt
- 7索赔函.ppt
- 8-U型线布置.doc
- c程序员面试题及答案.doc
- 第01讲 运动的描述(练习)(解析版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- c的面试题及答案.doc
- 第01讲 运动的描述(练习)(原卷版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- 2003年非典后航空复盘分析报告.pdf
- 第02讲 匀变速直线运动的规律(练习)(解析版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- 第02讲 匀变速直线运动的规律(练习)(原卷版)-【上好课】2025年高考物理一轮复习讲练测(新教材新高考).pdf
- c考试题库及答案.doc
- c面试题及答案.doc
- 汽车管件及座椅骨架、异形金属结构件生产线改造项目(技术改造)报告表.pdf
文档评论(0)