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

📄 前后方交会三维坐标计算运行主窗口.frm

📁 摄影测量影象匹配
💻 FRM
📖 第 1 页 / 共 2 页
字号:
VERSION 5.00
Begin VB.Form Form7 
   BackColor       =   &H80000002&
   Caption         =   "摄影测量前后方交会处理窗体"
   ClientHeight    =   6735
   ClientLeft      =   165
   ClientTop       =   870
   ClientWidth     =   8895
   LinkTopic       =   "Form7"
   ScaleHeight     =   6735
   ScaleWidth      =   8895
   StartUpPosition =   3  '窗口缺省
   Begin VB.Frame Frame3 
      Caption         =   "处理程序信息控制面板"
      Height          =   5655
      Left            =   0
      TabIndex        =   0
      Top             =   1080
      Width           =   8895
      Begin VB.Frame frame6 
         Caption         =   "内定向"
         Height          =   2055
         Left            =   4320
         TabIndex        =   31
         Top             =   240
         Width           =   4335
         Begin VB.Frame Frame4 
            Caption         =   "选择处理相片"
            Height          =   1695
            Left            =   360
            TabIndex        =   33
            Top             =   240
            Width           =   1335
            Begin VB.OptionButton Option1 
               Caption         =   "左相片"
               Height          =   255
               Left            =   240
               TabIndex        =   35
               Top             =   480
               Width           =   975
            End
            Begin VB.OptionButton Option2 
               Caption         =   "右相片"
               Height          =   255
               Left            =   240
               TabIndex        =   34
               Top             =   1080
               Width           =   855
            End
         End
         Begin VB.CommandButton Command1 
            Caption         =   "影象坐标已经全部转换完毕"
            Height          =   735
            Left            =   2040
            TabIndex        =   32
            Top             =   720
            Width           =   2055
         End
         Begin VB.Timer Timer1 
            Interval        =   50
            Left            =   2760
            Top             =   840
         End
      End
      Begin VB.Frame Frame5 
         Caption         =   "后方交会三个角度的改正量的数值"
         Height          =   3015
         Left            =   360
         TabIndex        =   20
         Top             =   2400
         Width           =   3615
         Begin VB.CommandButton Command2 
            Caption         =   "左右相片均已经通过了后方交会计算"
            Height          =   2415
            Left            =   2640
            TabIndex        =   21
            Top             =   360
            Width           =   615
         End
         Begin VB.Label Label7 
            Caption         =   "迭代的次数"
            Height          =   375
            Left            =   240
            TabIndex        =   30
            Top             =   2520
            Width           =   1095
         End
         Begin VB.Label Label8 
            Height          =   375
            Left            =   1680
            TabIndex        =   29
            Top             =   2520
            Width           =   615
         End
         Begin VB.Label Label14 
            Height          =   375
            Left            =   1680
            TabIndex        =   28
            Top             =   2040
            Width           =   495
         End
         Begin VB.Label Label13 
            Height          =   495
            Left            =   1680
            TabIndex        =   27
            Top             =   1440
            Width           =   495
         End
         Begin VB.Label Label12 
            Height          =   495
            Left            =   1680
            TabIndex        =   26
            Top             =   960
            Width           =   615
         End
         Begin VB.Label Label11 
            Caption         =   "$K"
            Height          =   375
            Left            =   360
            TabIndex        =   25
            Top             =   2040
            Width           =   855
         End
         Begin VB.Label Label10 
            Caption         =   "$W"
            Height          =   375
            Left            =   360
            TabIndex        =   24
            Top             =   1440
            Width           =   735
         End
         Begin VB.Label Label9 
            Caption         =   "$Q"
            Height          =   375
            Left            =   360
            TabIndex        =   23
            Top             =   960
            Width           =   615
         End
         Begin VB.Label Label6 
            Caption         =   "迭代计算中最后的三个角元素的改正数"
            Height          =   615
            Left            =   360
            TabIndex        =   22
            Top             =   240
            Width           =   1575
         End
      End
      Begin VB.Frame Frame2 
         Caption         =   "关于精度估算的最后结果"
         Height          =   3015
         Left            =   4320
         TabIndex        =   7
         Top             =   2400
         Width           =   4335
         Begin VB.TextBox Text6 
            Height          =   495
            Left            =   2040
            TabIndex        =   11
            Top             =   2160
            Width           =   1815
         End
         Begin VB.TextBox Text5 
            Height          =   495
            Left            =   2040
            TabIndex        =   10
            Top             =   1680
            Width           =   1815
         End
         Begin VB.TextBox Text4 
            Height          =   495
            Left            =   2040
            TabIndex        =   9
            Top             =   960
            Width           =   1815
         End
         Begin VB.TextBox Text3 
            Height          =   495
            Left            =   2040
            TabIndex        =   8
            Top             =   480
            Width           =   1815
         End
         Begin VB.Label Label17 
            Caption         =   "总的平面精度"
            Height          =   375
            Left            =   720
            TabIndex        =   19
            Top             =   2280
            Width           =   1215
         End
         Begin VB.Label Label5 
            Caption         =   "   Z的精度"
            Height          =   375
            Left            =   240
            TabIndex        =   18
            Top             =   1800
            Width           =   1455
         End
         Begin VB.Label Label4 
            Caption         =   "   Y的精度"
            Height          =   375
            Left            =   240
            TabIndex        =   17
            Top             =   1080
            Width           =   1455
         End
         Begin VB.Label Label3 
            Caption         =   "   X的精度"
            Height          =   375
            Left            =   240
            TabIndex        =   16
            Top             =   600
            Width           =   1335
         End
         Begin VB.Label Label18 
            Caption         =   "m"
            BeginProperty Font 
               Name            =   "宋体"
               Size            =   14.25
               Charset         =   134
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   495
            Left            =   3960
            TabIndex        =   15
            Top             =   480
            Width           =   255
         End
         Begin VB.Label Label19 
            Caption         =   "m"
            BeginProperty Font 
               Name            =   "宋体"
               Size            =   14.25
               Charset         =   134
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   375
            Left            =   3960
            TabIndex        =   14
            Top             =   1080
            Width           =   255
         End
         Begin VB.Label Label20 
            Caption         =   "m"
            BeginProperty Font 
               Name            =   "宋体"
               Size            =   14.25
               Charset         =   134
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   495
            Left            =   3960
            TabIndex        =   13
            Top             =   1680
            Width           =   255
         End
         Begin VB.Label Label21 
            Caption         =   "m"
            BeginProperty Font 
               Name            =   "宋体"
               Size            =   14.25
               Charset         =   134
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   375
            Left            =   3960
            TabIndex        =   12
            Top             =   2280
            Width           =   255
         End
      End
      Begin VB.Frame Frame1 
         Caption         =   "关于控制点的信息"
         Height          =   2055
         Left            =   360
         TabIndex        =   1
         Top             =   240
         Width           =   3615
         Begin VB.TextBox Text2 
            Height          =   495
            Left            =   1920
            TabIndex        =   3
            Text            =   "0.15324"
            Top             =   1320
            Width           =   1095
         End
         Begin VB.TextBox Text1 
            Height          =   495
            Left            =   1920
            TabIndex        =   2
            Text            =   "4"
            Top             =   600
            Width           =   1335
         End
         Begin VB.Label Label2 
            Caption         =   "相片的焦距"
            Height          =   375
            Left            =   240
            TabIndex        =   6
            Top             =   1440
            Width           =   1215
         End
         Begin VB.Label Label1 
            Caption         =   "求算外方位元素的地面控制点的个数"
            Height          =   615
            Left            =   120
            TabIndex        =   5
            Top             =   600
            Width           =   1575
         End
         Begin VB.Label Label15 
            Caption         =   "m"
            BeginProperty Font 
               Name            =   "宋体"
               Size            =   12
               Charset         =   134
               Weight          =   400
               Underline       =   0   'False
               Italic          =   0   'False
               Strikethrough   =   0   'False
            EndProperty
            Height          =   495
            Left            =   3120
            TabIndex        =   4
            Top             =   1440
            Width           =   255
         End
      End
   End
   Begin VB.Label Label16 
      Caption         =   "摄影测量内定向、前后方交会、精度估算应用程序窗体"
      BeginProperty Font 
         Name            =   "宋体"
         Size            =   21.75
         Charset         =   134
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      Height          =   495
      Left            =   0
      TabIndex        =   36
      Top             =   240
      Width           =   10935
   End
   Begin VB.Label Label22 
      Height          =   735
      Left            =   0
      TabIndex        =   37
      Top             =   120
      Width           =   8895
   End
   Begin VB.Menu interdir 
      Caption         =   "内定向"
      Begin VB.Menu caculate6 
         Caption         =   "求解定向六个元素"
      End
      Begin VB.Menu convert 
         Caption         =   "转化影象坐标为框标"
      End
   End
   Begin VB.Menu caculate 
      Caption         =   "运算"
      Begin VB.Menu outfactor 
         Caption         =   "求解外方位元素"
      End
      Begin VB.Menu forwardintersect 
         Caption         =   "前方交会"
      End
      Begin VB.Menu acurracy 
         Caption         =   "结算精度"
      End
   End
   Begin VB.Menu clearend 
      Caption         =   "清除和结束"
      Begin VB.Menu clear 
         Caption         =   "清除文本框"
      End
      Begin VB.Menu end 
         Caption         =   "结束"
      End
   End
   Begin VB.Menu return 
      Caption         =   "切换到主界面"
      Begin VB.Menu returnmain 
         Caption         =   "切换到应用程序主界面"
      End
   End
