查看: 1930|回复: 6

关于物体运动轨迹显示的问题

[复制链接]

该用户从未签到

发表于 2012-3-1 16:46:58 | 显示全部楼层 |阅读模式
我想在程序中显示出运动物体的运动轨迹。
前几天我在QQ群上发问过,Array说是用一个动态更新的Geometry来记录节点的位置就可以了,节点世界坐标可以用computeLocalToWorld计算。
现在我已经在NodeCallback中写了下面的语句:

virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
{
    ...
    osg::Matrix path=osg::computeLocalToWorld(nv->getNodePath());//这个是不是得到节点的当前坐标?
    ...
}

请问这句是不是得到节点的当前坐标,还有得到了osg::Matrix path之后怎样显示出来呢?
没有思路了,只有求救!请各位大侠帮忙!

该用户从未签到

 楼主| 发表于 2012-3-3 20:53:26 | 显示全部楼层
:time:等待中...

该用户从未签到

发表于 2012-3-5 09:35:32 | 显示全部楼层
获取局部到世界坐标系的过渡矩阵,之后局部坐标系下的点 pt 就可以转换到世界坐标中了

该用户从未签到

 楼主| 发表于 2012-3-5 10:19:46 | 显示全部楼层
array 发表于 2012-3-5 09:35
获取局部到世界坐标系的过渡矩阵,之后局部坐标系下的点 pt 就可以转换到世界坐标中了

不好意思,还是不太明白怎么编程,能说具体点吗?

也就是说怎么从path中获取x,y,z世界坐标?

该用户从未签到

发表于 2012-3-6 09:15:36 | 显示全部楼层
“从path中获取x,y,z”?这难道不是您必然已知的条件么

该用户从未签到

 楼主| 发表于 2012-3-6 10:14:05 | 显示全部楼层
本帖最后由 vinsonxp 于 2012-3-6 10:14 编辑

virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
{
    ...
    osg::Matrix path=osg::computeLocalToWorld(nv->getNodePath());//这个是不是得到节点的当前坐标?
    ...
}

path是从computelocaltoworld取得的Matrix,通过computelocatoworld计算后path中是不是包含一个(x,y,z)世界坐标?怎样用path在世界坐标中绘制出对应的点?

该用户从未签到

发表于 2012-3-12 09:43:26 | 显示全部楼层
没有局部坐标系中的点,哪来世界坐标?您这里显然缺少必要的条件,并且这个条件肯定是您自己已知的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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