查看: 2362|回复: 5

关于获取 坐标

[复制链接]

该用户从未签到

发表于 2011-3-8 17:16:22 | 显示全部楼层 |阅读模式
Pick:
  1. float x =ea.getX();
  2. float y =ea.getY();
  3. if(pViewerQT->computeIntersections(x,y,intersections))
  4. for (osgUtil::LineSegmentIntersector::Intersections::iterator hitr = intersections.begin();hitr != intersections.end(); ++hitr)
  5. {
  6.    if (!hitr->nodePath.empty() && !(hitr->nodePath.back()->getName().empty()))
  7.    {
  8.                if(hitr->nodePath.back()->getName() == "BillBoard")
  9.        {
  10.    const osg::BoundingSphere bs=hitr->nodePath.back()->getBound();   osg::Vec3 c = bs.center()*osg::computeLocalToWorld(hitr->nodePath.back()->getParentalNodePaths()[0]);   osg::Vec3d vec3 = m_pDescription->WorldToScreen(pViewerQT,c);   m_pDescription->text->setText("x");   m_pDescription->text->setPosition(vec3);    }
  11.    }
  12. }
复制代码



m_pDescription 是 osgText::Text
节点为 BillBoard

22.jpg 11.jpg 33.jpg


x 在不了 BillBoard 中心。。
求解。

该用户从未签到

发表于 2011-3-9 08:16:35 | 显示全部楼层
首先我不知道您的WorldToScreen是什么函数,它能起到什么作用;其次注意osgText的文字对齐方式,默认方式不是CENTER_CENTER的,因此绘制的文字不会位于坐标中心(而是以这个坐标为左侧基线)

该用户从未签到

发表于 2011-3-9 11:40:04 | 显示全部楼层
text的坐标不应该是世界坐标么?

该用户从未签到

发表于 2011-3-10 08:18:53 | 显示全部楼层
text的坐标也是位于父节点的局部坐标系下的

该用户从未签到

发表于 2011-3-10 09:24:00 | 显示全部楼层
嗯,我意思是这个坐标应该是三维点,不是屏幕坐标

该用户从未签到

发表于 2013-3-12 09:47:34 | 显示全部楼层
学习!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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