三维图形绕坐标轴连续旋转的算法与实现

第29卷第6期2007年12月沈 阳 工 业 大 学 学 报

Journal of Shenyang University of Technology

Vol 129No 16Dec. 2007

文章编号:1000-1646(2007) 06-0696-03

三维图形绕坐标轴连续旋转的算法与实现

魏 东, 李冬梅, 黄有群

(沈阳工业大学信息科学与工程学院, 沈阳110023)

摘 要:在三维图形处理软件中, 界面交互方法, 这需要知道三个轴和三个角度, , 案, 转轴和旋转角度, . , 比采用四元数连乘方法, , 便于用户界面交互. :; 算法; 旋转轴; 旋转角度:   文献标识码:A

Algorithm and implementation of continuous rotation of

three 2dimensional graphic around coordinate axis

WEI Dong , L I Dong 2mei , HUAN G Y ou 2qun

(School of Information Science and Engineering , Shenyang University of Technology , Shenyang 110023, China )

Abstract :While realizing continuous rotation of the entit y by 3D graphic software , user is used to adopt interface interaction approach where the entity rotates around three axes respectively. That needs three rotation axes and three rotation angles , and is hard in programming realization. Aiming at the problem , a new method was proposed to realize convenient continuous rotation of the entit y. In the method , three formulae are given to calculate a rotation axis and a rotation angle according to the angles of the entity rotation around three coordinates axis and their sequence , and the calculated axis and the angle used to realize rotation of the entity. Compared with the method of continuous quaternion multiplication , the proposed approach has higher calculating speed and is facility in programming realization as well as user interface interaction.

K ey w ords :continuous graphic rotation ; rotation matrix ; algorithm ; rotation axis ; rotation angle

  在很多图形应用软件特别是三维图形应用软件中, 旋转变换可以用不同的方法描述. 例如, 用欧拉角的方法描述; 用方向余弦方法描述; 用绕3个坐标轴旋转的方法描述等[1-2]. 使用人员一般习惯采用分别绕x 、y 、z 3个坐标轴旋转的方式得到最终的结果. 这时可以采用多个旋转矩阵相乘得到[3], 也可以采用四元数连乘的方法得到[4].

但是, 在软件开发过程中, 经常使用Open G L 图形引擎、VRML 或JAVA3D 等作为开发基础, Open G L 和VRML 在实现旋转时必须知道旋转

收稿日期:2006-09-04.

基金项目:沈阳市科技局重点资助项目([1**********]8) .

轴和旋转角度, 然后使用Open G L 中的G lrotate [5]或VRML 中的Transform 来实现[6]. 而JAVA3D 则可采用矩阵或四元数来实现. 在实现绕坐标轴连续旋转时需要多次调用相应的函数, 这样在编程实现时就相对麻烦一些. 尤其对于以

VRML 为基础的软件, 会出现多个Transform 嵌套, 使得VRML 文件变大, 不利于网络传输. 对于一个实

β、γ角的情况, 体分别绕x 、y 、z 轴分别旋转α、

β、γ得到一个旋转轴和一个旋是否可以根据α、

转角度, 回答是肯定的, 这样多次旋转就可以通过

作者简介:魏 东(1968-) , 男, 山东利津人, 副教授, 硕士, 主要从事计算机图形学等方面的研究.

第6期魏 东, 等:三维图形绕坐标轴连续旋转的算法与实现   697

一次旋转来完成.

文献[7]提出了采用四元数连乘的方法, 即通过代表多个任意旋转轴及角度的四元数连乘得到一个四元数, 再从该四元数中提取旋转轴和旋转角度. 这是因为在使用Open G L 图形引擎或VRML 编程时, 它们不支持四元数, 所以必须依

量, 因此完全可以只依据绕3个坐标轴的旋转角度, 直接采用下面讨论的3个公式计算出旋转轴和旋转角度, 而不必采用四元数连乘的方法, 从而避免四元数运算中的向量运算及过多的乘法运算, 减少编程实现的复杂程度, 提高程序的运行速度, 同时满足用户的操作习惯.

