字符、裁剪算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息工程大学地理空间信息学院
国标码:并不等于区位码,它是由区位码稍作转 换得到,其转换方法为:先将十进制区码和位码转换 为十六进制的区码和位码,这样就得了一个与国标码 有一个相对位置差的代码,再将这个代码的第一个字 节和第二个字节分别加上20H,就得到国标码。
如:“保” 3123H,它是经过下 面的转换得到的:1703D->1103H->+20H->3123H。
信息工程大学地理空间信息学院
字符矢量表示,记录字符的笔画信息
字符的编码 P0 P1 P2 P3 P4 P5 X0 X1 Y0 Y1 Y2 Y3 Y4 Y5 -1 0 1 0 1 0 1 字符结束
信息工程大学地理空间信息学院
不连线 连线 P0 P4 P1
(63,63)
X2
X3 X4
P2
X5
P5
P3
矢量汉字显示步骤:
信息工程大学地理空间信息学院
3、矢量字符、汉字
矢量汉字原理:
是把汉字所在的方形区域画成一个 N*N 的坐标 图,然后把汉字的每一个笔划分解成线、圆弧,记录 其坐标位置,并将其坐标位置和图形都存储起来,这 样形成的汉字字模称之为矢量字模——矢量汉字。
特点:与点阵字相比较,矢量字体的最大优点是数据压
缩量大;可以任意缩放。
信息工程大学地理空间信息学院
点阵汉字缺点:数据量大,放大后会出现
明显的锯齿边,这严重地影响了大字的输出质量
信息工程大学地理空间信息学院
点阵汉字显示:例如16*16点阵汉字的每一
横行占2个字节(2*8位/字节=16位)。也就是说16*16 大方格的横行的黑白点是由这两个字节来决定的。将 其数字转化为二进制,0的地方不填充,1的地方填充 为黑色
信息工程大学地理空间信息学院
字符的属性包括字体、字形、大小、字符间 距、字符倾斜角、字符串路径、字符串对齐方式 等。
信息工程大学地理空间信息学院
二、二维图形裁剪
信息工程大学地理空间信息学院
1、线段的裁剪
编码裁剪法、矢量裁剪法、中点分割裁剪法
2、多边形的裁剪
逐边裁剪法
3、其它图形的裁剪
曲线的裁剪、字符的裁剪
信息工程大学地理空间信息学院
国标码问题?:
国标码是汉字信息交换的标准编码,但因其前后 字节的最高位为0,与ASCII码发生冲突? 如“保”字,国标码为31H和23H,而西文字符 “1”和“#”的SCII也为31H和23H,现假如内存中有两 个字节为31H和23H,这到底是一个汉字,还是两个西 文字符“1”;和“#”?于是就出现了二义性。
将区域码的各位从右到左编号,
则坐标区域与各位的关系为: 上 下 X X 右 X 左 X
任何位赋值为1,代表端点落在相应的位置上,否则该位为0。 例如:若端点在剪取矩形内,区域码为0000。 若端点落在矩形的左下角,区域码为0101。
信息工程大学地理空间信息学院
具体点P(x,y)编码方法:
1 C 0

部分可见(?)
信息工程大学地理空间信息学院
结论:
1、对于任意一条直线段,它要么被完全排斥 在窗口之外(?); 2、要么在窗口内留下一个可见段,并且只能 有一个可见段;
可通过对线段端点的简单判别,判断线段与 窗口的关系。
信息工程大学地理空间信息学院
直接求交算法:
信息工程大学地理空间信息学院
(1)编码裁剪法(CoHen和Sutherland)

若P1P2完全在窗口内code1=0,且code2=0,则“取”; 若P1P2明显在窗口外code1&code2≠0, 则“弃”; 在交点处把线段分为两段。其中一段完全在窗口外, 可弃之。然后对另一段重复上述处理。(处理P1、P2)
1000 1010 P1
1001
0001
0000
0010
P3 P4
大字仍有“刀割”现象
信息工程大学地理空间信息学院
曲线字:以高次曲线代替矢量字轮廓的一次直
线的方程,即为曲线字。
信息工程大学地理空间信息学院
曲线字库在放大后仍能保证光滑。
信息工程大学地理空间信息学院
两种曲线字:
TrueType字体 (Apple和Microsoft公司 联手推出的 ) 二次B样条曲线来描述的(内置系统) PostScript字体 ( Adobe 公司): Adobe Type 1 、 Adobe Type 3 三次Bezier曲线来描述的(精度高)
将窗口边线两边沿长,得到九个区域,每一 个区域都用一个四位二进制数标识,直线的端点 都按其所处区域赋予相应的区域码,用来标识出 端点相对于裁剪矩形边界的位置。
1001 1000 1010 A C 0001 0101 0000 0100 0010 0110
信息工程大学地理空间信息学院
D
B
编码规律:
信息工程大学地理空间信息学院

