附合导线平差程序设计报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 -+--+-=

相关文档
最新文档