据通过四元数计算出旋转轴和角度. 这需要对角度进行除法、乘法运算, 并对四元数进行相应的向量运算.

1, y 轴旋转β角, 角度, 有旋转矩阵R x , R y ,

转轴, 方式. , R z , 则有R xyz =R z R y R x , 计算后得

-αγ+cos γsin βsin αsin γsin α+cos γsin βcos α

R xyz γcos γcos α+sin γsin βsin α-cos γsin α+sin γsin βcos   (1)

-sin βcos βsin αcos βcos α  同理, 当实体按不同坐标轴顺序先后旋转时可

得R xzy 、R yz x 、R yxz , R zyx , R z xy 共六种旋转矩阵. 另

2

C +A x (1-C )

外, 当一个实体绕任意轴旋转时, 设旋转轴为A (A x , A y , A z ) , 旋转角度是θ, 则旋转矩阵为[8]

A x A z (1-C ) +A y S A y A z (1-C ) -A x S

2

C +A z (1-C )

A x A y (1-C ) -A z S

2

C +A y (1-C )

RA =A x A y (1-C ) +A z S A x A z (1-C ) -A y S

  (2)

A y A z (1-C ) +A x S

式中:C =cos θ; S =sin θ.

现令旋转轴A 为单位矢量, 则有A 2x +A 2y +

A z =1. 这样矩阵RA 中正对角线之和为1-2C. 对

2

相应的, 对于其它5种情况也有类似结果.

对上述6种情况得到的等式总结如下:设k , m , n 分别是{x , y , z }中之一, 则A k 为A x , A y , A z 其中之一

, αk 是实体绕A k 旋转的角αn 是实体绕其它两个坐标轴旋转时的角度, αm 、

αm 、αn 按k 、度, 即αm 、n 与x , y , z 的对应关系k 、β、γ中的一个. 分别取α、

当实体按三个坐标轴先后旋转时, 如果A k 所代表的坐标轴是旋转次序中的第二个旋转轴, 则2A k S =cos αm cos αn sin αk ±  

sin αm sin αn +sin αk

(7)

于上述六种情况就有RA 等价于其中之一, RA =

R , R ∈{R xyz , R xzy , R yzx , R yxz , R zyx , R zxy }, 这样导致相等矩阵中对应元素相等, 则有以下规律:

1) 矩阵正对角线元素之和相等, 即RA [1, 1]+RA [2, 2]+RA [3, 3]=R [1, 1]+R [2, 2]+R [3, 3].可计算出

1-2C =cos γcos β+cos γcos α+  

(3) cos βcos α±sin γsin βsin α

其中±的取值可根据实体按3个坐标轴旋转的先后顺序, 为x 、y 、z ; y 、z 、x ; z 、x 、y 时符号取+, 反之取-. 由此, 可求出旋转角度θ, 并可计算

S.

当3个坐标轴的先后顺序为x 、y 、z ; y 、z 、x ; z 、x 、y 时符号取+, 反之取-. 如果A k 所代表的坐标轴不是旋转次序中的第二个旋转轴, 则

2A k S =sin αk cos αm +sin αk cos αn ± 

cos αk sin αm sin αn

z 、x 、y 时符号取-, 反之取+.

(8)

2) 对等号两边的矩阵分别计算RA [i , j ]-RA [j , i ]=R [i , j ]-R [j , i ], 当i =2, j =1时

可求出2A z S ; 当i =1, j =3时可求出2A y S ; 当

i =3, j =2时可求出2A x S 从而得到旋转轴. 例

当3个坐标轴的先后顺序为x 、y 、z ; y 、z 、x , 3) 另外, 对于实体只绕两个坐标轴旋转的情

如, 当RA =R xyz 得到

2A z S =sin γcos β+sin γcos α-cos γsin βsin α

2A x S =cos βsin α+cos γsin α-sin γsin βcos α

(6) (4)

况, 也按上述方法分析得到如下结果:

如果实体是绕两个坐标轴先后旋转, 则设剩

余的坐标轴为第三个实体绕之旋转的坐标轴, 同时设旋转角度为0, 再按公式(3) , (7) , (8) 求出旋转轴和旋转角度. 另外, 如果用户在旋转过程中对

2A y S =cos γsin βcos α+sin γsin α+sin β(5)

698   沈 阳 工 业 大 学 学 报第29卷

某个轴出现多次旋转, 则采用加法直接合成一个

旋转角度, 然后再参与到计算中去.

2 应用实例

有了上述的算法基础, 就可以根据实体绕三个或两个坐标轴旋转的角度计算出一个旋转轴和旋转角度. 计算过程按以下步骤.

1) 依据公式(3) 和旋转轴顺序计算出C 值; 2) 依据C =cos θ转角度, 再计算出S =sin θ;

3) . 需要19次乘法、4次除法及相应的加减法和三角函数运算. 因此, 在这种情况下, 本方法有较高的运算速度.

在实际应用中, 当系统与用户交互时, 用户采用绕3个坐标轴旋转1个实体的方法, 可以计算出1个旋转轴和1个旋转角度, 用这个旋转轴和旋转角度来代替3, 适用于, 便于用户交互. 软.

:

[1]徐宏文, 陈东祥, 王金敏. 画法解析几何[M ].天津:

天津大学出版社,1993.

(XU Hong 2wen , CHEN Dong 2xiang , WAN G Jin 2min. Brush work analytic geometry [M ].Tianjin :Tianjin U 2niversity Press ,1993. ) [2]龙泽斌. 几何变换[M ].长沙:湖南科学技术出版社,

1984.

(LON G Ze 2bin. G eometry transform [M ].Changsha :Hunan Science Technology Press ,1984. ) .

[3]孙家广. 计算机图形学[M ].北京:清华大学出版社,

1998:371-373.

(SUN Jia 2guang. Computer graphics [M ].Beijing :Ts 2inghua University Press ,1998:371-373. )

[4]Hearn D , Baker M P. Computer graphics C version

[M ].Prentice 2Hell International Inc ,1998:419-420. [5]乔林, 费广正, 杜林. Open G L 程序设计[M ].北京:清

华大学出版社,2000.

(Q IAO Lin , FEI Guang 2zheng ,DU Lin. Open G L pro 2gramming [M ].Beijing :Tsinghua University Press , 2000. )

[6]黄铁军, 柳键. VRML 国际标准与应用指南[M ].北

京:电子工业出版社,1999.

(HUAN G Tie 2jun ,L IU Jian. VRML international stan 2dard and application tutorial [M ].Beijing :Publishing House of Electronics Industry ,1999. )

[7]陈国华. 三维连续图形变换的一类算法与实现[J].

中国图象图形学报,2001,6A (12) :1240-1243.

(CHEN Guo 2hua. On three 2dimensional continuous graphic transformations calculation and implementation [J].Journal of Image and Graphics , 2001, 6A (12) :1240-1243. ) [8]Eric Lengyel. 3D 游戏与计算机图形学中的数学方法

[M ].北京:清华大学出版社,2004.

(Eric Lengyel. Mathematics for 3D game and computer graphic [

M ].Beijing :Tsinghua University Press , 2004. )

(责任编辑:邓美艳 英文审校:王溪波)

第三个, (8) ±; 如果是第二个则采用公式() 并判断±, 计算出3个坐标值. 在取得实体的旋转轴和旋转角度后, 就可以直接使用该轴和角度进行程序的运算.

图1是以采用VB 以VRML 为基础实现的一个立方体旋转的例程, 左边是先后按3个坐标轴旋转得到的结果, 即采用3

个Transform 节点, 通过嵌套实现立方体的旋转; 右边是采用计算后的旋转轴和旋转角度得到的结果, 利用一个Transform 来实现立方体旋转的结果. 同时, 显示求得的旋转轴和旋转角度, 如图1中下部所示.

图1 求旋转轴和旋转角度的例图

Fig 11 Illustration of computing rotation

axis and rotation angel

3 结 论

在绕3个坐标轴旋转的情况下, 四元数连乘

的方法[7]需要41次乘法、6次除法及相应的加减法和三角函数运算, 而直接采用上述公式计算则


相关文章

  • 三维重建算法原理
  • www.CadCaeCam.com/Forum/index.htm CadCaeCamPlm 专业门户网站收集整理 版权属于原作者 联系 [email protected] 三维重建算法原理 --Marching Cube 算法原理.Ray-casting 算法原理 作者:希望(rinqar) Q ...

  • 图形可视化处理论文
  • 图形可视化简述 摘要可视化(Visualization )是利用计算机图形学和图像处理技术,将数据转换成图形或图像在屏幕上显示出来,并进行交互处理的理论.方法和技术.它涉及到计算机图形学.图像处理.计算机视觉.计算机辅助设计等多个领域,成为研究数据表示.数据处理.决策分析等一系列问题的综合技术.目前 ...

  • 空间数据库
  • 空间数据库 第一章 绪论 信息的定义 哲学上:人们所认知与感知对象的抽象, 是现实世界中各种事物的特征及事物间的联系. 数学上:是确定性的度量,两次不定性之差,与随机对立. 物理上:是一种能量,与熵对立. 信息的特性:无限性.共享性.创造性 数据:是指客观事物的属性.数量.位置及其相互关系等的符号描 ...

  • 天正建筑命令快捷键
  • 天正建筑命令快捷键 轴网菜单 重排轴号 CPZH 改变图中一组轴线编号,该组编号自动进行重新排序 倒排轴号 DPZH 倒排轴线编号,适用于特定方向的立剖面轴线绘制 单轴变号 DZBH 只改变图中单根轴线的编号 绘制轴网 HZZW 包括旧版本的直线轴网和弧线轴网 两点轴标 LDZB 选择起始轴与结束轴 ...

  • 计算机辅助设计基础试题(完整版)
  • 一.选择题: 1.WEDGE 是以下哪一种实体形成的命令.( C ) A .圆锥 B .圆柱 C .楔形 D .球形 2.下面的哪个操作可以完成移动.复制.旋转和缩放所选对象的多种编辑功能( D ) A .MOVE B .ROTAE C .COPY D .MOCORO 3.保存块的应用以下( A ) ...

  • 地理信息系统概论课后习题部分答案
  • 第一章 1.什么是地理信息系统(GIS )?它与一般计算机应用系统有哪些异同点? 答:地理信息系统: 是由计算机硬件.软件和不同的方法组成的系统,该系统设计支持 空间数据的采集.管理.处理.分析.建模和显示,以便解决复杂的规划和管理问题. GIS 脱胎于地图学,是计算机科学.地理学.测绘遥感学.环境 ...

  • 距离图像局部特征提取方法综述
  • 第25卷第5期模式识别与人工智能 V01.25No.52012年10月 PR&AI 0ct 2012 距离图像局部特征提取方法综述 郭裕兰1'2 鲁敏1 谭志国1万建伟1 1(国防科技大学电子科学与工程学院长沙410073) 2(SchoolofComputerScienceandS0ftw ...

  • 3 网格生成技术(30)
  • 3 网格生成技术(通用汽车徐工为辅,约30 页,周老师为主) 3.1 概述 对流动与传热问题进行数值计算的第一步是生成网格,即要对空间上连续的计算区域进行剖分,把它划分成许多个子区域,并确定每个区域中的节点.由于工程上所遇到的流动与传热问题大多发生在复杂区域内,因而不规则区域内网格的生成是计算流体力 ...

  • 于一种新的扫描方式的滤波反投影算法
  • 北京交通大学 硕士学位论文 基于一种新的扫描方式的滤波反投影算法 姓名:杨艳芳 申请学位级别:硕士 专业:计算数学 指导教师:渠刚荣 20090701 中文摘要 扇形束CT(eomputedtomography)扫描结构在实践中易于实现和控制,被广泛应用于临床.尽管新的快速三维螺旋CT体积成像方法将 ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn