三维坐标转换严密方法的研究及VB程序实现
三维坐标转换严密方法的研究及VB程序实现
周长江
1
顾和和
2
(中国矿业大学环境与测绘学院,江苏徐州221008)
[摘
要]传统的基于泰勒级数展开的线性模型转换方法仅适用于小角度的空间直角坐标转换,角度较
大时产生误差较大,需要进行复杂的三角函数和迭代计算,增加了数据处理的难度。而基于Rodrigo矩阵的方法不需要复杂的三角函数计算和迭代计算,且计算速度快,易于程序实现。实验表明,采用Rodrigo矩阵是进行三维坐标转换的一种比较严密简便的方法。
[关键词]
坐标转换;七参数;Rodrigo矩阵;VB
[文献标识码]A
[文章编号]1007-3000(2012)01-4
[中图分类号]P209
三维坐标转换模型主要有布尔莎模型、莫洛琴斯基模型和范式模型。在这些模型中主要是采用七参数的方法,但是这些方法有一定的局限性,涉及到泰勒级数展开和旋转参数初值的选取,对于旋转角较大计算也比较复杂时误差比较大,
[1]
X'g Xg XΔ
= Yg -λR Y'g ΔY
ΔZ
Zg
Z'g
(3)
。而通过引入Ro-
drigo矩阵可以巧妙的避开三角函数和迭代等复杂计采用数学上一些变换将7个转换参数分开求解,算,
提高了转换的精度和稳定性。VB是一种面向对象的可视化编程语言,适合一些小测量程序编写,本文着重研究了VB环境下基于Rodrigo矩阵坐标转换程序设计方法,并用实例验证了可行性。
然后引入一个反对称矩阵S
则可表示出旋转矩阵R,即:
R=(I-S)
-1
[3]
,并令I为单位阵,
(4)
(I+S)
将(4)代入(2)中整理后可以得到单个公共点误差方程:
1Rodrigo三维坐标转换数学原理
X X
'
?=λR + Y Y Z Z'
'
空间同一点在两个坐标系中坐标转换公式为:
X-λX' 0
- -
Y-λY' = -(Z+λZ') - -
Z-λZ' Y+λY'
-
-
-(Z+λZ')
0X+λX'
-
-
ΔX ΔY ΔZ
(1)
-(Y+λY') a
b-
X+λX' c 0
(5)
R为旋转矩阵,[ΔX,其中λ为比例因子,ΔY,
T
R中含有三个旋转角参数。求解ΔZ]为平移矩阵,a、b、c为矩阵S中三个未知参数,其中,即罗德
里格三参数。则对于n个公共点有
V3n×1=A3n×3X3×1-L3n×1
(6)
2]中已进对于A矩阵和L矩阵构成参考文献[
行了详细的说明,此处不再赘述。式中X3×1=
[
转换参数前首先要对公共点的坐标进行重心化处理。
'
Yg',Zg'),设旧坐标系中公共点重心坐标为(Xg,
'
Y',Z'),以重心为原点公共点坐标为(X,新坐标系
公共点重心坐标为(Xg,Yg,Zg),以重心为原点公Y,Z)。将公共点重心化共点坐标为(X,可得:入(1),
'
X X - =R 'Y λ Y -
Z' Z
-
-
-
-
ab
c]T,根据式(6)由间接平差模型并结合最
(7)
[2]
坐标代
小二乘原理即可求出罗德里格参数即:
X3×1=(A3n×3TA3n×3)-1A3n×3TL3n×1
b、c后把S矩阵代入(4)中计算出旋转矩求出a、
阵R。对于n个公共点,比例因子λ可由公共点在两
(2)
个坐标系里任意两个点连成的边的比值平均值的确定。因此对于n个公共点可以求出多个比例因子,则比例因子的最佳估计值为这几个比例因子的平均值。
[收稿日期]2011-10-17
[作者简介]周长江(1988—),男,汉族,河南信阳人,研究生在读,研究方向:GPS数据处理。
设n个公共点共组成m条公共边,则比例因子λ有m个,则:
λi
Y1(n),Z1(n),X1'(n),Y1'(n),Z1'(n),其中n
代表公共点的个数。第二种方法是将公共点坐标数据按照一定的格式编制在文本文档中,通过程序读取到相应的数组中。
Xi+1-Xi)+(Yi+1-Yi)+(Zi+1-Zi)=
Xi+1-Xi)+(Yi+1-Yi)+(Zi+1-Zi)(8)
m
λ=
∑λ
i=1
i
m
(9)
求出λ后,
将旋转矩阵R和比例因子λ代入(3)就可以求出平移参数ΔX、ΔY、ΔZ。7个参数求出来后便可以进行批量坐标转换。
矩阵A和L生成
通过一个for循环将已知公共点坐标数据根据文2]献[中矩阵A和L构成将计算出矩阵A和矩阵L,此部分代码如下:
Fori=1Ton//n代表公共点个数//
A(3*i-2,1)=0:A(3*i-2,2)=Format(-(Z1(i)+sumk*Z2(i)),"0.000")
A(3*i-1,1)=Format(-(Z1(i)+sumk*Z2(i)),"0.000")
A(3*i,1)=Format(Y1(i)(i),"0.000")
l(3*i-2,1)=Format(X2(i)-sumk*X1(i),"0.000")
Nexti
+sumk*Y2
2.3
2
2.1
VB程序设计实现三维坐标转换方法
程序界面设计
程序界面采用VB6.0开发平台,所用到的VB控
Timer、MsflexGrid、Label、Command等控件。件有Text、
用菜单编辑器编写了文件、计算、编辑、成果输出、帮
助等模块。具有已知数据的输入、文件打开、通过文本导入数据、坐标转换、文本编辑、成果输出等功能。程序界面如图1:
Rodrigo三参数求解
根据式(7)通过矩阵间运算即可求出三个独立参数,此部分代码如下:
mutrixtransA,At//矩阵运算求出罗德里格参数//
mutrixmultyAtA,At,A
jzqnAtA,AtAimutrixmultyAtl,At,l
2.4
图1程序界面
mutrixmultyx,AtAi,Atl
已知数据输入
程序设计中公共点坐标数有两种方法。第一种通过MsflexGrid控件输入公共点旧坐标系和新坐标系下坐标数据,然后将MsflexGrid控件每个单元格中的值分别赋给存放公共点坐标值的数组X1(n),
点号1234
旧坐标系(m)
X995.0016992.1702990.244988.9804
Y982.8721982.7885980.6089980.6839
Z100.7669104.3935103.0562102.404
2.2
3算例和精度分析
2]实验一数据选用文献[第一组部分数据,选取
4个公共点,表1列出了公共点的坐标情况
表1
X3553983.2563553980.5013553978.0823553976.891
公共点坐标数据新坐标系(m)
Y396746.1199396746.6912396745.0602396745.4836
Z28.483932.119730.782930.1349
程序运行求出比例因子、罗德里格参数及旋转矩
阵,结果如下:λ=0.9996592362a=0.006739b=-0.002749c=-0.126294ΔX=3552775.154ΔY=396043.170ΔZ=-77.553
旋转矩阵R:
0.9685870563-0.2485736809-0.0070858163
0.24864660390.96851260620.0125814991
0.0037352729-0.01394814090.9998957771
将已知新坐标系下坐标的点的旧坐标系下坐标代入程序运行,求出其在新坐标系下的坐标,结果如表2:
10
相关推荐:
- [法律文档]苏教版七年级语文下册第五单元教学设计
- [法律文档]向市委巡视组进点汇报材料
- [法律文档]绵阳市2018年高三物理上学期第二次月考
- [法律文档]浅析如何解决当代中国“新三座大山”的
- [法律文档]延安北过境线大桥工程防洪评价报告 -
- [法律文档]激活生成元素让数学课堂充满生机
- [法律文档]2014年春学期九年级5月教学质量检测语
- [法律文档]放射科标准及各项计1
- [法律文档]2012年广州化学中考试题和答案(原版)
- [法律文档]地球物理勘查规范
- [法律文档]《12系列建筑标准设计图集》目录
- [法律文档]2018年宁波市专技人员继续教育公需课-
- [法律文档]工会委员会工作职责
- [法律文档]2014新版外研社九年级英语上册课文(完
- [法律文档]《阅微草堂笔记》部分篇目赏析
- [法律文档]尔雅军事理论2018课后答案(南开版)
- [法律文档]储竣-13827 黑娃山沟大开挖穿越说明书
- [法律文档]《产品设计》教学大纲及课程简介
- [法律文档]电动吊篮专项施工方案 - 图文
- [法律文档]实木地板和复合地板的比较
- 探析如何提高电力系统中PLC的可靠性
- 用Excel函数快速实现体能测试成绩统计
- 教师招聘考试重点分析:班主任工作常识
- 高三历史选修一《历史上重大改革回眸》
- 2013年中山市部分职位(工种)人力资源视
- 2015年中国水溶性蛋白市场年度调研报告
- 原地踏步走与立定教学设计
- 何家弘法律英语课件_第十二课
- 海信冰箱经销商大会——齐俊强副总经理
- 犯罪心理学讲座
- 初中英语作文病句和错句修改范例
- 虚拟化群集部署计划及操作流程
- 焊接板式塔顶冷凝器设计
- 浅析语文教学中
- 结构力学——6位移法
- 天正建筑CAD制图技巧
- 中华人民共和国财政部令第57号——注册
- 赢在企业文化展厅设计的起跑线上
- 2013版物理一轮精品复习学案:实验6
- 直隶总督署简介




