当前位置:文档之家› 摄影测量立体相对的前方交会VB程序代码

摄影测量立体相对的前方交会VB程序代码

Private Sub Command1_Click()Dim zx1 As Single, zy1 As Single, zx2 As Single, zy2 As Single, zx3 As Single, zy3 As Single, zx4 As Single, zy4 As Single, zx5 As Single, zy5 As Single, zx6 As Single, zy6 As SingleDim yx1 As Single, yy1 As Single, yx2 As Single, yy2 As Single, yx3 As Single, yy3 As Single, yx4 As Single, yy4 As Single, yx5 As Single, yy5 As Single, yx6 As Single, yy6 As SingleDim f As SingleDim jd11 As Single, jd12 As Single, jd13 As Single, jd21 As Single, jd22 As Single, jd23 As Single, jd1 As Single, jd2 As SingleDim a1(1 To 3, 1 To 3) As SingleDim a2(1 To 3, 1 To 3) As SingleDim fz1(1 To 6, 1 To 3) As SingleDim fz2(1 To 6, 1 To 3) As SingleDim aa(1 To 6, 1 To 5) As SingleDim p As StringDim bx(1 To 6, 1 To 1) As SingleDim n1(1 To 6, 1 To 1) As Single, n2(1 To 6, 1 To 1) As SingleDim aat(1 To 5, 1 To 6) As SingleDim aataa() As DoubleReDim aataa(1 To 5, 1 To 5)Dim l(1 To 6, 1 To 1) As SingleDim aatl(1 To 5, 1 To 1) As SingleDim atal(1 To 5, 1 To 1) As SingleDim jd11z As Single, jd12z As Single, jd13z As Single, jd21z As Single, jd22z As Single, jd23z As SingleDim jd1z As Single, jd2z As Singlezx1 = Val(Text1(0).Text): zy1 = Val(Text1(1).Text): yx1 = Val(Text1(2).Text): yy1 = Val(Text1(3).Text)zx2 = Val(Text1(4).Text): zy2 = Val(Text1(5).Text): yx2 = Val(Text1(6).Text): yy2 = Val(Text1(7).Text)zx3 = Val(Text1(8).Text): zy3 = Val(Text1(9).Text): yx3 = Val(Text1(10).Text): yy3 = Val(Text1(11).Text)zx4 = Val(Text1(12).Text): zy4 = Val(Text1(13).Text): yx4 = Val(Text1(14).Text): yy4 = Val(Text1(15).Text)zx5 = Val(Text1(16).Text): zy5 = Val(Text1(17).Text): yx5 = Val(Text1(18).Text): yy5 = Val(Text1(19).Text)zx6 = Val(Text1(20).Text): zy6 = Val(Text1(21).Text): yx6 = Val(Text1(22).Text): yy6 = Val(Text1(23).Text)jd11 = Val(Text2(0).Text): jd12 = Val(Text2(1).Text): jd13 = Val(Text2(2).Text)jd21 = Val(Text2(3).Text): jd22 = Val(Text2(4).Text): jd23 = Val(Text2(5).Text)jd1 = Val(Text2(6).Text): jd2 = Val(Text2(7).Text)f = Val(Text3.Text)Do While jd11z < 0.3 * 0.00001 And jd12z < 0.3 * 0.00001 And jd13z < 0.3 * 0.00001 And jd21z < 0.3 * 0.00001 And jd22z < 0.3 * 0.00001 And jd23z < 0.3 * 0.00001 And jd1z < 0.3 * 0.00001 And jd2z < 0.3 * 0.00001jd11z = jd11z + jd11: jd12z = jd12z + jd12: jd13z = jd13z + jd13jd21z = jd21z + jd21: jd22z = jd22z + jd22: jd23z = jd23z + jd23jd1z = jd1z + jd1: jd2z = jd2z + jd2jd11 = jd11z: jd12 = jd12z: jd13 = jd13z: jd21 = jd21z: jd22 = jd22z: jd23 = jd23z: jd1 = jd1z: jd2 = jd2zFor i = 1 To 3For j = 1 To 3a1(1, 1) = Cos(jd11) * Cos(jd13) - Sin(jd11) * Sin(jd12) * Sin(jd13): a1(1, 2) = -Cos(jd11) * Sin(jd13) - Sin(jd11) * Sin(jd12) * Cos(jd13): a1(1, 3) = -Sin(jd11) * Cos(jd12)a1(2, 1) = Cos(jd12) * Sin(jd13): a1(2, 2) = Cos(jd12) * Cos(jd13): a1(2, 3) = -Sin(jd12)a1(3, 1) = Sin(jd11) * Cos(jd13) + Cos(jd11) * Sin(jd12) * Sin(jd13): a1(3, 2) = -Sin(jd11) * Sin(jd13) + Cos(jd11) * Sin(jd12) * Cos(jd13): a1(3, 3) = Cos(jd11) * Cos(jd12)NextNextFor i = 1 To 3p = ""For j = 1 To 3a2(1, 1) = Cos(jd21) * Cn(jd22) * Sin(jd23): a2(1, 2) = -Cos(jd21) * Sin(jd23) - Sin(jd21) * Sin(jd22) * Cos(jd2= Cos(jd22) * Cos(jd23): a2(2, 3) = -Sin(jd22)a2(os(jd21) * Sin(jd22) * Cos(jd23): a2(3, 3) = Cos(jd21) * Cos(jd22)NextNextFor i = 1 To 6For j = 1 To 3fz1(1, 1) = a1(1, 1) * zx1 + a1(1, 2) * zy1 + a1(1, 3) * -f: fz1(1, 2) = a1(2, 1) * zx1 + a1(2, 2) * zy1 + a1(2, 3) * -f: fz1(1, 3) = a1(3, 1) * zx1 + a1(3, 2) * zy1 + a1(3, 3) * -ffz1(2, 1) = a1(1, 1) * zx2 + a1(1, 2) * zy2 + a1(1, 3) * -f: fz1(2, 2) = a1(2, 1) * zx2 + a1(2, 2) * zy2 + a1(2, 3) * -f: fz1(2, 3) = a1(3, 1) * zx2 + a1(3, 2) * zy2 + a1(3, 3) * -ffz1(3, 1) = a1(1, 1) * zx3 +3 + a1(1, 3) * -f: fz1(3, 2) = a1(2, 1) * zx3 + a1(2, 2) * zy3 + a1(2, 3) * -f: fz1(3, 3) =a1(1, 3) * -f: fz1(4, 2) = a1(2, 1) * zx4 + a1(2, 2) * zy4 + a1(2, 3) * -f: fz1(4, 3) = a1(3, 1) * zx4 + a1(3, 2) * zy4 + a1(3, 3) * -ffz1(5, 1) = a1(1, 1) * zx5 + a1(1, 2) * zy5 + a1(1, 3) * -f: fz1(5, 2) = a1(2, 1) * zx5 +a1(2, 2) * zy5 + a1(2, 3) * -f: fz1(5, 3) = a1(3, 1) * zx5 + a1(3, 2) * zy5 + a1(3, 3) * -ffz1(6, 1) = a1(1, 1) * zx6 + a1(1, 2) * zy6 + a1(1, 3) * -f: fz1(6, 2) = a1(2, 1) * zx6 + a1(2, 2) * zy6 + a1(2, 3) * -f: fz1(6, 3) = a1(3, 1) * zx6 + a1(3, 2) * zy6 + a1(3, 3) * -fNextNextFor i = 1 To 6For j = 1 To 3fz2(1, 1) = a2(1, 1) * yx1 + a2(1, 2) * yy1 + a2(1, 3) * -f: fz2(1, 2) = a2(2, 1) * yx1 + a2(2, 2) * yy1 + a2(2, 3) * -f: fz2(1, 3) = a2(3, 1) * yx1 + a2(3, 2) * yy1 + a2(3, 3) * -ffz2(2, 1) = a2(1, 1) * yx2 + a2(1, 2) * yy2 + a2(1, 3) * -f: fz2(2, 2) = a2(2, 1) * yx2 + a2(2, 2) * yy2 + a2(2, 3) * -f: fz2(2, 3) = a2(3, 1) * yx2 + a2(3, 2) * yy2 + a2(3, 3) * -ffz2(3, 1) = a2(1, 1) * yx3 2(3, 1) * yx3 + a2(3, 2) * yy3 + a2(3, 3) * -ffz2(4, 1) = a2(1, 1) * yx4 + a2(1, 2) * yy4 + a2(1, 3) * -f: fz2(4, 2) = a2(2, 1) * yx4 + a2(2, 2) * yy4 + a2(2, 3) * -f: fz2(4, 3) = a2(3, 1) * yx4 + a2(3, 2) * yy4 + a2(3, 3) * -ffz2(5, 1) = a2(1, 1) * yx5 + a2(1, 2) * yy5 + a2(1, 3) * -f: fz2(5, 2) = a2(2, 1) * yx5 + a2(2, 2) * yy5 + a2(2, 3) * -f: fz2(5, 3) = a2(3, 1) * yx5 + a2(3, 2) * yy5 + a2(3, 3) * -ffz2(6, 1) = a2(1, 1) * yx6 +2(1, 3) * -f: fz2(6, 2) = a2(2, 1) * yx6 + a2(2, 2) * yy6 + a2(2, 3) * -f: fz2(6, 3) = a2(3, 1) * yx6 + a2(3, 2) * yy6 + a2(3, 3) * -fNextNextbx(1, 1) = zx1 - yx1: bx(2, 1) = zx2 - yx2: bx(3, 1) = zx3 - yx3: bx(4, 1) = zx4 - yx4: bx(5, 1) = zx5 - yx5: bx(6, 1) = zx6 - yx6For i = 1 To 6For j = 1 To 1n1(1, 1) = (bx(1, 1) * fz2(1, 3) - bx(1, 1) * jd2 * fz2(1, 1)) / (fz1(1, 1) * fz2(1, 3) - fz2(1, 1) * fz1(1, 3))n1(2, 1) = (bx(2, 1) * fz2(2, 3) - bx(2, 1) * jd2 * fz2(2, 1)) / (fz1(2, 1) * fz2(2, 3) - fz2(2, 1) * fz1(2, 3))n1(3, 1) = (bx(3, 1) * fz2(3, 3) - bx(3, 1) * jd2 * fz2(3, 1)) / (fz1(3, 1) * fz2(3, 3) - fz2(3, 1) * fz1(3, 3))n1(4, 1) = (bx(4, 1) * fz2(4, 3) - bx(4, 1) * jd2 * fz2(4, 1)) / (fz1(4, 1) * fz2(4, 3) - fz2(4, 1) * fz1(4, 3))n1(5, 1) = (bx(5, 1) * fz2(5 1) * jd2 * fz2(5, 1)) / (fz1(5, 1) * fz2(5, 3) - fz2(5, 1) * fz1(5, 3))n1(6, 1) = (bx(6, 1) * fz2(6, 3) - bx(6, 1) * jd2 * fz2(6, 1)) / (fz1(6, 1) * fz2(6, 3) - fz2(6, 1) * fz1(6, 3))NextNextFor i = 1 To 6For j = 1 To 1n2(1, 1) = (bx(1, 1) * fz1(1, 3) - bx(1, 1) * jd2 * fz1(1, 1)) / (fz1(1, 1) * fz2(1, 3) - fz2(1, 1) * fz1(1, 3))n2(2, 1) = (bx(2, 1) * fz1(2, 3) - bx(2, 1) * jd2 * fz1(2, 1)) / (fz1(2, 1) * fz2(2, 3) - fz2(2, 1) * fz1(2, 3))n2(3, 1) = (bxn2(5, 1) = (bx(5, 1) * fz1(5, 3) - bx(5, 1) * jd2 * fz1(5, 1)) / (fz1(5, 1) * fz2(5, 3) - fz2(5, 1) * fz1(5, 3))n2(6, 1) = (bx(6, 1) * fz1(6, 3) - bx(6, 1) * jd2 * fz1(6, 1)) / (fz1(6, 1) * fz2(6, 3) - fz2(6, 1) * fz1(6, 3))NextNextFor i = 1 To 6For j = 1 To 5aa(1, 1) = bx(1, 1): aa(1, 2) = -(fz2(1, 2) / fz2(1, 3)) * bx(1, 1): aa(1, 3) = -((fz2(1, 1) * fz2(1, 2)) / fz2(1, 3)) * n2(1, 1): aa(1, 4) = -(fz2(1, 3) + (fz2(1, 2) * fz2(1, 2)) / fz2(1, 3)) */ fz2(2, 3)) * bx(2, 1): aa(2, 3) = -((fz2(2, 1) * fz2(2, 2)) / fz2(2, 3)) * n2(2, 1): aa(2, 4) = -(fz2(2, 3) + (fz2(2, 2) * fz2(2, 2)) / fz2(2, 3)) * n2(2, 1): aa(2, 5) = fz2(2, 1) * n2(2, 1)aa(3, 1) = bx(3, 1): aa(3, 2) = -(fz2(3, 2) / fz2(3, 3)) * bx(3, 1): aa(3, 3) = -((fz2(3, 1) * fz2(3, 2)) / fz2(3, 3)) * n2(3, 1): aa(3, 4) = -(fz2(3, 3) + (fz2(3, 2) * fz2(3, 2)) / fz2(3, 3))4, 2) / fz2(4, 3)) * bx(4, 1): aa(4, 3) = -((fz2(4, 1) * fz2(4, 2)) / fz2(4, 3)) * n2(4, 1): aa(4, 4) = -(fz2(4, 3) + (fz2(4, 2) * fz2(4, 2)) /-(fz2(5, 2) / fz2(5, 3)) * bx(5, 1): aa(5, 3) = -((fz2(5, 1) * fz2(5, 2)) / fz2(5, 3)) * n2(5, 1): aa(5, 4) = -(fz2(5, 3) + (fz2(5, 2) * fz2(5, 2)) / fz2(5, 3)) * n2(5, 1): aa(5, 5) = fz2(5, 1) * n2(5, 1)aa(6, 1) = bx(6, 1): aa(6, 2) = -(fz2(6, 2) / fz2(6, 3)) * bx(6, 1): aa(6, 3) = -((fz2(6, 1) * fz2(6, 2)) / fz2(6, 3)) * n2(6, 1): aa(6, 4) = -(fz2(6, 3) + (fz2(6, 2) * fz2(6, 2)) / fz2(6, 3)) * n2(6, 1): aa(6, 5) = fz2(6, 1) * n2(6, 1)NextNextFor i = 1 To 5For j = 1 To 6aat(i, j) = aa(j, i)NextNextFor i = 1 To 5For j = 1 To 5For t = 1 To 6aataa(i, j) = aataa(i, j) + aat(i, t) * aa(t, j)NextNextFor o = 1 To 5For m = 1 To 1NextNextNextFor i = 1 To 6For j = 1 To 1l(1, 1) = n1(1, 1) * fz1(1, 2) - n2(1, 1) * fz2(1, 2) - bx(1, 1) * jd1 l(2, 1) = n1(2, 1) * fz1(2, 2) - n2(2, 1) * fz2(2, 2) - bx(2, 1) * jd1 l(3, 1) = n1(3, 1) * fz1(3, 2) - n2(3, 1) * fz2(3, 2) - bx(3, 1) * jd1 l(4, 1) = n1(4, 1) * fz1(4, 2) - n2(4, 1) * fz2(4, 2) - bx(4, 1) * jd1 l(5, 1) = n1(5, 1) * fz1(5, 2) - n2(5, 1) * fz2(5, 2) - bx(5, 1) * jd1 l(6, 1) = n1(6, 1) * fz1(6, 2) - n2(6, 1) * fz2(6, 2) - bx(6, 1) * jd1 NextNextFor i = 1 To 5For j = 1 To 1For t = 1 To 6aatl(i, j) = aatl(i, j) + aat(i, t) * l(t, j)NextNextFor o = 1 To 5For m = 1 To 1NextNextNextFor i = 1 To 5For j = 1 To 1For t = 1 To 5atal(i, j) = atal(i, j) + aataa(i, t) * aatl(t, j)NextNextFor o = 1 To 5For m = 1 To 1NextNextNextLoopEnd SubPrivate Function MRinv(n As Integer, mtxA() As Double) As Boolean ReDim nIs(n) As Integer, nJs(n) As IntegerDim i As Integer, j As Integer, k As IntegerDim D As Double, p As DoubleFor k = 1 To nD = 0#For i = k To nFor j = k To np = Abs(mtxA(i, j))If (p > D) ThenD = pnIs(k) = inJs(k) = jEnd IfNext jNext iIf (D + 1# = 1#) ThenMRinv = FalseExit FunctionEnd IfIf (nIs(k) <> k) ThenFor j = 1 To np = mtxA(k, j)mtxA(k, j) = mtxA(nIs(k), j)mtxA(nIs(k), j) = pNext jEnd IfIf (nJs(k) <> k) ThenFor i = 1 To np = mtxA(i, k)mtxA(i, k) = mtxA(i, nJs(k))mtxA(i, nJs(k)) = pNext iEnd IfmtxA(k, k) = 1# / mtxA(k, k)For j = 1 To nIf (j <> k) Then mtxA(k, j) = mtxA(k, j) * mtxA(k, k)Next jFor i = 1 To nIf (i <> k) ThenFor j = 1 To nIf (j <> k) Then mtxA(i, j) = mtxA(i, j) - mtxA(i, k) * mtxA(k, j)Next jEnd IfNext iFor i = 1 To nIf (i <> k) Then mtxA(i, k) = -mtxA(i, k) * mtxA(k, k)Next iNext kFor k = n To 1 Step -1If (nJs(k) <> k) ThenFor j = 1 To np = mtxA(k, j)mtxA(k, j) = mtxA(nJs(k), j)mtxA(nJs(k), j) = pNext jEnd IfIf (nIs(k) <> k) ThenFor i = 1 To np = mtxA(i, k)mtxA(i, k) = mtxA(i, nIs(k))mtxA(i, nIs(k)) = pNext iEnd IfNext kMRinv = TrueEnd Function。

相关主题