DOS界面下通用图形编辑软件的设计_计算机论文.docVIP

DOS界面下通用图形编辑软件的设计_计算机论文.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文档。上传文档
查看更多
DOS界面下通用图形编辑软件的设计_计算机论文.doc

DOS界面下通用图形编辑软件的设计_计算机论文 DOS界面下通用图形编辑软件的设计_计算机论文 摘 要 该文介绍了一种建立在DOS界面下生成图素文件的通用图形编辑程序的设计方法。 目前用作DDC的PC总线工控机(IPC)大部分工作在DOS界面上,而DOS不具有像Windows那样美观方便的图形用户接口(GUI)。生成工艺流程图等复杂图形若用程序设计语言直接编程需花费大量精力和代码,且不易修改。设计出数据文件小,占用内存少的图形编辑软件是控制界的一个研究课题。这里介绍一种生成图素数据文件的通用图形编辑软件的设计方法。 一、数据结构与数据文件格式 由于所有的操作都基本建立在图素的基础之上,故数据结构也以图素为中心。以下以圆、直线、矩形、字符串为例,其它图素类似。 1.定义所需图素 struct circle /*定义圆 */ { int x,y,r /* 圆心,半径 */ char linecolor,linestyle /* 圆外围线的颜色,线型 */ char fillcolor,fillstyle /* 填充颜色,模式 */ } struct line /* 定义直线 */ { int x1,y1 int x2,y2 char linecolor,linestyle,linethick /* 线颜色,模式,粗细 */ } struct box /* 定义矩形 */ { int x1,y1 int x2,y2 char linecolor,linestyle char fillcolor,fillstyle } struct string /* 定义字符串 */ { int x,y char str[10] char backcolor,dir char str-color,str-style } . . /* 定义其它图素 */ . 2.将各图素置于一条链表之中 typedef struct tagElementList { char ElementType /* 标识元素类别 */ int ElementID /* 元素标识符,在接口中用来控制其属性 */ union tagElement { struct circle circle struct box box struct string string struct line line . . /* 可在此说明其它元素 */ . }Element struct tagElementList *next }ElementList 利用这种数据结构可在内存中形成一个图素链表,所有操作都可以此链表为基础。 3.定义几个指针,以备各种操作 ElementList *List-head. *List-end,*List-temp, *List-here 4.定义一个全局变量,记录图素个数 static int Elementcount=0 图形文件格式为:第一字节(char),表示整个图形的背景颜色接下来一个字(word),对应于Elementcount,表示图素个数后面是内存链表中每个图素的属性值。 二、图形编辑功能的实现 本软件包含的图形编辑功能主要有:作图、修改、移动、删除、复制,下面仅举几例说明实现的方法。 1.作图 以圆为例,其它图形类似。 drawcircle() { int i char s[20],c int cx,cy,cr int cls,clc,cfc,cfs movecursor() /* 移动光标,确定圆心 */ cx=cursor-x cy=cursor-y movecursor() /* 确定半径 */ cr=(int)sqrt((cursor-x-cx)*(cursor-x-cx)+(cursor-y-cy)*(cursor-y-cy) setcolor(WHITE) circle (cx,cy,cr) /* 画圆 */ cls=selectlinestyle() clc=selectcolor (select-line-color) setcolor(clc) for(i=0i=clsi++) circle(cx,cy,cr-i) cfs=selectfillstyle() cfc=selectcolor(set-fill-color) setfillstyle(cfs.cfc) floodfill(cx,cy,clc) /* 填充 */ temp(ElementList *) malloc(sizeof(ElementList)) temp-gtElementType= c temp-gtElement.circle.x=cx temp-gtElement.circle.y=cy temp-gtElement.circle.r=cr temp-

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档