我要发帖 回复

中级会员

16

主题

617

积分

0

专家分

兴趣点(最多三项):

视景仿真

私信
发表时间 : 2011-7-6 18:14:18 | 浏览 : 1721    评论 : 8
情况是这样的,我想在vp中读取地图上设置的dof节点的坐标,从而判断车辆是否能通过,但不知道用什么函数能实现,如果不用dof节点,还有没有更好的方法呢,希望不吝赐教。其中地图是作为一个整体flt文件读入vp中的,dof是在ctreator中设置好的。

最近VR访客

yinguohua889 评论于2011-7-7 10:01:46
自己顶一下!求教
99daodan 评论于2011-7-7 22:40:47
找找本论坛我的一个帖子,曾经问过。有个大虾的方法不错。
yinguohua889 评论于2011-7-8 09:12:51
感谢楼上,不过现在论坛没法搜索你的帖子啊,能说一下帖子的标题吗,万分感谢!
yinguohua889 评论于2011-7-8 09:56:35
找到99daodan发的帖子了,以下是superdemo的回答,我还没试,先贴上来

void GetDofWCSPos(double &x, double &y, double &z, double &h, double &p, double &r,vsDOF *dof)
{
if(dof == NULL)
return;
vsTraversalLocate travLocate;
travLocate.setMode(vsTraversalLocate::MODE_ENABLE_MATRIX_STACK | vsTraversalLocate::MODE_ENABLE_NODE_STACK);
travLocate.visit(dof);
vuMatrix<double> m = travLocate.getTopMatrix();
m.getTranslate(&x,&y,&z);
m.getRotate(&h,&p,&r);
}
yinguohua889 评论于2011-7-11 21:42:01
回复 99daodan 的帖子

高手你好,关于捕获dof节点绝对坐标的帖子我找到了,但是运行起来捕获的还是节点的相对坐标值,不知错在哪里,能给看一下吗,万分感谢
void GetDofWCSPos(double x, double y, double z, vsDOF *dof)
{
        if(dof == NULL)
                return;
        vsTraversalLocate travLocate;
        travLocate.setMode(vsTraversalLocate::MODE_MATRIX_STACK
                | vsTraversalLocate::MODE_NODE_STACK);
        travLocate.visit(dof);
       
        vuMatrix<double> m = travLocate.getTopMatrixStack();
        m.getTranslate(&x,&y,&z);
        printf("%f,%f,%f\n",x,y,z);

        //m.getRotate(&h,&p,&r);
}
yinguohua889 评论于2011-7-11 22:26:51
已经搞定了,呵呵,原来我自己creator中origin没设好!
99daodan 评论于2011-7-12 00:00:33
呵呵好使就行,这是方法之一,好像还有一个方法,在国外vp论坛上看见过,一时记不起来了。
hengdijun 评论于2021-5-25 20:20:59
yinguohua889 发表于 2011-7-11 09:42 PM
回复 99daodan 的帖子

高手你好,关于捕获dof节点绝对坐标的帖子我找到了,但是运行起来捕获的还是节点的 ...

您好,我想请教一下dof获取绝对坐标的问题

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2022-8-10 08:03 AM

返回顶部