Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Bitmap Fonts

位图字体一般是二维字体.虽然我们会把它放到三维世界,但这些字体没有厚度,也不能渲染和测量,只能翻译.除此之外,字体会一直面向镜头,像一张广告牌一样.虽然这个可以看作是潜在的缺点,但另一方面看我们也不用考虑字体的方向问题.

本节我们会演示GLUT函数如何显示位图文本到屏幕.这里用到glutBitmapCharacter函数来写入字符.原型如下:

void glutBitmapCharacter(void *font, int character)

font - 显示字体的名称

character - 待渲染的字母,符号,数字等..

字体名的可选值如下:

GLUT_BITMAP_8_BY_13

GLUT_BITMAP_9_BY_15

GLUT_BITMAP_TIMES_ROMAN_10

GLUT_BITMAP_TIMES_ROMAN_24

GLUT_BITMAP_HELVETICA_10

GLUT_BITMAP_HELVETICA_12

GLUT_BITMAP_HELVETICA_18

有些字体名称很容易辨认,所以你应该能找到你要的,尽管如此,你会在下面的实例中的弹出菜单中尝试所有字体.

下面这行举例出如何调用glutBitmapCharacter函数来输出一个字符到栅格位置.

glutBitmapCharacter(GLUT_BITMAP_HELVETICA_18,'');

这里重点讨论真是的栅格位置是什么.栅格位置可以用OpenGL库中的glRasterPos函数族来设置.其中两个的原型如下:

void glRasterPos2f(float x, float y);
void glRasterPos3f(float x, float y, float z);

x,y,z - 用于显示文本的本地坐标

glutBitmapCharacter函数渲染字体到指定的位置并利用字宽来增强当前的栅格位置.因此,渲染一个字符串时,只需要接连调用glutBitmapCharacter函数就可以达到输出目的.下面函数渲染了一个字符串到指定的栅格位置起始:

void renderBitmapString(
float x,
float y,
float z,
void *font,
char *string) { char *c;
glRasterPos3f(x, y,z);
for (c=string; *c != '\0'; c++) {
glutBitmapCharacter(font, *c);
}
}

最新文章

  1. [.NET逆向] 破解NET的四大神器
  2. 神经网络之Hebb学习规则
  3. 组合suan
  4. 基于socket、多线程的客户端服务器端聊天程序
  5. java 编译带包文件
  6. OpenstackUbuntu
  7. Android-Ant自动编译打包android项目 -- 2 ----签名与渠道包
  8. Kafka实战分析(一)- 设计、部署规划及其调优
  9. redis(4.0.11)编译安装
  10. 学习笔记CB006:依存句法、LTP、n元语法模型、N-最短路径分词法、由字构词分词法、图论、概率论
  11. Linux进程的实际用户ID和有效用户ID
  12. Python爬虫 获得淘宝商品评论
  13. Asterisk 11 chan_sip.c: Failed to authenticate device 看不到IP的问题
  14. OPC安装-配置(http://www.mabotech.com)
  15. 7.7 C++基本关联式容器
  16. cyclone IV中DDR的一个疑惑
  17. .NetCore利用BlockingCollection实现简易消息队列
  18. 使用fiddler来抓包
  19. LOJ#3085. 「GXOI / GZOI2019」特技飞行(KDtree+坐标系变换)
  20. js 图表处理之Echar

热门文章

  1. Manacher【p4555】 [国家集训队]最长双回文串
  2. CSS,HTML页面定制
  3. 中国石油大学(华东)OJ题目的HTML爬取
  4. System.getProperty("os.name")
  5. Unique Word Abbreviation -- LeetCode
  6. [HDU6240]Server
  7. cocurrent包countdownlatch 倒计时门栓
  8. 【Linux】CentOS7上安装google谷歌浏览器
  9. Android AIDL实例解析
  10. [分享]在ubuntu9.10下实现开机自动登录并运行自己的图形程序