高斯投影坐标正反算VB程序

2025-07-14

高斯投影坐标正反算

高斯投影坐标正反算

学 院: 班 级: 学 号: 姓 名: 课程名称: 指导老师:

- 1 -

高斯投影坐标正反算 实验目的:

1.了解高斯投影坐标正反算的基本思想; 2.学会编写高斯正反算程序,加深了解。

实验原理:

高斯投影正算公式中应满足的三个条件:

1. 中央子午线投影后为直线; 2. 中央子午线投影后长度不变; 3. 投影具有正形性质,即正形投影条件。 高斯投影反算公式中应满足的三个条件:

1. x坐标轴投影成中央子午线,是投影的对称轴; 2. x轴上的长度投影保持不变;

3. 正形投影条件,即高斯面上的角度投影到椭球面上后角度没有变形,仍然相等。

操作工具:

计算机中的VB6.0

代码:

Dim a As Double, b As Double, x As Double, y As Double, y_#

Dim l_ As Double, b_ As Double, a0#, a2#, a4#, a6#, a8#, m2#, m4#,

- 2 -

高斯投影坐标正反算 m6#, m8#, m0#, l0#, e#, e1#

Dim deg1 As Double, min1 As Double, sec1 As Double, deg2 As Double, min2 As Double, sec2 As Double Private Sub Command1_Click()

Dim x_ As Double, t#, eta#, N#, W#, k1#, k2#, ik1%, ik2%, dh% deg1 = Val(Text1.Text) min1 = Val(Text2.Text) sec1 = Val(Text3.Text) deg2 = Val(Text4.Text) min2 = Val(Text5.Text) sec2 = Val(Text6.Text)

l_ = (deg1 * 3600 + min1 * 60 + sec1) / 206265 b_ = (deg2 * 3600 + min2 * 60 + sec2) / 206265 dh = Val(Text9.Text)

k1 = ((l_ * 180 / 3.14159 + 3) / 6) k2 = (l_ * 180 / 3.14159 / 3) ik1 = Round(k1, 0) ik2 = Round(k2, 0) If dh = 6 Then l0 = 6 * ik1 - 3 Else

If dh = 3 Then

- 3 -

高斯投影坐标正反算 l0 = 3 * ik2 Else

MsgBox \End If End If

l = l_ - l0 * 3.14159 / 180 e = Sqr(a * a - b * b) / a m0 = a * (1 - e * e) m2 = e * e * m0 * 3 / 2 m4 = e * e * m2 * 5 / 4 m6 = m4 * e * e * 7 / 6 m8 = e * e * m6 * 9 / 8

a0 = m0 + m2 / 2 + m4 * 3 / 8 + m6 * 5 / 16 + m8 * 35 / 128 a2 = m2 / 2 + m4 / 2 + m6 * 15 / 32 + m8 * 7 / 16 a4 = m4 / 8 + m6 * 3 / 16 + m8 * 7 / 32 a6 = m6 / 32 + m8 / 16 a8 = m8 / 128

x_ = a0 * b_ - a2 * Sin(2 * b_) / 2 + a4 * Sin(4 * b_) / 4 - Sin(6 * b_) * a6 / 6 + Sin(8 * b_) * a8 / 8 t = Tan(b_)

e1 = Sqr((a * a - b * b) / (b * b)) eta = Sqr(e1 * e1 * Cos(b) * Cos(b))

- 4 -

高斯投影坐标正反算 W = Sqr(1 - e * e * Sin(b_) * Sin(b_)) N = a / W

x = x_ + N * Sin(b_) * Cos(b_) * l * l / 2 + N * Sin(b_) * Cos(b_) ^ 3 * (5 - t * t + 9 * eta * eta + 4 * eta ^ 4) * l ^ 4 / 24 + N * Sin(b_) * Cos(b_) ^ 5 * (61 - 58 * t * t + t ^ 4) * l ^ 6 / 720

y = N * Cos(b_) * l + N * Cos(b_) ^ 3 * (1 - t * t + eta * eta) * l * l * l / 6 + N * Cos(b_) ^ 5 * (5 - 18 * t * t + t ^ 4 + 14 * eta * eta - 58 * eta * eta * t * t) * l ^ 5 / 120 Text7 = x If dh = 6 Then

y_ = y + 500000 + 1000000 * ik1 Else

If dh = 3 Then

y_ = y + 500000 + 1000000 * ik2 Else

MsgBox \End If End If Text8 = y_ End Sub

Private Sub Command2_Click()

- 5 -


高斯投影坐标正反算VB程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:减负之小组合作学习的反思

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219