后方交会实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
摄影测量学实验报告
实验名称:空间后方交会
班级:测绘工程12-1
一.实验目的
掌握运用空间后方交会求解外方元素的过程。学会运用空间后方交会的原理,根据所给控制点的地面摄影测量坐标系坐标以及相应的像平面坐标系中的坐标,利用已知公式和计算机编程语言实现空间后方交会的过程,完成外方位元素的求解。
二.实验工具
个人电脑,visual basic 6.0
三.实验源代码
Private Sub Command1_Click()
Dim c(), kx(), ky(), l(), aa(), a11(), a12(), a13(), a14(), a15(), a16(), a21(), a22(), a23(), a24(), a25()
Dim a26(), v(), mm(5)
nn = Val(Text2.Text)
nnt = nn - 1
ReDim c(nnt, 5), kx(nnt), ky(nnt), l(2 * nnt + 1, 0), aa(2 * nnt + 1, 5), a11(nnt), a12(nnt), a13(nnt), a14(nnt), a15(nnt), a16(nnt), a21(nnt), a22(nnt), a23(nnt), a24(nnt), a25(nnt)
ReDim a26(nnt)
f = Val(Text1.Text)
fei = 0#
w = 0#
k = 0#
If Label2.Caption = "" Then
MsgBox "尚未读取文本", , "提示信息"
Else
a = Split(Label2.Caption, vbCrLf)
For i = 0 To nnt
hh = Split(a(i), " ")
For j = 0 To 5
c(i, j) = Val(hh(j))
Next j
Next i
m1 = (c(0, 1) - c(1, 1)) ^ 2 + (c(0, 2) - c(1, 2)) ^ 2 m2 = (c(0, 3) - c(1, 3)) ^ 2 + (c(0, 4) - c(1, 4)) ^ 2 m = Sqr(m2 / m1)
zs = m * f
xs = 0
ys = 0
For i = 0 To nnt
xs = xs + c(i, 3)
ys = xs + c(i, 4)
Next i
xs = xs / nn
ys = ys / nn
Do
a1 = Cos(fei) * Cos(k) - Sin(fei) * Sin(w) * Sin(k)
a2 = -Cos(fei) * Sin(k) - Sin(fei) * Sin(w) * Cos(k)
a3 = -Sin(fei) * Cos(w)
b1 = Cos(w) * Sin(k)
b2 = Cos(w) * Cos(k)
b3 = -Sin(w)
c1 = Sin(fei) * Cos(k) + Cos(fei) * Sin(w) * Sin(k)
c2 = -Sin(fei) * Sin(k) + Cos(fei) * Sin(w) * Cos(k)
c3 = Cos(fei) * Cos(w)
For i = 0 To nnt
kx(i) = -f * (a1 * (c(i, 3) - xs) + b1 * (c(i, 4) - ys) + c1 * (c(i, 5) - zs)) / (a3 * (c(i, 3) - xs) + b3 * (c(i, 4) - ys) + c3 * (c(i, 5) - zs))
ky(i) = -f * (a2 * (c(i, 3) - xs) + b2 * (c(i, 4) - ys) + c2 * (c(i, 5) - zs)) / (a3 * (c(i, 3) - xs) + b3 * (c(i, 4) - ys) + c3 * (c(i, 5) - zs))
Next i
For i = 0 To nnt
l(i * 2, 0) = c(i, 1) - kx(i)
l(i * 2 + 1, 0) = c(i, 2) - ky(i)
Next i
For i = 0 To nnt
zb = (a3 * (c(i, 3) - xs) + b3 * (c(i, 4) - ys) + c3 * (c(i, 5) - zs))
a11(i) = (a1 * f + a3 * c(i, 1)) / zb
a12(i) = (b1 * f + b3 * c(i, 1)) / zb
a13(i) = (c1 * f + c3 * c(i, 1)) / zb
a21(i) = (a2 * f + a3 * c(i, 2)) / zb
a22(i) = (b2 * f + b3 * c(i, 2)) / zb
a23(i) = (c2 * f + c3 * c(i, 2)) / zb
a14(i) = c(i, 2) * Sin(w) - (c(i, 1) * (c(i, 1) * Cos(k) - c(i, 2) * Sin(k)) / f + f * Cos(k)) * Cos(w)
a15(i) = -f * Sin(k) - c(i, 1) / f * (c(i, 1) * Sin(k) + c(i, 2) * Cos(k))
a16(i) = c(i, 2)
a24(i) = -c(i, 1) * Sin(w) - (c(i, 2) * (c(i, 1) * Cos(k) - c(i, 2) * Sin(k)) / f - f * Sin(k)) * Cos(w)
a25(i) = -f * Cos(k) - c(i, 2) / f * (c(i, 1) * Sin(k) + c(i, 2) * Cos(k))
a26(i) = -c(i, 1)
Next i
For i = 0 To nnt
aa(2 * i, 0) = a11(i)
aa(2 * i, 1) = a12(i)
aa(2 * i, 2) = a13(i)
aa(2 * i, 3) = a14(i)
aa(2 * i, 4) = a15(i)
aa(2 * i, 5) = a16(i)