📄 yuan.frm
字号:
Top = 1507
Width = 195
End
Begin VB.Label Label12
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "°"
Height = 180
Left = 2280
TabIndex = 16
Top = 1507
Width = 195
End
Begin VB.Label Label11
Height = 4215
Left = 480
TabIndex = 13
Top = 4080
Width = 7095
End
Begin VB.Label Label6
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "+"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 2460
TabIndex = 9
Top = 2640
Width = 135
End
Begin VB.Label Label5
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "输入交点里程:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 240
TabIndex = 7
Top = 2640
Width = 1485
End
Begin VB.Label Label4
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "输入c:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 240
TabIndex = 5
Top = 2040
Width = 645
End
Begin VB.Label Label3
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "输入偏角:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 240
TabIndex = 3
Top = 1440
Width = 1065
End
Begin VB.Label Label2
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "输入半径:"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 210
Left = 240
TabIndex = 1
Top = 840
Width = 1065
End
Begin VB.Label Label1
Alignment = 2 'Center
AutoSize = -1 'True
Caption = "单一圆曲线要素计算"
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 240
Left = 1050
TabIndex = 0
Top = 240
Width = 2160
End
End
Attribute VB_Name = "yuan"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Public R As Single
Public a As Single
Public c As Single
Public M0 As Single
Public N0 As Single
Public i As Single
Public j As Single
Public T As Single
Public s As Single
Public k As Single
Public I0 As Double
Public Izy As Double
Public Iqz As Double
Public Iyz As Double
Const PI As Single = 3.1415926
Private Sub Command1_Click()
R = Val(Text1.Text)
a = Val(Text2.Text)
T = Val(Text6.Text)
s = Val(Text7.Text)
a = a + T / 60 + s / 3600
a = a * PI / 180
T = R * Tan(a / 2)
L = a * R
E = R * (1 / Cos(a / 2) - 1)
q = 2 * T - L
Label7.Caption = "T=" & Format(T, "0.000")
Label8.Caption = "L=" & Format(L, "0.000")
Label9.Caption = "E=" & Format(E, "0.000")
Label10.Caption = "q=" & Format(q, "0.000")
End Sub
'碎部点计算
Private Sub Command3_Click()
Dim j() As Double
Dim a() As Double
ReDim Preserve j(0)
ReDim Preserve a(0)
'做半部分
j(0) = (Int(Izy / c) + 1) * c
a(0) = (j(0) - Izy) * 180 / (2 * R * PI)
k = a(0)
deg = Int(k)
min = Int((k - deg) * 60)
sec = (k - deg - min / 60) * 3600
Label11.Caption = Label11.Caption & vbCrLf & Format(j(0), "0.00") & " " & deg & "°" & min & "'" & Format(sec, "0.0") & """"
For i = 1 To Int((Iqz - j(0)) / c)
ReDim Preserve j(i)
ReDim Preserve a(i)
j(i) = j(i - 1) + c
a(i) = a(i - 1) + (j(i) - j(i - 1)) * 180 / (2 * R * PI)
k = a(i)
deg = Int(k)
min = Int((k - deg) * 60)
sec = (k - deg - min / 60) * 3600
Label11.Caption = Label11.Caption & vbCrLf & Format(j(i), "0.00") & " " & deg & "°" & min & "'" & Format(sec, "0.0") & """"
Next i
p = Iqz - j(UBound(j))
p = a(UBound(a)) + p * 180 / (2 * R * PI)
k = p
deg = Int(k)
min = Int((k - deg) * 60)
sec = (k - deg - min / 60) * 3600
Label11.Caption = Label11.Caption & vbCrLf & Format(Iqz, "0.00") & " " & deg & "°" & min & "'" & Format(sec, "0.0") & """"
'右半部分
j(0) = Int(Iyz / c) * c
a(0) = (j(0) - Iyz) * 180 / (2 * R * PI)
k = 360 + a(0)
deg = Int(k)
min = Int((k - deg) * 60)
sec = (k - deg - min / 60) * 3600
Label11.Caption = Label11.Caption & vbCrLf & Format(j(0), "0.00") & " " & deg & "°" & min & "'" & Format(sec, "0.0") & """"
For i = 1 To Int((j(0) - Iqz) / c)
ReDim Preserve j(i)
ReDim Preserve a(i)
j(i) = j(i - 1) - c
a(i) = a(i - 1) + (j(i) - j(i - 1)) * 180 / (2 * R * PI)
k = 360 + a(i)
deg = Int(k)
min = Int((k - deg) * 60)
sec = (k - deg - min / 60) * 3600
Label11.Caption = Label11.Caption & vbCrLf & Format(j(i), "0.00") & " " & deg & "°" & min & "'" & Format(sec, "0.0") & """"
Next i
p = Iqz - j(UBound(j))
p = a(UBound(a)) + p * 180 / (2 * R * PI)
k = 360 + p
deg = Int(k)
min = Int((k - deg) * 60)
sec = (k - deg - min / 60) * 3600
Label11.Caption = Label11.Caption & vbCrLf & Format(Iqz, "0.00") & " " & deg & "°" & min & "'" & Format(sec, "0.0") & """"
End Sub
Private Sub Command2_Click()
c = Val(Text3.Text)
M0 = Val(Text4.Text)
N0 = Val(Text5.Text)
I0 = M0 * 1000 + N0
Izy = I0 - T
Iqz = Izy + L / 2
Iyz = Izy + L
p = I0 + T - q
Label11.Caption = "p=" & Format(p, "0.000") & vbCrLf & "ZY: DK" & Int(Izy / 1000) & "+" & Format((Izy - Int(Izy / 1000) * 1000), "0.000") & vbCrLf & "QZ: DK" & Int(Iqz / 1000) & "+" & Format((Iqz - Int(Iqz / 1000) * 1000), "0.000") & vbCrLf & "YZ: DK" & Int(Iyz / 1000) & "+" & Format((Iyz - Int(Iyz / 1000) * 1000), "0.000")
End Sub
Private Sub Command4_Click()
Text1.Text = 0
Text2.Text = 0
Text3.Text = 0
Text4.Text = 0
Text5.Text = 0
Text6.Text = 0
Text7.Text = 0
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -