基于GDI路径技术汉字笔顺和部件自动绘制.docVIP

基于GDI路径技术汉字笔顺和部件自动绘制.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于GDI路径技术汉字笔顺和部件自动绘制

基于GDI路径技术汉字笔顺和部件自动绘制   摘要:介绍了Windows图形引擎GDI+路径技术,提出了应用路径技术获取系统TrueType字库的笔画轮廓数据来自动绘制汉字笔顺序列和各种部件的方法并编程实现。该方法可根据需要显示GB2312字符集6 763个汉字的任意笔顺和各种部件。其对汉语工具书网络化、字符集外字处理具有实用意义。??   关键词:GDI+; 路径; 笔顺; 部件   中图分类号:TP391文献标志码:A   文章编号:1001-3695(2007)08-0228-03      0引言??      随着Internet的发展和普及,越来越多的汉语工具书上网为汉语学习者提供查询服务。这些网络版工具书内容中经常要显示汉字的笔顺和各种汉字部件(包括偏旁、部首)。由于汉字数量很大,目前的计算机标准汉字字符集中既没有把汉字基本部件字形全部包括进来,也没有把每个汉字的笔画分解形式包括进来。在浏览器中显示汉字笔顺和各种部件时,往往采用flash动画或图片方式来实现。采用flash动画来演示汉字的动态书写过程,效果形象逼真,是一种较好地表现汉字笔顺的方式,但需要对每个汉字单独制作一个flash动画,工作量巨大,而且这些flash动画往往只能以一种固定的方式来显示。例如,只能演示从汉字第一笔一直到最后一笔的笔顺,不能根据需要控制演示过程,如只演示前几笔或后几笔的书写过程无法实现。对于用图片方式来显示汉字部件等字符集外的字形,也存在制作工作量大的问题,而且字形难以控制、管理和共享。例如,要显示“练”字右半部分这个部件,一些地方需要以楷体5号字来显示,而另外一些地方需要以仿宋4号字来显示,用图片实现只能针对两种要求分别制作一个图片,而且图片字形精度往往只能满足显示的要求,打印输出的效果很差。为了解决以上这些问题,改进字形输出效果,本文提出了应用Windows图形引擎GDI+的路径技术,通过编程获取系统TrueType字库中的汉字笔画轮廓数据来自动绘制字形的方法。在该方法基础上再利用组件制作工具很容易构建显示汉字笔顺序列和各种汉字部件的软插件在网页中调用,为各种网络在线汉语工具书的开发提供服务。??      1应用GDI+路径技术自动绘制汉字笔顺、部件的?ぴ?理      1.1GDI+路径技术简介??   1)路径GDI+中的一个路径对象(GraphicsPath)是以图形为元素的一个图形序列。路径中的每个图形既可以是封闭的,也可以是开放的。这里的图形是指若干几何线条(直线、弧线、贝塞尔曲线等)的组合,可以被画出轮廓线和被填充。路径对象建立后,可以通过向路径中追加线条或图形来修改路径。??   2)子路径路径中的每个图形也可被看做路径,称为子路径。添加到路径中的一个封闭图形自然成为一个子路径。也可使用StartFigure和CloseFigure成员函数来约束子路径的范围。StartFigure在不封闭当前图形情况下开始一个新的子路径;CloseFigure将当前图形封闭后开始新的子路径。子路径实质也是一个路径对象。可以把一个复杂的不规则图形对应为路径,再通过子路径对其进行分解处理。??   1.2笔画轮廓数据的获取??   在Windows系统的汉字TrueType字库中,字形轮廓均通过直线和三次贝塞尔曲线构成的图形来描述。其中楷体_GB2312和仿宋_GB2312两个字库是以笔形(笔画)为单位来描述每个汉字的字形,即一个封闭图形对应一个笔画轮廓。因此,通过利用GDI+路径的成员函数AddString,可以将这两个TrueType字库中的字形轮廓数据对应为一个路径对象,汉字中每个笔画就自然对应为一个子路径。通过编程控制路径和子路径的轮廓绘制与填充就可实现汉字笔顺、部件的自动绘制。??   由于这两个字库中只包含了GB2312标准字符集中6 763个汉字的笔画轮廓数据,只能实现集内字形的笔顺及相关部件的绘制。对于一般汉语工具书网络化的应用需求而言,这些字基本还是够用了。??   1.3 汉字笔顺的自动绘制??   通过路径和子路径的绘制来实现自动显示汉字笔顺序列,具体考虑了以下几个方面:   a)尽管楷体_GB2312和仿宋_GB2312字库中的字形数据可以分解成笔画轮廓,但并没有按汉字书写的次序来存储,造成对应到路径中子路径的排列次序也并不是笔顺次序。因此,绘制时要给定排列信息来控制子路径的绘制次序与书写顺序保持一致,这样才能满足按笔顺显示的要求。b)显示笔顺时,根据笔画数决定分解显示的步数,但不同的情况下要求会不一样。有时需要每步只显示一笔,有时需要每步把前几笔都显示出来。因此,要允许根据需要选择每步显示的笔画数和被填充的笔画数。c)还要允许显示笔顺序列的起始位置、字体、字号、颜

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档