查看: 3328|回复: 12

如何在OSG里动态显示文字啊?

[复制链接]

该用户从未签到

发表于 2011-12-14 13:33:27 | 显示全部楼层 |阅读模式
我根据《OSG程序设计》里的文字显示的程序,在里面设置了一个变量“tip”,当“tip”内容变化时OSG中显示的文字不发生变化,这是怎么回事啊?要做更新回调吗?该如何做呢?谢谢啊~~

该用户从未签到

 楼主| 发表于 2011-12-14 19:05:58 | 显示全部楼层
有没有人告诉我~~

该用户从未签到

发表于 2011-12-14 19:40:48 | 显示全部楼层
setTExt不行吗?

该用户从未签到

 楼主| 发表于 2011-12-15 08:52:26 | 显示全部楼层
fenma3422 发表于 2011-12-14 19:40
setTExt不行吗?

我用的就是“setTest”,程序单步运行的时候看到我设置的变量变化了,但就是不显示变化呢

该用户从未签到

发表于 2011-12-15 09:43:00 | 显示全部楼层
确实是做更新回调,来更新显示

该用户从未签到

发表于 2011-12-15 10:42:02 | 显示全部楼层
本帖最后由 wanghuisoftware 于 2011-12-15 10:45 编辑

我实现的功能:鼠标移到到哪里,Tip出现在相应节点附近,显示该节点的信息,如截图所示。
     具体实现方法是:
        1.在场景初始渲染时,加入文本节点(传递至pickHandler中),设置文本位置在可视化窗体外,并设置动态更新:text->setPosition(osg::Vec3(-_width,2*_height,-1));text_Geode->setDataVariance(osg::Object:YNAMIC);text->setDataVariance(osg::Object::DYNAMIC)。
        2.在MouseMove事件中,获得鼠标拾取的对象,设置对本对象内容与位置即可。m_tiptext->setText(s);m_tiptext->setPosition(osg::Vec3(_mx,_my,-1))。
        3.以上方法在MFC中使用,仅供参考。
截图二.jpg
位置一.jpg

该用户从未签到

发表于 2011-12-15 10:47:49 | 显示全部楼层
很遗憾,我自己用setTExt就可以,你可能是其他问题导致的吧

该用户从未签到

 楼主| 发表于 2011-12-15 15:39:23 | 显示全部楼层
fenma3422 发表于 2011-12-15 10:47
很遗憾,我自己用setTExt就可以,你可能是其他问题导致的吧

你的方法做了更新回调了吗?我是要做“碰撞预警”信息的动态显示的(要碰撞了就预告提示信息“注意安全”,如果相撞了就弹出“碰撞了”),谢谢啊

该用户从未签到

发表于 2011-12-15 16:16:58 | 显示全部楼层
我的是在事件处理时改变的

该用户从未签到

发表于 2011-12-16 12:57:06 | 显示全部楼层
在任何时候都可以的,这个功能太基本了,在很多教程资料和书里的例子都能找到

该用户从未签到

发表于 2011-12-16 16:16:25 | 显示全部楼层
TEXT设置更新回调即可~~~~~~~~~~

该用户从未签到

发表于 2011-12-16 16:16:39 | 显示全部楼层
TEXT设置更新回调即可~~~~~~~~~~

该用户从未签到

 楼主| 发表于 2011-12-26 11:00:46 | 显示全部楼层
tianxiao888 发表于 2011-12-16 16:16
TEXT设置更新回调即可~~~~~~~~~~

谢谢哈
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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