附合导线平差程序设计报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《测量平差程序》课程设计
(报告)
学生姓名:罗正材
学号:1108030128
专业:2011级测绘工程
指导教师:肖东升
目录
一、前言 (3)
二、平差程序的基本要求 (3)
三、平差程序模块化 (3)
图1
四、平差中的重要函数
(一)、角度制与弧度制的相互转化
C/C++程序设计中,关于角度的计算以弧度制为单位,而在测量以及具体工作中我们通常习惯以角度制为单位。这样,在数据处理中,经常需要在角度制与弧度制之间进行相互转化。这里,我们利用C/C++数学函数库math.h中的相关函数完成这两种功能。
这里,我们使用double类型数据表示角度制数和弧度制数。例如:123度44分58.445秒,用double类型表示为123.4458445,其中分、秒根据小数位确定。
在角度制与弧度制的转化中,涉及如下图2所示的两个环节。
度.分秒度弧度
图2
1.角度化弧度函数
double d_h(double angle) //角度化弧度
{ double a,b;
angle=modf(angle,&a);//a为提取的度值(int类型),angle为分秒值(小数)
angle=modf(angle*100.0,&b); // b为提取的分值(int类型),angle为秒值(小数)
return (a+b/60.0+angle/36.0)*(PI+3.0E-16)/180.0;
}
2.弧度化角度函数
double h_d(double angle) //弧度化角度
{ double a,b,c;
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;
}
其中,函数modf(angle,&a)为C语言数学库函数,返回值有两个,以引用类型定义的a 返回angle的整数部分,函数直接返回值为angle的小数部分。
(二)近似坐标计算
在平面网间接平差计算中,近似坐标计算是非常重要的一项基础工作。近似坐标是否计算成功是间接平差是否可以进行的必要条件。
1.两方向交会
已知条件:两个点的近似坐标,这两个点到未知点的方位角,如图3所示
图3两方向交会
根据图4.2,设
1
1
α
tg
k=,
2
2
α
tg
k=,则很容易写出
⎪
⎩
⎪
⎪
⎨
⎧
-
=
-
-
=
B
P
B
P
A
P
A
P
y
y
k
x
x
y
y
k
2
1
整理该式,得两方向交会的的计算公式
⎪⎪
⎭
⎫
⎝
⎛
-
-
=
⎪⎪
⎭
⎫
⎝
⎛
⎪⎪
⎭
⎫
⎝
⎛
-
-
B
B
A
A
P
P
y
x
k
y
x
k
y
x
k
k
2
1
2
1
1
1
(4.1)对(4.1)式计算,即可得到未知点的近似坐标。应用中需要注意的是,若两方向值相同或相反,则该式无解。
程序中,定义该问题的函数为:int xy0ang(obser &a1,obser &a2)
2.三边交会
如图4所示,为排除两边长交会的二义性,给出如下三边交会的模型,已知条件:三个
点的近似坐标,这三个点到未知点的距离测量值。
图4 三边交会 对每条边长测量值,可列出边长条件
⎪⎩⎪⎨⎧-+-=-+-=-+-=)
()
()()()()()()()(222322222221c y y x x S b y y x x S a y y x x S C P C P B P B P A P A P
计算上式中(a )与(b )和(c )三式的差,消去未知参数的平方项,整理得三边交会的计算公式
⎝⎛++---++---=⎪⎪⎭⎫ ⎝⎛⎪⎪⎭⎫
⎝⎛----22222122232212222A A C C A A B B P P C A C
A B A B
A y x S y x S y x S y x S y x y y x x y y x x (4.2
对(4.2)式计算,即可得到未知点的近似坐标。应用中需要注意的是,若三点位于同一条直线,则该式无解。程序中,定义该问题的函数为:int xy0dist (obser &a ,obser &b , obser &c )。 3.坐标正算
使用测量正算公式计算控制网的近似坐标。程序中,定义该问题的函数为:
int zheng (obser &a ) 4.角度后方交会
使用测量后方交会计算公式计算控制网的近似坐标。程序中,定义该问题的程序函数为:
int houj (obser &a ,obser &b , obser &c ) 5.测角网无定向导线计算
无定向导线,主要应用于计算已知控制点不相邻的三角网的近似坐标。基本思想为:先由一个已知点开始,假设一条边的边长与方位角,根据三角网的角度观测值推算其它边的边长与方位角,然后,由任一导线计算,直到计算至另一个已知点为止。假设导线的起点为A ,终点为B 。这时,计算出的B 点坐标必然与已知坐标不同,设A 与B 的已知坐标为(B B A A y x y x ,,,),B 点的计算坐标为B ’
('
',B B y x ),则用这些数据可以计算边长的放大系
数k 和假设方位角的改正数da
2
22
'
2')
()()()(A B A B A B A B y y x x y y x x k -+--+-=