罗朝辉(飘飘白云)

关注嵌入式操作系统,移动平台,图形开发。-->加微博 ^_^

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  85 随笔 :: 0 文章 :: 169 评论 :: 0 Trackbacks

2008年3月16日 #

     摘要: 简单地来说,四元数描述了一次旋转:绕任意一个轴旋转一个角度。四元数的定义形式:(w, x, y, z)。假如,绕轴向量v(_x,_y,_z)正向(右手旋转法则)旋转角度p,则对应得四元数q为:
q = (cos(p/2), sin(p/2) * _x, sin(p/2) * _y, sin(p/2) * _z)

用四元数来表示旋转,不如用欧拉角(偏航/yaw,俯仰/pitch,横滚/ roll)来表示直接,但是用欧拉角来处理旋转有个不可回避的问题:万向节死锁。我们可以通过将欧拉角转换到四元数来避免这个问题。在DirectX中提供了从欧拉角到四元数,从四元数到矩阵(Direct3D用旋转来实现旋转)的变换函数。  阅读全文
posted @ 2008-03-16 14:01 罗朝辉 阅读(7969) | 评论 (0)编辑 收藏