四元数和欧拉角学习
来源:互联网 发布:女生做春梦 知乎 编辑:程序博客网 时间:2024/05/22 13:48
在3D图形学中,最常用的旋转表示方法便是四元数和欧拉角,比起矩阵来具有节省存储空间和方便插值的优点。本文主要归纳了两种表达方式的转换,计算公式采用3D笛卡尔坐标系:
图1 3D Cartesian coordinate System (from wikipedia)
定义分别为绕Z轴、Y轴、X轴的旋转角度,如果用Tait-Bryan angle表示,分别为Yaw、Pitch、Roll。
图2 Tait-Bryan angles (from wikipedia)
一、四元数的定义
通过旋转轴和绕该轴旋转的角度可以构造一个四元数:
其中是绕旋转轴旋转的角度,为旋转轴在x,y,z方向的分量(由此确定了旋转轴)。
二、欧拉角到四元数的转换
三、四元数到欧拉角的转换
arctan和arcsin的结果是,这并不能覆盖所有朝向(对于角的取值范围已经满足),因此需要用atan2来代替arctan。
四、在其他坐标系下使用
在其他坐标系下,需根据坐标轴的定义,调整一下以上公式。如在Direct3D中,笛卡尔坐标系的X轴变为Z轴,Y轴变为X轴,Z轴变为Y轴(无需考虑方向)。
五、示例代码
阅读全文
0 0
- 四元数和欧拉角学习
- Unity学习笔记10——旋转(四元数和欧拉角)
- java学习和Android学习
- EventBus 事件学习和学习
- 懒惰学习和急切学习
- 学习书籍和学习站点
- 机器学习和深度学习
- LBP学习和PCA学习
- 机器学习和深度学习学习资料
- 机器学习和深度学习学习资料
- 机器学习和深度学习学习资料
- 机器学习和深度学习学习资料
- Extension Point和学习
- 学习和生活
- 学习全选和快捷键
- 事件和委托学习
- 学习和使用skyeye
- jsp和servlet 学习
- 负数的带符号和不带符号的移位运算
- python numpy包的使用一 基本操作
- Oracle(三)(数据查询)
- 【Android】点击应用进而打开base.apk的调用流程再分析
- Linux下的V4L2的编程总结
- 四元数和欧拉角学习
- jsp中文传递参数乱码。
- 编程题(懂二进制)
- Eclipse(pyDev)导入Anaconda2发行版中的模块
- asp.net中TreeView的使用
- 3.longest substring
- pcl 画法线
- dfs序
- 解析C++中函数重载的实现原理