📄 coordcaculate.bas
字号:
Attribute VB_Name = "CoordCaculate"
'计算直线坐标通用函数
Public Sub CoordLine(Xq As Double, Yq As Double, A_12, Re_K As Double)
Xp_Temp = Format(Xq + Re_K * Cos(A_12), "0.000")
Yp_Temp = Format(Yq + Re_K * Sin(A_12), "0.000")
'确定是否计算边桩坐标
If Form2.Check1.Value = 1 And Temp = "左" Then
D = Val(Form2.Text3.Text)
Xp_Temp = Format(Xp + D * Cos(A_12 + PI() / 2), "0.000")
Yp_Temp = Format(Yp + D * Sin(A_12 + PI() / 2), "0.000")
End If
If Form2.Check1.Value = 1 And Temp = "右" Then
D = Val(Form2.Text3.Text)
Xp_Temp = Format(Xp + D * Cos(A_12 + 3 * PI() / 2), "0.000")
Yp_Temp = Format(Yp + D * Sin(A_12 + 3 * PI() / 2), "0.000")
End If
Call Tools.OutPut(Xp_Temp, Yp_Temp, Re_K)
End Sub
'计算直线段的边桩坐标函数
Public Sub Line_BZ(Aziuth_L)
Form2.MSHFlexGrid2.Row = 0
Form2.MSHFlexGrid2.Col = 0
Form2.MSHFlexGrid2.Text = "序号"
Form2.MSHFlexGrid2.Row = 0
Form2.MSHFlexGrid2.Col = 1
Form2.MSHFlexGrid2.Text = "左边桩号"
Form2.MSHFlexGrid2.Row = 0
Form2.MSHFlexGrid2.Col = 2
Form2.MSHFlexGrid2.Text = "北坐标(X)"
Form2.MSHFlexGrid2.Row = 0
Form2.MSHFlexGrid2.Col = 3
Form2.MSHFlexGrid2.Text = "东坐标(Y)"
S = Form2.MSHFlexGrid1.Rows
Form2.MSHFlexGrid2.Rows = 2 * S
Form2.ProgressBar1.Max = 2 * S
Form2.ProgressBar1.Value = 0
For hh = 1 To S - 1
For jj = 0 To 3
Form2.MSHFlexGrid2.Row = hh
Form2.MSHFlexGrid2.Col = jj
Form2.MSHFlexGrid1.Row = hh
Form2.MSHFlexGrid1.Col = jj
Call Read(jj, Aziuth_L, "(左)")
Next
Form2.ProgressBar1.Value = hh
Next
Form2.MSHFlexGrid2.Row = S
Form2.MSHFlexGrid2.Col = 0
Form2.MSHFlexGrid2.Text = "序号"
Form2.MSHFlexGrid2.Row = S
Form2.MSHFlexGrid2.Col = 1
Form2.MSHFlexGrid2.Text = "右边桩号"
Form2.MSHFlexGrid2.Row = S
Form2.MSHFlexGrid2.Col = 2
Form2.MSHFlexGrid2.Text = "北坐标(X)"
Form2.MSHFlexGrid2.Row = S
Form2.MSHFlexGrid2.Col = 3
Form2.MSHFlexGrid2.Text = "东坐标(Y)"
For hh = S + 1 To Form2.MSHFlexGrid2.Rows - 1
For jj = 0 To 3
Form2.MSHFlexGrid2.Row = hh
Form2.MSHFlexGrid2.Col = jj
Form2.MSHFlexGrid1.Row = (hh - S)
Form2.MSHFlexGrid1.Col = jj
Call Read(jj, Aziuth_L, "(右)")
Next
Form2.ProgressBar1.Value = hh
Next
End Sub
Private Sub Read(Row_Put, Aziuth_put, RorL As String)
D = Val(Form2.Text3.Text)
If RorL = "(左)" Then
X_S = -1
ElseIf RorL = "(右)" Then
X_S = 1
End If
Select Case Row_Put
Case 0
Form2.MSHFlexGrid2.Text = Form2.MSHFlexGrid1.Text
Case 1
Form2.MSHFlexGrid2.Text = Form2.MSHFlexGrid1.Text & RorL
Case 2
Form2.MSHFlexGrid2.Text = Format(Form2.MSHFlexGrid1.Text + D * Cos(Aziuth_put + (X_S) * PI() / 2), "0.000")
Case 3
Form2.MSHFlexGrid2.Text = Format(Form2.MSHFlexGrid1.Text + D * Sin(Aziuth_put + (X_S) * PI() / 2), "0.000")
End Select
End Sub
'定义计算曲线综合要素的函数
Public Function Caculate_YS()
End Function
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -