第四章 四元数在3D 物体姿态变化中的应用 4.1 引言 对于三维仿真系统中鱼雷运动的可视化研究,一般的仿真系统采用了按照鱼雷的六自由度参数来直接驱动模型的视景仿真。为了保证计算速度,往往需要在计算运动方程时选取较大的计算步长,这样有时会无法实现仿真运动的光滑和连续,甚至出现鱼雷运动跳跃的现象,如果选取较小的计算步长,那么计算速度的降低同样会影响到鱼雷的可视化效果。 目前,国内的仿真系统里用来解决此问题的专用软件模块十分少见。本课题着重研究了四元数在三维仿真系统中的应用,包括利用四元数对物体进行自由旋转和利用四元数来解决鱼雷运动可视化中的问题,本文利用四元数对模型姿态角变化进行插值,很好地解决了上述的鱼雷运动可视化仿真中存在的矛盾。 4.2 四元数简介 四元数是1843年由英国数学家William Row an Hamilton发明的数学概念。它的出现很好地把二维空间中的复数扩展到了三维空间。由于四元数的乘法不满足 交 换 律 ,对它的研究较实数和复数都 要困 难 ,以 至在它出现后 一个 多 世 纪 都 得 不到很好的应用。直到1985年Ken Shoemake[20]将 它引 入 计算机 图 形 学之 后 ,四元数在计算机 动画 和三维图 形 绘制 方面 才 得 到实际 的应用。随 着计算机 技 术 和图 形 学的发展,四元数所 表 现出来的优 势也 日 渐 得 到人 们 的重视。 4.2.1 四元数记法 一个 四元数包含 了四个 分量 ,一个 标 量 分量 和一个 3D 向 量 分量 。也 可以 说 是一个实部 ,三个 虚 部 ,表 示 如式 4.1 所 示 : i = + + j + k Qwbcd (4.1) 式 4.1 中w , b , c , d 为实数,i , j , k 为虚 数,满足 i2= j2 = k2 =- 1。四元数也 可以 表示 为: [w ,v] 或 [w , (x ,y ,z)],其 中w 为标 量 ,v= (x ,y ,z)为矢 量 。 4.2.2 四元数的运算 四元数的加 减 法和一般复数的加 减 法相 同,也 满足 交 换 律 和结 合 律 。但 是四元数的乘法满足 结 合 律 但 不满足 交 换 律 ,这是与 实数和复数最 显 著 的不同 [5]。 四元数加 法:121212[,]QQww vv+=++ (4.2) 四元数点 乘:12121 2121 2Q Qw wx xy yz z⋅=+++ (4.3) 四元数的共 轭 :*[ ,(,,)]Qwxyz=−−− (4.4) 四元数的模:2222Qwxyz=+++ (4.5) 18 四元数的逆:1*Q...