OSG显示文字——自定义显示文字函数
#include <Windows.h>
#include <osg/Geode>
#include <osg/Geometry>
#include <osgText/Text>
#include <osgViewer/Viewer>
#include <locale.h>
#include <osgDB/ReadFile>
void setupProperties(osgText::Text& textObject,osgText::Font* font,float size,const osg::Vec3& pos )
{
textObject.setFont(font);//
textObject.setCharacterSize(size);//字体大小
textObject.setPosition(pos);
textObject.setColor(osg::Vec4(1.0,1.0,1.0,1.0));
textObject.setAlignment(osgText::Text::CENTER_BOTTOM);//文字显示方向
//textObject.setAxisAlignment(osgText::Text::SCREEN);//获取文字对称成方式正对屏幕方向
//textObject.setCharacterSizeMode(osgText::Text::SCREEN_COORDS);//跟随视角不断变化,离物体越远,文字越大
textObject.setAutoRotateToScreen(true);//跟随视角不断变化,但离物体越远,文字越小,和现实当中像类似
textObject.setBackdropType(osgText::Text::OUTLINE);//对文字进行描边
textObject.setBackdropColor(osg::Vec4(1.0,0.0,0.0,1.0));//描边颜色
textObject.setDrawMode(osgText::Text::TEXT | osgText::Text::BOUNDINGBOX);//添加文字边框
textObject.setAxisAlignment(osgText::Text::XZ_PLANE);//获取文字对称成方式
}
void createContent(osgText::Text& textObject,const char* string)
{
int requiredSize=mbstowcs(NULL,string,);//如果mbstowcs第一参数为NULL那么返回字符串的数目
wchar_t* wText=new wchar_t[requiredSize+];
mbstowcs(wText,string,requiredSize+);//由char转换成wchar类型
textObject.setText(wText);
delete wText;
}
int main()
{
setlocale(LC_ALL,".936");// 配置地域化信息
const char* titleString="木兰辞\n拟古决绝词简友";
const char* textString={
"人生若只如初见,何事秋风悲画扇;\n"
"等闲变却故人心,却道故人心易变;\n"
"骊山语罢倾销半,夜雨霖铃终不怨;\n"
"何如薄幸锦衣郎,比翼连枝当日愿。"
};
osgText::Font* fontHei=osgText::readFontFile("C:\\WINDOWS\\Fonts\\simhei.ttf");
osgText::Font* fontKai=osgText::readFontFile("C:\\WINDOWS\\Fonts\\simkai.ttf");
osg::ref_ptr<osgText::Text> title=new osgText::Text;
setupProperties(*title,fontHei,20.0f,osg::Vec3(0.0,0.0,0.0));
createContent(*title,titleString);
osg::ref_ptr<osgText::Text> text=new osgText::Text;
setupProperties(*text,fontKai,15.0,osg::Vec3(0.0,0.0,-80.0f));
createContent(*text,textString);
osg::ref_ptr<osg::Geode> geode=new osg::Geode;
geode->addDrawable(osg::createTexturedQuadGeometry(osg::Vec3(-150.0,1.0,-130.0),osg::Vec3(300.0,0.0,0.0),osg::Vec3(0.0,0.0,200.0),1.0,1.0));//创建一个写字板
geode->addDrawable(title.get());
geode->addDrawable(text.get());
osgViewer::Viewer viewer;
viewer.setSceneData(geode.get());
return viewer.run();
}
OSG显示文字——自定义显示文字函数的更多相关文章
- 写了一个迷你toast提示插件,支持自定义提示文字和显示时间
写了一个迷你toast提示插件,支持自定义提示文字和显示时间,不想用其他第三方的ui插件,又想要toast等小效果来完善交互的同学可以试试, 代码中还贡献了一段css能力检测js工具函数,做项目的时候 ...
- jQuery hover事件鼠标滑过图片半透明标题文字滑动显示隐藏
1.效果及功能说明 hover事件制作产品图片鼠标滑过图片半透明,标题文字从左到右滑动动画移动显示隐藏 2.实现原理 首先把效果都隐藏,然后定义一个伪类来触发所有的效果,接下来当触发伪类后会有一个遍历 ...
- CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容
CSS实现Div透明,而显示在上面的文字不透明,但也可看到显示在下面的图片内容,DiV透明其实挺简单,主要是为background定义opacity属性,一般这个是最大值是1,数值越接近1,则越不透明 ...
- js实现文字逐个显示
先把代码摆上了吧: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtm ...
- 文字超出DIV后,隐藏文字并显示...
<html> <head> <style type="text/css"> #cs{width:100px;height:50px;line-h ...
- ActionBar只显示图标不显示文字
问题:ActionBar菜单项android:showAsAction设置为android:showAsAction="always|withText"或者android:show ...
- delphi之完美Splash方案(在TfrmMain.FormCreate里不断调用TfrmSplash显示加载进度文字,并且及时Update显示)
前言:网上有很多介绍delphi创建闪屏的代码,大多只是在程序开启前显示一个闪屏,但是却没有说如何在闪屏上显示程序加载的进度,于是笔者有意思介绍一下这种闪屏方式. 1.创建一个窗体(TfrmSplas ...
- 让TextView里面的文字逐个显示的动画效果实现(1)
最近使用TextView时想要实现里面的文字逐个显示的动画效果,就如同打字一样. 主要实现思想:新建一个TextView的派生类,先将要逐个显示的字符串保存变量 mOriginalStr 中,然后启动 ...
- Ueditor增加文字竖排显示和从右向左输入(支持蒙古文和维吾尔文)
平时我们在ueditor中都是输入的中文,排版都是从左向右输入.但是当输入一些少数民民族言时,ueditor却不能正常显示. 例如蒙古文字,传统蒙文是竖排书写.如下图:传统蒙古文排文方式,<蒙古 ...
随机推荐
- ubuntu 配置JDK环境变量
ubuntu 配置JDK环境变量 (2011-11-25 16:45:59) 转载▼ 标签: ubuntu jdk 环境变量 杂谈 分类: Linux_Ubuntu_CentOs 过程如下: 1. 先 ...
- zoj1136 Multiple
记忆化搜索,因为要求最小的,肯定是从小到大,依次添加,那么通过bfs,队列貌似是最好的选择.因为很可能那个数爆long long,所以采用字符串存储,并记录余数,通过模拟除法的方式来写. 剪枝:因为后 ...
- phpstorm 设置多项目并存
phpstorm 或 webstorm 设置多个项目可以并存: File -> settings -> Directories -> Add Content Root 中添加你当前的 ...
- meteor学习
meteor学习 描述:是一套完整的用于开发现代化跨平台实时应用的整体解决方案 不是IDE(集成开发环境) 不是API接口 不是前端框架 不是后端框架 包含 命令行工具 meteor command ...
- sudo apt-get update
要用apt-get这种方式安装LAMP时,最好先运行下面在命令升级自己的系统这样是为了更新源,而如果你找的源不好,可能安装LMAP失败.#sudo apt-get update 获得最近的软件包的列表 ...
- EMV标准
EMV标准是由国际三大银行卡组织--Europay(欧陆卡,已被万事达收购).MasterCard(万事达卡)和Visa(维萨)共同发起制定的银行卡从磁条卡向智能IC卡转移的技术标准,是基于IC卡的金 ...
- Delphi 服务操作
unit Service; interface uses Windows,Messages,SysUtils,Winsvc,Dialogs; function StartServices(Const ...
- WPF(MultiTrigger)
原文 http://blog.csdn.net/haifengzhilian/article/details/8822098 <Window x:Class="TestResource ...
- umdh工具使用
先安装工具,http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx 选择其中的http://msdn.microsoft.com/ ...
- 网易云课堂_C语言程序设计进阶_第二周:指针:取地址运算和指针、使用指针、指针与数组、指针与函数、指针与const、指针运算、动态内存分配_2信号报告
2 信号报告(5分) 题目内容: 无线电台的RS制信号报告是由三两个部分组成的: R(Readability) 信号可辨度即清晰度. S(Strength) 信号强度即大小. 其中R位于报告第一 ...