(2)矢量裁剪法(自学)
基本思想:与编码裁剪算法相类似,只是判别端
点是否落在窗口内的过程不同。如图所示,我们同 样用四条窗口边框直线把平面分割成九个区域,每 一个区域分别标上相应的编号。 3 1 0 A 6
码,输入码为“1703”,用五笔字型则为“WKS”。
信息工程大学地理空间信息学院
2、点阵字符、汉字
汉字在计算机中如何表示?
采用图形(对应)的方法,显示(或绘制)一个汉 字就是显示一个图形符号,这个图形符号称为汉字字 模。每个汉字在计算机中都对应一个字模,字模分为 两种类型。一是点阵字模,一种是矢量字模。 字库:把所有汉字的字模组织起来,并统一组织 存储在一起形成的文件叫字库。
信息工程大学地理空间信息学院
裁剪有关概念
裁剪定义 —— 确定图形对象的哪些部分在指
定区域内部,哪些部分在指定区域外部的过程。
图形裁剪算法,直接影响图形系统的效率。
信息工程大学地理空间信息学院
裁剪有关概念
裁剪实质 —— 数据集合中抽取信息的过
程,是许多图形操作的基础。

裁剪方法 —— 判断图形元素是否落在裁
信息工程大学地理空间信息学院
裁剪有关概念
裁剪分类
点的裁剪;
线段裁剪;
圆的裁剪; 多边形的裁剪; 字符裁剪等
信息工程大学地理空间信息学院
1、点的裁剪
点的裁剪是最简单的一种,是裁剪其他元素
的基础。判断点的可见性可用下式,若P(x,y) 满足:Xl <= x <= Xr Yt Yb P(x,y) Xl Xr Yb <= y <= Yt 点P为可见(在窗口内) 否则不可见。
信息工程大学地理空间信息学院
为什么裁剪?
例子:计算机内可以存储全国地图。如果全部
显示在屏幕上,则看不见局部细节。这时,可以使用
缩放技术,把地图中的局部区域放大显示,这时需要
确定地图中那一部分落在显示区域之外,那些部分落
在显示区域之内,以便显示落在显示区域之内的那部
分图形。—— 裁剪
信息工程大学地理空间信息学院
信息工程大学地理空间信息学院
GB2312—80:我国最常用的字符集是“信息交换 用汉字编码字符集基本集”。 该字符集包含了六千多个常用汉字,以及英文字 母、数字和其它图形符号。 编码原则:汉字用两个字节表示,每个字节用七位码 (高位为0),前字节的编码称为区码,后字节的编 码称为位码,此即区位码,如“保”字在二维代码表 中处于17区第3位,区位码即为“1703 ”。
信息工程大学地理空间信息学院
裁剪例子:
信息工程大学地理空间信息学院
算法总结:

特点:可快速判断线段的完全可见和不可见。简 单,易于实现。算法中求交点(求法?)是很重 要的,他决定了算法的速度。另外,本算法对于 其他形状的窗口未必同样有效。
特别适用二种场合:大窗口场合(大部分线段完 全可见);窗口特别小的场合(大部分线段完全 不可见的情况下)——该算法特别有效。 在一般情况下,该算法有时要做不必要的求交运 算,因而效率不是太高。
机内码高位 = 区码 + A0H(1010 0000 D) 机内码低位 = 位码 + A0H
信息工程大学地理空间信息学院
输入码 :就是使用英文键盘输入汉字时的编码。 目前,我国已推出的输入码有数百种,但用户使用较 多的约为十几种,按输入码编码的主要依据,大体可 分为顺序码、音码、形码、音形码四类。 如“保”字,用全拼,输入码为码为“BAO”,用区位
基本思想:
线段P1P2分为三种情况处理:
(1)若P1P2完全在窗口内, 则显示该线段P1P2。 (2)若P1P2明显在窗口外, 则丢弃该线段。
(3)若线段不满足(1)或(2)的条件,则在交点 处把线段分为两段。其中一段完全在窗口外,可弃 之。然后对另一段重复上述处理。
信息工程大学地理空间信息学院
为快速判断,采用如下编码方法:
信息工程大学地理空间信息学院
点阵汉字原理:
点阵汉字是汉字字形最基本的表示法。
0 3F 20 2F 20 20 2F 20 20 20 20 2F 20 3F 20 0 0 FE 02 FA 82 82 FA 82 A2 B2 92 FA 02 FE 02 0
16×16点阵字形实例(国),整个汉字占32个字节,整 个字库的大小为32*6763=210K。
显然,国标码是不可能在计算机内部直接采用。
信息工程大学地理空间信息学院
机内码 :计算机内部表示码,采用变形国标码。 变换方法:将国标码的每个字节都加上128,即 将两个字节的最高位由0改1,其余7位不变
如:由上面我们知道,“保”字的国标码为 3123H,前字节为00110001B,后字节为00100011B, 高位改1为10110001B和10100011B 即为B1A3H,因此, “保”字的机内码就是B1A3H。
t
当y y max else
பைடு நூலகம்
1 C 0
b
当y y min else
1 C 0
r
当x x max else
1 C 0
l
当x x min else
信息工程大学地理空间信息学院
具体判断方法:给定所有的线段端点的区域码,快速
判断哪条直线完全在窗口内,哪条直线完全在窗口外。
别的图形裁剪是否可以利用这种方法?
信息工程大学地理空间信息学院
2、线段的裁剪
直线段是组成一切其它图形的基础,直线段裁 剪算法是复杂图形裁剪的基础。 编码裁剪法

矢量裁剪法

中点分割裁剪法
信息工程大学地理空间信息学院
下图表示直线段与窗口的位置关系 每条线段无非三种可能性:

完全不可见(那些?) 完全可见(?)
剪窗口之内并找出其位于内部的部分。
信息工程大学地理空间信息学院
裁剪有关概念
裁剪窗口 —— 多边形区域、曲线边界的
区域、矩形窗口。其中最简单最常用的裁剪窗口 是矩形窗口。 由上、下、左、右四条边界 (Xr,Yt) 围成,通常通过其左下角坐 标(XL,YB)和右上角坐 (Xl,Yb) 标(XR,YT)来定义。
地理空间图形学
地理信息工程教研室
2014
字符及汉字生成
二维图形裁剪
信息工程大学地理空间信息学院
1、了解字符和汉字编码;
2 、 理解 字符及汉字的生成原理, 掌握 点阵汉 字及矢量汉字的文件结构和显示过程; 3 、 掌握 点、直线段在区域内、外的判别方法; 4、掌握直线段裁剪的几种常用方法; 5 、 了解 多边形的逐边裁剪法以及其他图形的 裁剪方法。
信息工程大学地理空间信息学院
一、字符及汉字生成
信息工程大学地理空间信息学院
字符是指数字、字母、汉字等,用于图形标注、 说明等
字符及汉字编码
点阵字符、汉字 矢量字符、汉字 轮廓字型技术
信息工程大学地理空间信息学院
1、字符及汉字编码
ASCII码: “美国信息交换用标准代码集” 规定了128个字符代码。 代码0 — 31:控制字符 代码32 — 127:表示英文字母、标点符号、 各种运算符以及特殊符号。 每个ASCII码用一个字节(实际上只要七位二进制) 代码表示。
1、根据给定的字符编码,在字库中检索出表示
该字符的数据。 2、取出端点的坐标,对其适当的几何变形,再 根据各端点的标志显示字符。
信息工程大学地理空间信息学院
4、轮廓字型技术
轮廓字:字符的外轮廓由一系列直线段来描述,矢
量字体中保存的是该字符外轮廓一系列直线坐标。(一次直 线方程)
信息工程大学地理空间信息学院
0101
0100
0110 P2
信息工程大学地理空间信息学院
具体算法步骤:(设端点P1,P2的代码为C1,C2 )

两端点P1(X1,Y1)和P2(X2,Y2)在区域内 0000,C1=C2=0 全保留。

当两个端点在窗口边线外的同侧位置,C1、C2按 位与不等零,全舍弃。

其它情况,需计算出直线与窗口边线的交点?, 将直线分段后继续进行检查判断。
相关文档
最新文档