查看: 2020|回复: 2

如何计算本地坐标系下的旋转角度 在世界坐标系下的旋转角度?

[复制链接]

该用户从未签到

发表于 2013-6-12 13:19:47 | 显示全部楼层 |阅读模式
本帖最后由 superwavelet 于 2013-6-12 22:27 编辑

比如:
  1. osg::ref_ptr<PoseTransform> markerattitude;
复制代码
marker的方位角度用markerattitude来存储,
  1. 在第一个时刻marker的角度是:osg::Quat angle_in_local1 = markerattitude;
  2. 在另一个时刻marker的角度:osg::Quat angle_in_local2 = markerattitude;
复制代码
则:marker在两个时刻在本地坐标系下角度的变化:
  1. osg::Quat rotate = angle_in_local2 /angle_in_local1;
复制代码
想计算出marker在世界坐标系的角度变化,我试着这样做:
  1. 在第一个时刻:osg::Matrix marker_to_world1 = computeSelfToWorld(markerattitude);
  2. 在另一个时刻:osg::Matrix marker_to_world2 = computeSelfToWorld(markerattitude);
  3. osg: : Quat result =  marker_to_world2.getRotate() / marker_to_world1.getRotate();
复制代码
但是结果好像不对。。..

该用户从未签到

发表于 2013-6-13 22:16:45 | 显示全部楼层
我不能判断您要做什么,坐标转换最简单的方法就是用矩阵,然后您可以从新的矩阵中取得getRotate()

该用户从未签到

 楼主| 发表于 2013-6-14 06:19:46 | 显示全部楼层
array 发表于 2013-6-13 22:16
我不能判断您要做什么,坐标转换最简单的方法就是用矩阵,然后您可以从新的矩阵中取得getRotate()

我就是这样弄的,但是好像不对,我再看看,多谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表