查看: 1835|回复: 1

如何获取DOF节点的坐标系

[复制链接]

该用户从未签到

发表于 2009-5-26 15:13:01 | 显示全部楼层 |阅读模式
我希望做一个用鼠标拖动DOF节点动作的程序,通过计算鼠标对照自由度节点的坐标系的改变得到DOF节点的改变
现在的问题是如何获取到DOF节点自身的坐标系?
另外还有没有更简单的做法呢

该用户从未签到

发表于 2009-5-26 16:40:53 | 显示全部楼层
从DOF的坐标系转换到迪卡尔局部坐标系似乎并不是什么难事,参考DOFTransform::computeLocalToWorldMatrix的实现,比如对于HPR模式:

osg::Matrix current;
current.makeTranslate(getCurrentTranslate());
current.preMult(osg::Matrix::rotate(getCurrentHPR()[0], 0.0, 0.0, 1.0));//heading
current.preMult(osg::Matrix::rotate(getCurrentHPR()[1], 1.0, 0.0, 0.0));//pitch
current.preMult(osg::Matrix::rotate(getCurrentHPR()[2], 0.0, 1.0, 0.0));//roll
current.preMultScale(getCurrentScale());

然后还需要在这个current矩阵的左右分别乘以PUT矩阵及其逆矩阵,但是我个人并不清楚这个PUT矩阵的含义
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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