查看: 767|回复: 2

代码奉献

[复制链接]

该用户从未签到

发表于 2014-4-25 13:27:33 | 显示全部楼层 |阅读模式
//创建文字
osg::ref_ptr<osg::Geode> cOSG::createText(double x,double y,double z,CString strvalue)
{
         setlocale(LC_ALL,".936");
        osg::ref_ptr<osgText::Text> text = new osgText::Text;

        osg::ref_ptr<osgText::Font> font = new osgText::Font();
        //读取字体
        font = osgText::readFontFile("simhei.ttf");

        // 设置字体文件
        text->setFont(font.get());
        CString st;
        st="fff中华";
        char *p =(LPSTR)(LPCSTR)strvalue;
         int resize=mbstowcs(NULL,p,0);
        wchar_t* wtext=new wchar_t[resize+1];
        mbstowcs(wtext,p,resize+1);
        //text1->setText(wtext);
        //std::string str(st);
       
       
        //osgText::String value(str);
        // 设置文字信息
        text->setText(wtext);//L(st));//"中国北京");
        // 设置字体大小wtext);//L
        text->setCharacterSize(10);
        //
        //设置字体颜色
        text->setColor( osg::Vec4(1.0f, 1.0f, 0.0f, 1.0f) );
        text->setAutoRotateToScreen(true);
        // 设置显示的位置
        osg::Vec3f position ;
        position.set(x,y,z);//4568.5312,-8387.43457,30);//
        text->setPosition( position );
        text->setAxisAlignment(osgText::TextBase::XZ_PLANE); //osgText::Text::SCREEN);//
   

        //添加到叶节点中
        osg::ref_ptr<osg::Geode> geode = new osg::Geode();
   /* osg::ref_ptr<osg::Billboard> BBD = new osg::Billboard;
        BBD->setName(strvalue.GetBuffer(0));
    BBD->setMode(osg::Billboard:OINT_ROT_EYE);
   
        BBD->addDrawable(text.get());*/

    /*delete p;
        delete wtext;
        return BBD.get() ;*/
        geode->addDrawable(text.get());

    delete p;
        delete wtext;
        return geode.get() ;
}

如何让文字始终指向视点 ,谁有高招?

该用户从未签到

发表于 2014-4-25 14:08:36 | 显示全部楼层
osgText::text本身就是一个billBoard , osg::autoTransform你试一下,可以始终指向视点,问下楼主,你的中文显示正常吗

该用户从未签到

 楼主| 发表于 2014-4-26 21:31:51 | 显示全部楼层
完全正确,系统已经使用,就是不能指向视点,静态的。 现在就是想解决指向视点。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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