导线网平差

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

导线网平差

'**************************************** ***************************************** **

' 本程序用于单一附(闭)合导线严密平差计算,采用按角度条件平差法。以方向观测值中'误差的先验值作为单位权中误差。计算结果可求得各待定点的坐标平差值及其点位精度Mx,My,

'及M,并计算出各待定点误差椭圆元素E,F,Z '

'参考文献:郭久训.《控制网平差程序设计》北京:原子能出版社,2004.8

'

'平差数据来源:潘正风等.《数字测图原理与方法》武汉大学出版社186页表6-5

'

'等级:所用平差数据为首级图根导线数据(精度很不高)。本程序中写出了方位角和导线全长相对闭合差的判

'别,但考虑到程序的通用性,将这些限差判断当作了注释处理,而不实际运行。

'

'程序不足:没有导线网的图形表达。

'****************************************

*****************************************

**

Private i%, j%, n%, tc#, tb#, B_x!, B_y!, e1!,

e2!, m!, m0#, z#, aa As Boolean, bb As Boolean,

cc As Boolean ',dd As Boolean

Private Naa#(2, 2), Naa逆#(2, 2), W#(2),

K#(2), qq#(2), fx#(2), fy#(2)

Private A#(), Q#(), V#(), C#(), mx#(), my#(),

mk#(), e#(), f#(), zz#()

Private Po() As Point

'文件格式说明:

'文件格式详见文件"平差数据.txt"

'

Private Sub 打开文件_Click()

'打开文件

Dim ff$, temp$, A_name$, A_x!, A_y!,

A_l#, A_s!, B_name$, B_l#, C_name$, C_x!,

C_y!, D_name$, D_x!, D_y!

Form1.Cls '清屏

CommonDialog1.DialogTitle = "打开数据

文件"

CommonDialog1.FileName = ""

CommonDialog1.ShowOpen

'出错处理

On Error GoTo FileErr

ff = CommonDialog1.FileName 'ff是文件路径名

Open ff For Input As #1 '以顺序文件方式打开文件,使用input

Line Input #1, temp '读取文件中的说明语句

Line Input #1, temp '读取文件中的说明语句

Line Input #1, temp '读取文件中的说明语句

Input #1, n '读取n,n为(测站数-1)

ReDim Po(n) As Point '定义Po(n),其中Po(0)存A点数据,Po(n)存B

点数据,Po(1)到Po(n-1)存n-1个未知点数据。

Line Input #1, temp '读取文件中的说明语句

Line Input #1, temp '读取文件中的说明语句

Input #1, m, e1, e2 '读取先验方向观测值中误差m,测距仪固定误差

e1,比例误差e2

Line Input #1, temp '读取文件中的说明语句

Line Input #1, temp '读取文件中的说明语句

Input #1, C_name, C_x, C_y '读取已知点C

Input #1, A_name, A_x, A_y, A_l, A_s

'读取已知点A

For i = 1 To n - 1

'读取n-1个未知点

Input #1, Po(i).name, Po(i).l,

Po(i).s

Next i

Input #1, B_name, B_x, B_y, B_l '读取已知点B

Input #1, D_name, D_x, D_y '读取已知点D

Close #1

tc = ZBiaoFSuan(C_x, C_y, A_x, A_y)

'坐标反算,求点C到A的坐标方位角,并记作tc,

单位是度

tb = ZBiaoFSuan(B_x, B_y, D_x, D_y)

'坐标反算,求点B到D的坐标方位角,并记作tb,

单位是度

Po(0).name = A_name: Po(0).x = A_x:

Po(0).y = A_y: Po(0).l = A_l: Po(0).s = A_s

'Po(0)存A点数据

Po(n).name = B_name: Po(n).x = B_x:

Po(n).y = B_y: Po(n).l = B_l 'Po(n)存B点数据

For i = 0 To n

Po(i).l = deg(Po(i).l) '将观测方向左角的单位度分秒化作度

Next i

ReDim Q#(2 * n), A#(2, 2 * n), V#(2

* n), C#(1, 2 * n - 2), mx#(n - 1), my#(n -

1), _

mk#(n - 1), e#(n - 1), f#(n - 1),

zz#(n - 1) '变量重新定义

bb = True

MsgBox "文件已成功打开", , "提示"

显示平差数据 ff

Exit Sub

FileErr:

MsgBox "您的文件未打开或打开的文件

格式有误!注意:请重新运行本程序!!", , "

提示"

End Sub

相关文档
最新文档