4、对支导线三文坐标计算
2.2软件程序框架及代码
2.2.1附合导线平差计算
编码实现附合导线实测数据的文件导入及平差结果的文件输出。
窗口显示:附合导线平差计算窗体
试验代码:
Dim num_total As Integer
Dim gcj2() As Single, fwj() As Single, xj As String, xj1 As Variant, zx() As Single, zy() As Single
Dim X() As Single, Y() As Single, fx As Single, fy As Single, fs As Single, k As Single, vx() As Single, vy() As Single
Private Sub Command1_Click()
Dim gcj As String, gcj1 As Variant, s As Single, s1 As Single, shmo As Single, fb As Single, v As Single
Dim sxj As Single, fx1 As Single, fy1 As Single, fb1 As Single
Text9.Text = ""
Text10.Text = ""
Text11.Text = ""
Text12.Text = ""
Text13.Text = ""
Text22.Text = ""
Text23.Text = ""
Text26.Text = Str(Val(Text2.Text) - Val(Text1.Text))
Text27.Text = Str(Val(Text4.Text) - Val(Text3.Text))
If Right(Text7.Text, 2) = vbCrLf Then
Text7.Text = Left(Text7.Text, Len(Text7.Text) - 2)
End If '删除空白行
gcj = Text7.Text
gcj1 = Split(gcj, vbCrLf)
If Right(Text8.Text, 2) = vbCrLf Then
Text8.Text = Left(Text8.Text, Len(Text8.Text) - 2)
End If
xj = Text8.Text
xj1 = Split(xj, vbCrLf)
'Print (UBound(gcj1) + 1)
For i = 0 To UBound(gcj1)
s = s + huadu(Val(gcj1(i)))
Next
s1 = zhuanhua(s)
Text19.Text = Str(s1)
shmo = huadu(Val(Text6.Text)) - huadu(Val(Text5.Text))
Text21.Text = Format(Str(zhuanhua(shmo)), "###.0000")
fb = s - shmo
If fb > 0 Then
fb = fb - (UBound(gcj1) + 1) * 180
Else
fb = fb + (UBound(gcj1) + 1) * 180
End If
fb1 = Fix(zhuanhua(fb) * 10000)
Text14.Text = Str(fb1)
v = (-fb) / (UBound(gcj1) + 1)
ReDim gcj2(UBound(gcj1)), fwj(UBound(gcj1) + 1), zx(UBound(gcj1)), zy(UBound(gcj1))
fwj(0) = Val(huadu(Text5.Text))
For i = 0 To UBound(gcj1)
gcj2(i) = huadu(Val(gcj1(i))) + v
fwj(i + 1) = fwj(i) + gcj2(i) - 180