计算机图形学(二)输出图元_15_字符图元
来源:互联网 发布:js 空格换成换行符 编辑:程序博客网 时间:2024/06/07 03:25
字符图元
图形显示中常包括文字信息,如图表上的标记、大楼或汽车上的牌号以及模拟和可视化应用中的标识信息。多数图形软件包中都有生成字符图元的子程序。有些系统提供庞大的字符函数集,而其他的系统则仅提供对字符生成的有限支持。字母、数字和其他字符可以显示成不同的大小和风格。一组字符的完整设计风格称为字样(typeface )。目前,有上百种字样可供计算机的应用程序使用。常用的字样有Courier , Helvetica , NewYork , Palatino和Zapf Chancery等。早先,术语字体(font)指的是一组按照特定尺寸和格式的模板字符式样。例如10磅Courier:斜体,或12磅Palatino黑体。l4磅字体的字符高度约为0.5厘米。换句话说,72磅大约等于2.54厘米(1英寸)。现在术语字体和字样经常互用,因为印刷过程不再使用金属模板。
字体可分成两大类:有衬线(serif)和无衬线(sans serif )。有衬线字体在字符主笔划末端带有细线或是笔划加重,而无衬线字体则没有加重。有衬线字体的可读性较好,即在正文的较长段落中容易阅读。另一方面,无衬线字体的单个字符易被识别。由于这个原因,无衬线字体被认为是字迹清楚的。由于可以很快地识别无衬线字符,因而这种字体特别适用于标识和短标题。
字体也按是否为单一宽度(monospace)或比例宽度(proportional)而进行分类。单一宽度字体中所有字符有同样的宽度。比例宽度字体中有多种字符宽度。
存储的计算机字体有两种不同的表示方法。一种表示某种字体字符形状的简单办法是使用矩形网格图案。这样的字符组称为位图字体(bitmap font,或位图化的字体)。位图化的字符集有时也称为光栅字体(raster font)。另一种更灵活的方法是用直线和曲线段来描述字符形状,例如在PostScript中的处理,这种字符组称为轮廓字体(outline font)或笔划字体( stroke font )。图3.62给出了两种字符表示方法。当把图3.62(a)中的图案复制到帧缓存的某个区域时,值为1的位确定监视器上对应的哪一个像素位置将要用指定颜色显示。为了显示图3.62(b)中的字符形状,字符轮廓的内部按填充区处理。
与位图字体相比,轮廓字体在增加大小时其字符形状不会变形。轮廓字体需要较少的存储空间,因为每种变体并不需要各自的字形缓存。通过控制字符轮廓的曲线定义,可以产生粗体、斜体或不同尺寸的字体。但这需要更多的时间来处理轮廓字体,因为必须将它们扫描转换到帧缓存中。
可用于字符显示的函数有许多个。有的图形软件包提供的函数可接受任意的字符串及相应的帧缓存起始位置。另一类函数仅在选定的一处或几处显示字符串。由于字符子程序对为网状布局或离散数据集显示给出标记很有用,因此该子程序显示的字符有时称为标记符号(marker symbol)或多点标记(polymarker),这与折线图元相似。另外,标准字符、点、圆和十字等常用做标记符号。
图3.63给出了用星号作为标记的离散点集图。
和其他图元一样,字符的几何描述在世界坐标系中给出,该信息由观察变换映射到屏幕坐标系。位图字符使用矩形网格的二进制值及网格参考位置来描述。该位置随后被映射到帧缓存中的指定位置。轮廓字符由一组用曲线或线段连接的坐标位置和参考位置来定义,该参考位置随后也映射到给定的帧缓存位置。参考位置可用于一个字符或一个字符串。一般情况下,字符子程序可生成二维或三维字符显示。
0 0
- 计算机图形学(二)输出图元_15_字符图元
- 计算机图形学(二)输出图元_16_字符函数
- 计算机图形学(三)_图元的属性_15_ 字符属性
- 计算机图形学(二)输出图元
- 计算机图形学(二)输出图元_9_填充区图元
- 计算机图形学(二)输出图元_12_OpenGL顶点数组
- 计算机图形学(二)输出图元_17_图形分割
- 计算机图形学(二)输出图元_13_像素阵列图元
- 计算机图形学 (一) 输出图元
- 计算机图形学 (二) 图元的属性
- 计算机图形学(第四版)- 输出图元-读书笔记P37
- 计算机图形学(二)输出图元_14_OpenGL像素阵列函数_2_像素图函数
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(上)
- 计算机图形学(二)输出图元_11_OpenGL多边形填充区函数(下)
- 计算机图形学(二)输出图元_20_章节总结(上)
- 计算机图形学(二)输出图元_1_OpenGL画点函数
- 计算机图形学(二)输出图元_2_ OpenGL画线函数
- 计算机图形学(二)输出图元_3_画线算法_1_直线方程
- 派生表别名 python编码 enca命令 sys.exit(1) 2016.05.26回顾
- Spring JavaConfig @Import实例
- java实现堆排序
- zhtml页面没有自动提示功能问题的解决
- shell常用命令之六 alias
- 计算机图形学(二)输出图元_15_字符图元
- 15 个 Android 通用流行框架大全
- cp: 无法通过符号链接"文件名" 进行操作 问题
- 一条命令搞定nginx安装
- zigbee基础应用(一)流水灯
- myeclipse修改项目名称后,部署到tomcat问题
- 10-CSS格式化排版
- java HashMap 转Object对象 工具类
- 详解依赖注入与自动装配