⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 coordcaculate.bas

📁 坐标转换程序
💻 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 + -