教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 法律文档 >

三维坐标转换严密方法的研究及VB程序实现

来源:网络收集 时间:2026-09-15
导读: 三维坐标转换严密方法的研究及VB程序实现 周长江 1 顾和和 2 (中国矿业大学环境与测绘学院,江苏徐州221008) [摘 要]传统的基于泰勒级数展开的线性模型转换方法仅适用于小角度的空间直角坐标转换,角度较 大时产生误差较大,需要进行复杂的三角函数和迭

三维坐标转换严密方法的研究及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

·北京测绘·< …… 此处隐藏:5258字,全部文档内容请下载后查看。喜欢就下载吧 ……

三维坐标转换严密方法的研究及VB程序实现.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/1412940.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)