End
Attribute VB_Name = "Form7"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Option Base 1

Private Sub acurracy_Click()
Dim i As Integer
Dim n As Integer
Dim X As Double, Y As Double, z As Double
Dim x1() As Double, y1() As Double, z1() As Double
Dim x2() As Double, y2() As Double, z2() As Double
Dim ch As String
Dim id As Integer

n = InputBox("输入求解精度的控制点的个数")
ReDim x1(n)
ReDim y1(n)
ReDim z1(n)
ReDim x2(n)
ReDim y2(n)
ReDim z2(n)

Open "已知的控制点的坐标.txt" For Input As #1
Line Input #1, ch
For i = 1 To n
Input #1, x1(i)
Input #1, y1(i)
Input #1, z1(i)
Next i
Close #1

Open "结算的点的控制坐标.txt" For Input As #1
Line Input #1, ch
For i = 1 To n
Input #1, id
Input #1, x2(i)
Input #1, y2(i)
Input #1, z2(i)
Next i
Close #1

For i = 1 To n
X = X + (x1(i) - x2(i)) ^ 2
Y = Y + (y1(i) - y2(i)) ^ 2
z = z + (z1(i) - z2(i)) ^ 2
Next i
Text3.Text = (X / n) ^ (1 / 2)
Text4.Text = (Y / n) ^ (1 / 2)
Text5.Text = (z / n) ^ (1 / 2)
Text6.Text = ((X / n) + (Y / n)) ^ (1 / 2)
End Sub



