旋转矩阵、欧拉角、四元数比较
2016-01-12 18:27
232 查看
来源 http://www.manew.com/7461.html
旋转矩阵、欧拉角、四元数主要用于:向量的旋转、坐标系之间的转换、角位移计算、方位的平滑插值计算。
旋转矩阵、欧拉角、四元数比较
不同的方位表示方法适用于不同的情况。下面是我们对合理选择格式的一些建议:
1.欧拉角最容易使用。当需要为世界中的物体指定方位时,欧拉角能大大的简化人机交互,
包括直接的键盘输入方位、在代码中指定方位(如为渲染设定摄像机)、在调试中测试。这个优点不应该被忽视,不要以“优化”为名义而牺牲易用性,除非你去顶这种优化的确有效果。
2.如果需要在坐标系之间转换响亮,那么就选择矩阵形式。当然,这并不意味着你就不能用其他格式来保存方位,并在需要的时候转换到矩阵格式。另一种方法是用欧拉角作为方位的“主拷贝”但同时维护一个旋转矩阵,当欧拉角发生改变时矩阵也要同时进行更新。
3.当需要大量保存方位数据(如:动画)时,就使用欧拉角或四元数。欧拉角将少占用25%的内存,但它在转换到矩阵时要稍微慢一些。如果动画数据需要嵌套坐标系之间的连接,四元数可能是最好的选择。
4.平滑的插值只能用四元数完成。如果你用其他形式,也可以先转换到四元数然后再插值,插值完毕后再转换回原来的形式。
旋转矩阵、欧拉角、四元数主要用于:向量的旋转、坐标系之间的转换、角位移计算、方位的平滑插值计算。
旋转矩阵、欧拉角、四元数比较
不同的方位表示方法适用于不同的情况。下面是我们对合理选择格式的一些建议:
1.欧拉角最容易使用。当需要为世界中的物体指定方位时,欧拉角能大大的简化人机交互,
包括直接的键盘输入方位、在代码中指定方位(如为渲染设定摄像机)、在调试中测试。这个优点不应该被忽视,不要以“优化”为名义而牺牲易用性,除非你去顶这种优化的确有效果。
2.如果需要在坐标系之间转换响亮,那么就选择矩阵形式。当然,这并不意味着你就不能用其他格式来保存方位,并在需要的时候转换到矩阵格式。另一种方法是用欧拉角作为方位的“主拷贝”但同时维护一个旋转矩阵,当欧拉角发生改变时矩阵也要同时进行更新。
3.当需要大量保存方位数据(如:动画)时,就使用欧拉角或四元数。欧拉角将少占用25%的内存,但它在转换到矩阵时要稍微慢一些。如果动画数据需要嵌套坐标系之间的连接,四元数可能是最好的选择。
4.平滑的插值只能用四元数完成。如果你用其他形式,也可以先转换到四元数然后再插值,插值完毕后再转换回原来的形式。
相关文章推荐
- JQuery前端技术记录
- 面向对象设计思想:面向对象设计的基本原则
- android5.1 编译命令
- graphlab
- endsWith和startsWith同样效果其他形式的写法(2016.1.12)
- 机器学习之增强学习
- Unity3D游戏开发之如何发布Android游戏
- POJ 3320 Jessica's Reading Problem(尺取法)
- JDK 7 中的 Fork/Join 模式 简单入门
- 集中管理工具Puppet 实战部署及使用
- 自定义控件(一) EditText自定义
- Xcode6中去掉默认的Main.storyboard
- 驱动模块加载错误:insmod: can't insert 'xx.ko': invalid module format
- Android存储访问及目录
- 【转】iOS学习笔记(十七)——文件操作(NSFileManager)
- Educational Codeforces Round 5(B)贪心
- 安装nginx时安装http_stub_status_module
- virtualbox5中archlinux文件共享
- 分库分表总结
- http协议的实现 httpd的基础配置