有多种字体(如宋体、楷体等),每种字体又有多种大小型号,因此字库的存储空间是很庞大的。解决这 个问题一般采用压缩技术。如:黑白段压缩:部件压缩:轮廓字形压缩等。其中,轮廓字形法压缩比大, 且能保证字符质量,是当今国际上最流行的一种方法。轮廓字形法采用直线或二/三次 bezier曲线的集合 来描述一个字符的轮廓线。轮廓线构成一个或若干个封闭的平面区域。轮廓线定义加上一些指示横宽、竖 宽、基点、基线等等控制信息就构成了字符的压缩数据 点阵字符的显示分为两步。首先从字库中将它的位图检索出来。然后将检索到的位图写到帧缓冲器中 0 01100 011001 0 100110 1111100 100000000 (a)点阵字符(b)点阵字库中的位图表示(c)矢量轮廓字符 图2.4.1字符的种类 24.2矢量字符 矢量字符记录字符的笔画信息而不是整个位图,具有存储空间小,美观、变换方便等优点。对于字符的 旋转、缩放等变换,点阵字符的变换需要对表示字符位图中的每一象素进行:而矢量字符的变换只要对其 笔画端点进行变换就可以了。矢量字符的显示也分为两步。首先从字库中将它的字符信息。然后取出端点 坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符 24.3字符属性 字体宋体仿宋体楷体黑体隶书 字高宋体宋体宋体宋体 字宽因子(扩展/压缩)大海大海大海大海 字倾斜角倾斜倾斜 对齐(左对齐、中心对齐、右对齐) 字色 写方式:替换方式时,对应字符掩模中空白区被置成背景色。与方式时,这部分区域颜色不受影响。 25裁剪 在使用计算机处理图形信息时,计算机内部存储的图形往往比较大,而屏幕显示的只是图的一部分。因 此需要确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图 这个选择过程称为裁剪。最简单的裁剪方法是把各种图形扫描转换为点之后,再判断各点是否在窗内 但那样太费时,一般不可取。这是因为有些图形组成部分全部在窗口外,可以完全排除,不必进行扫描转 换。所以一般采用先裁剪再扫描转换的方法。 (a)裁剪前 (b)裁剪后 图2.5.1多边形裁剪 251直线段裁剪 计算机图形学第二章第27页共27页计算机图形学 第二章 第 27 页 共 27 页 有多种字体(如宋体、楷体等),每种字体又有多种大小型号,因此字库的存储空间是很庞大的。解决这 个问题一般采用压缩技术。如: 黑白段压缩;部件压缩;轮廓字形压缩等。其中,轮廓字形法压缩比大, 且能保证字符质量,是当今国际上最流行的一种方法。轮廓字形法采用直线或二/三次 bezier 曲线的集合 来描述一个字符的轮廓线。轮廓线构成一个或若干个封闭的平面区域。轮廓线定义加上一些指示横宽、竖 宽、基点、基线等等控制信息就构成了字符的压缩数据。 点阵字符的显示分为两步。首先从字库中将它的位图检索出来。然后将检索到的位图写到帧缓冲器中。 (a)点阵字符 (b)点阵字库中的位图表示 (c) 矢量轮廓字符 图 2.4.1 字符的种类 2.4.2 矢量字符 矢量字符记录字符的笔画信息而不是整个位图,具有存储空间小,美观、变换方便等优点。对于字符的 旋转、缩放等变换,点阵字符的变换需要对表示字符位图中的每一象素进行;而矢量字符的变换只要对其 笔画端点进行变换就可以了。矢量字符的显示也分为两步。首先从字库中将它的字符信息。然后取出端点 坐标,对其进行适当的几何变换,再根据各端点的标志显示出字符。 2.4.3 字符属性 ·字体 宋体 仿宋体 楷体 黑体 隶书 ·字高 宋体 宋体 宋体 宋体 ·字宽因子(扩展/压缩) 大海 大海 大海 大海 ·字倾斜角 倾斜 倾斜 ·对齐 (左对齐、中心对齐、右对齐) ·字色 ·写方式:替换方式时,对应字符掩模中空白区被置成背景色。与方式时,这部分区域颜色不受影响。 2.5 裁剪 在使用计算机处理图形信息时,计算机内部存储的图形往往比较大,而屏幕显示的只是图的一部分。因 此需要确定图形中哪些部分落在显示区之内,哪些落在显示区之外,以便只显示落在显示区内的那部分图 形。这个选择过程称为裁剪。最简单的裁剪方法是把各种图形扫描转换为点之后,再判断各点是否在窗内。 但那样太费时,一般不可取。这是因为有些图形组成部分全部在窗口外,可以完全排除,不必进行扫描转 换。所以一般采用先裁剪再扫描转换的方法。 (a)裁剪前 (b) 裁剪后 图 2.5.1 多边形裁剪 2.5.1 直线段裁剪