Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Stroke Fonts

笔划字体是用线条生成的.跟位图字体相反,笔划字体看上去像三维对,例如,字体可以旋转,测量和转化.

本节我们将会使用GLUT函数来生成一些笔划字体到屏幕.基础函数是glutStrokeCharacter.原型如下:

void glutStrokeCharacter(void *font, int character)

font - 用到的字体的名字

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

字体的可选常量值有:

GLUT_STROKE_ROMAN

GLUT_STROKE_MONO_ROMAN (fixed width font: 104.76 units wide).

下面文本演示了如何调用glutStrokeCharacter函数来输出单个字符到当前本地坐标:

glutStrokeCharacter(GLUT_STROKE_ROMAN,'');

跟位图字体相反,笔划字体的渲染定位的声明方式跟原始图片一样,例如用转化,旋转和测量.

下面函数在本地世界坐标中从指定位置开始渲染一串字符串:

void renderStrokeFontString(
float x,
float y,
float z,
void *font,
char *string) { char *c;
glPushMatrix();
glTranslatef(x, y,z); for (c=string; *c != '\0'; c++) {
glutStrokeCharacter(font, *c);
} glPopMatrix();
}

注意: GLUT是用线条来绘制笔划字体的,因此我们要用glLineWidth函数来指定线条的宽度.该函数用了浮点型来指定宽度.

和位图字体一样,GLUT提供一个函数来返回字宽.glutStrokeWidth函数的原型如下:

int glutStrokeWidth(void *font, int character);

font -  GLUT中预定义的字体之一

character - 我们想要知道字宽的字符

[译]GLUT教程 - 笔划字体的更多相关文章

  1. [译]GLUT教程 - 位图字体

    Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Bitmap Fonts 位图字体一般是二维字体.虽然我们会把它放到三维 ...

  2. [译]GLUT教程(目录)

    http://www.lighthouse3d.com/tutorials/glut-tutorial/ GLUT是OpenGL Utility Toolkit的意思.作者Mark J. Kilgar ...

  3. [译]GLUT教程 - 整合代码5

    Lighthouse3d.com >> GLUT Tutorial >> Extras >> The Code So Far V 该代码与位图字体的代码类似.区别是 ...

  4. [译]GLUT教程 - 整合代码6

    Lighthouse3d.com >> GLUT Tutorial >> Extras >> The Code So Far VI 下面代码以窗体模式启动.你可以在 ...

  5. [译]GLUT教程 - 游戏模式

    Lighthouse3d.com >> GLUT Tutorial >> Extras >> Game Mode 根据GLUT官网的说明,GLUT的游戏模式是为开启 ...

  6. [译]GLUT教程 - 位图和正交投影视图

    Lighthouse3d.com >> GLUT Tutorial >> Fonts >> Bitmap Fonts and Orthogonal Projecti ...

  7. [译]GLUT教程 - 整合代码4

    Lighthouse3d.com >> GLUT Tutorial >> Pop-up Menus >> The Code So Far IV 以下代码使用了位图字 ...

  8. [译]GLUT教程 - glutPostRedisplay函数

    Lighthouse3d.com >> GLUT Tutorial >> Avoiding the Idle Func >> glutPostRedisplay 直 ...

  9. [译]GLUT教程 - 安装

    Lighthouse3d.com >> GLUT Tutorial >> Basics >> Setup 你需要什么 要用GLUT库开发程序,你可以下载最新版本3. ...

随机推荐

  1. C++ 二位数组做参数传递

    指针的强大功能,,,,简直牛逼!!! #include<iostream> #include<cstdio> #include<map> using namespa ...

  2. highcharts 图例详解

    highcharts 图例 tooltip: {                                           },                      legend: { ...

  3. 摘录 | WAREZ无形帝国

    开始 这会儿夜深了,他们昏昏睡去.随便哪栋建筑的某一个黑洞洞的窗口,你冷眼望去,没准就能看到一台白色的电脑,静静地卧在主人的书桌上.如果那主人睡得足够深,你就打开他的抽屉,你看到了什么?哦,我不是指他 ...

  4. 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-使用工厂创建代理(Using the ProxyFactoryObject to create AOP proxies)

    本文翻译自Spring.NET官方文档Version 1.3.2. 受限于个人知识水平,有些地方翻译可能不准确,但是我还是希望我的这些微薄的努力能为他人提供帮助. 侵删. 如果你正在为你的业务模型使用 ...

  5. 无法启动此程序,因为计算机中丢失 MSVCP120.dll。尝试安装该程序以解决此问题

    重装了下系统(Windows 7),发现先前装的一些软件大部分不能正确启动,更为奇怪的是,即使我重装了该软件,打开的软件界面的时候,报如下错误:“无法启动此程序,因为计算机中丢失 MSVCP120.d ...

  6. 自动化安装SQLSERVER和SQLSERVER补丁 转

    2014-01-23 18:31  您还在用下一步下一步的方式安装SQLSERVER和SQLSERVER补丁吗? 介绍 假如你有50台服务器需要安装SQLSERVER,如果你用下一步下一步的方式,用远 ...

  7. Proxy server got bad address from remote server

    在ArcMap中,在GIS Servrvers中,打开已经设置好的服务器时,出现下面的弹窗问题. Proxy server got bad address from remote server(ver ...

  8. 关于select 控件

    通过http://www.w3school.com.cn/tiy/t.asp?f=html_select 的测试,测得,select 控件值最多106个. Q:easyui的datagrid中能做到 ...

  9. ARCGIS FLEX API加载google地图、百度地图、天地图(转)

    http://www.cnblogs.com/chenyuming507950417/ Flex加载google地图.百度地图以及天地图作底图 一  Flex加载Google地图作底图 (1)帮助类G ...

  10. Chromatix

    1.Lens Rolloff Correction  透镜衰减矫正 The Lens Rolloff correction takes into account the fact that,with ...