Private Sub caculate6_Click()

Dim n As Integer, sc(6, 1) As Double
Dim X() As Double, Y() As Double, x1() As Double, y1() As Double
Dim a0 As Double, a1 As Double, a2 As Double
Dim b0 As Double, b1 As Double, b2 As Double
Dim a() As Double, l() As Double, i As Integer, d As Integer
Dim mtxAt() As Double, mtxC1(6, 6) As Double, chx() As Double
Dim gz() As Double, j As Integer
d = 1
n = InputBox("输入进行仿射变换参数求解的点的个数")
ReDim a(2 * n, 6)
ReDim l(2 * n, 1)
ReDim x1(n)
ReDim y1(n)
ReDim X(n)
ReDim Y(n)
Open "仿射.txt" For Input As #1
For i = 1 To n
Input #1, X(i)
Input #1, Y(i)
Input #1, x1(i)
Input #1, y1(i)
Next i
Close #1

For i = 1 To n
a(d, 1) = 1
a(d, 2) = x1(i)
a(d, 3) = y1(i)
a(d, 4) = 0
a(d, 5) = 0
a(d, 6) = 0
a(d + 1, 1) = 0
a(d + 1, 2) = 0
a(d + 1, 3) = 0
a(d + 1, 4) = 1
a(d + 1, 5) = x1(i)
a(d + 1, 6) = y1(i)
d = d + 2
Next i
d = 1
For i = 1 To n
l(d, 1) = X(i)
d = d + 1
l(d, 1) = Y(i)
d = d + 1
Next i

ReDim mtxAt(6, 2 * n)
Call MTrans(2 * n, 6, a(), mtxAt()) '求转置距阵
Call MMul(6, 2 * n, 6, mtxAt(), a(), mtxC1())
Call MRinv(6, mtxC1())

ReDim chx(6, 2 * n)
Call MMul(6, 6, 2 * n, mtxC1(), mtxAt(), chx())

ReDim gz(6, 1)
Call MMul(6, 2 * n, 1, chx(), l(), gz())

Open "变换参数.txt" For Output As #1
Print #1, gz(1, 1)
Print #1, gz(2, 1)
Print #1, gz(3, 1)
Print #1, gz(4, 1)
Print #1, gz(5, 1)
Print #1, gz(6, 1)
Close #1

MsgBox ("已经转换完毕")
Frame3.Enabled = True
Frame1.Enabled = False
Frame2.Enabled = False
Frame5.Enabled = False
End Sub
Private Sub clear_Click()
Text1.Text = ""
Text2.Text = ""

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -