【正文】
e2 = BJe2 b = BJb e12 = BJe12 X = Val() Y = Val() Z = Val() q = Atn((Z * a) / (Sqr(X ^ 2 + Y ^ 2) * b)) If X 0 Then Lr = Atn(Y / X) ElseIf Y 0 Then Lr = Atn(Y / X) + PI Else Lr = Atn(Y / X) PI End If Br = Atn((Z + e12 * b * (Sin(q)) ^ 3) / (Sqr(X ^ 2 + Y ^ 2) e2 * a * (Cos(q)) ^ 3)) N = a / Sqr(1 e2 * (Sin(Br)) ^ 2) H = Sqr(X ^ 2 + Y ^ 2) / Cos(Br) N Ba = Txt(Br) La = Txt(Lr) = Format(Ba, ) = Format(La, ) = Format(H, ) End Sub Private Sub Command3_Click() Dim a, e2, N, Br, Lr, H, X, Y, Z As Double a = XAa e2 = XAe2 H = Val() Br = Rad() Lr = Rad() N = a / Sqr(1 e2 * (Sin(Br)) ^ 2) X = (N + H) * Cos(Br) * Cos(Lr) Y = (N + H) * Cos(Br) * Sin(Lr) Z = (N * (1 e2) + H) * Sin(Br) = Format(X, ) = Format(Y, ) = Format(Z, ) End Sub Private Sub Command4_Click() Dim a, e2, e12, b, q, N, Br, Ba, La, Lr, H, X, Y, Z As Double a = XAa e2 = XAe2 b = XAb e12 = XAe12 X = Val() Y = Val() Z = Val() q = Atn((Z * a) / (Sqr(X ^ 2 + Y ^ 2) * b)) If X 0 Then Lr = Atn(Y / X) ElseIf Y 0 Then Lr = Atn(Y / X) + PI Else Lr = Atn(Y / X) PI End If Br = Atn((Z + e12 * b * (Sin(q)) ^ 3) / (Sqr(X ^ 2 + Y ^ 2) e2 * a * (Cos(q)) ^ 3)) N = a / Sqr(1 e2 * (Sin(Br)) ^ 2) H = Sqr(X ^ 2 + Y ^ 2) / Cos(Br) N Ba = Txt(Br) La = Txt(Lr) = Format(Ba, ) = Format(La, ) = Format(H, ) End Sub Private Sub Command5_Click() Dim a, e2, N, Br, Lr, H, X, Y, Z As Double a = WGSa e2 = WGSe2 H = Val() Br = Rad() Lr = Rad() N = a / Sqr(1 e2 * (Sin(Br)) ^ 2) X = (N + H) * Cos(Br) * Cos(Lr) Y = (N + H) * Cos(Br) * Sin(Lr) Z = (N * (1 e2) + H) * Sin(Br) = Format(X, ) = Format(Y, ) = Format(Z, ) End Sub Private Sub Command6_Click() Dim a, e2, e12, b, q, N, Br, Ba, La, Lr, H, X, Y, Z As Double a = WGSa e2 = WGSe2 b = WGSb e12 = WGSe12 X = Val() Y = Val() Z = Val() q = Atn((Z * a) / (Sqr(X ^ 2 + Y ^ 2) * b)) If X 0 Then Lr = Atn(Y / X) ElseIf Y 0 Then Lr = Atn(Y / X) + PI Else Lr = Atn(Y / X) PI End If Br = Atn((Z + e12 * b * (Sin(q)) ^ 3) / (Sqr(X ^ 2 + Y ^ 2) e2 * a * (Cos(q)) ^ 3)) N = a / Sqr(1 e2 * (Sin(Br)) ^ 2) H = Sqr(X ^ 2 + Y ^ 2) / Cos(Br) N Ba = Txt(Br) La = Txt(Lr) = Format(Ba, ) = Format(La, ) = Format(H, ) End Sub Private Sub Command7_Click() = = = = = = End Sub Private Sub Command8_Click() End End Sub Private Sub Form_Load() PI = XAa = 6378140: XAb = : XAc = : XAe2 = : XAe12 = BJa = 6378245: BJb = : BJc = : BJe2 = : BJe12 = WGSa = 6378137: WGSb = : WGSc = : WGSe2 = : WGSe12 = End Sub Function Rad(Txt As String) As Double s = Val(Txt) du = Fix(s) fe = Fix((s du) * 100) mi = Round((s du fe * ) * 10000, 4) Rad = (du + fe / 60 + mi / 3600) * PI / 180 End Function Function Txt(ra) As Double d = ra * 180 / PI du = Fix(d) fe = Fix((d du) * 60) mi = Round(((d du) * 60 fe) * 60) Txt = du + fe * + mi * End Function三維坐標(biāo)轉(zhuǎn)換程序設(shè)計(jì)代碼Private Sub Command1_Click() Dim k, Ex, Ey, Ez, dx, dy, dz Dim x, z, y, Yy, Xx, Zz k = Val() Ex = Val() Ey = Val() Ez = Val() dx = Val() dy = Val() dz = Val() x = Val() y = Val() z = Val() Xx = (k + 1) * (x * Cos(Ey) * Cos(Ez) + y * Cos(Ey)