dos界面下通用图形编辑软件的设计(1)的论文

dos界面下通用图形编辑软件的设计(1)的论文

ID:9743172

大小:62.00 KB

页数:4页

时间:2018-05-07

dos界面下通用图形编辑软件的设计(1)的论文_第1页
dos界面下通用图形编辑软件的设计(1)的论文_第2页
dos界面下通用图形编辑软件的设计(1)的论文_第3页
dos界面下通用图形编辑软件的设计(1)的论文_第4页
资源描述:

《dos界面下通用图形编辑软件的设计(1)的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、DOS界面下通用图形编辑软件的设计(1)的论文摘要该文介绍了一种建立在dos界面下生成图素文件的通用图形编辑程序的设计方法。目前用作ddc的pc总线工控机(ipc)大部分工作在dos界面上,而dos不具有像entlist{charelementtype;/*标识元素类别*/intelementid;/*元素标识符,在接口中用来控制其属性*/uniontagelement{structcirclecircle;structboxbox;structstringstring;structlineline;../*可在此说明其它元素*/.}element;st

2、ructtagelementlist*next;}elementlist;利用这种数据结构可在内存中形成一个图素链表,所有操作都可以此链表为基础。.3.定义几个指针,以备各种操作elementlist*list-head.*list-end,*list-temp,*list-here;4.定义一个全局变量,记录图素个数staticintelementcount=0;图形文件格式为:第一字节(char),表示整个图形的背景颜色;接下来一个字(entcount,表示图素个数;后面是内存链表中每个图素的属性值。二、图形编辑功能的实现本软件包含的图形编辑功能主要

3、有:作图、修改、移动、删除、复制,下面仅举几例说明实现的方法。1.作图以圆为例,其它图形类似。draovecursor();/*移动光标,确定圆心*/cx=cursor-x;cy=cursor-y;movecursor();/*确定半径*/cr=(int)sqrt((cursor-x-cx)*(cursor-x-cx)+(cursor-y-cy)*(cursor-y-cy);setcolor(p(elementlist*)malloc(sizeof(elementlist));temp->elementtype='c';temp->element.cir

4、cle.x=cx;temp->element.circle.y=cy;temp->element.circle.r=cr;temp->element.circle.lcolor=clc;temp->element.circle.lstyle=cls;temp->element.circle.fcolor=cfc;temp->element.circle.fstyle=cfs;addtolist(temp);/*将图素加入图素链表*/}其中addtolist()可以如下实现:addtolist(elementlist*etemp){if(list-head

5、==null){list-head=etemp;list-end=etemp;}else{list-end->next=etemp;list-end=etemp;etemp->next=null;}elementcount++;}2.图形的移动、删除、复制功能以移动为例,首先用箭头键或鼠标框取要移动的区域,区域矩形的左上,右下坐标分别为(block-x1,block-y1),(block-x2,block-y2),然后移动标识矩形到要到达的地方,确定。这样标识矩形的终止位置与初始位置存在一个偏差,水平与垂直偏差分别为dl-x,dl-y。接下来搜索内存图素

6、链表,确定每个图素的外接矩形,判断外接矩形是否在初始标识矩形内,若在,则将该图素的坐标属性值改变dl-x,dl-y。清除图形区,根据新的图素链表作图。图形的删除功能类似,只需将符合条件的图素从链表中清除,再修改elementcount值即可。拷贝图形则只需将符合条件的图素备份一个结点,修改结点的坐标属性值,再将该结点加入链表,相应增加elementcount的值。以下为移动图形的代码。fnmove(){rectrect;/*定义的矩形*/inti;selectblock();/*选择要移动的块*/moveblock();/*移动块*/list-temp=

7、list-head;for(i=0;inext;}clearscreeen();/*清除作图区*/draentlist*ctemp,intdl-x,intdl-y){sp->elementtype){case'c':ctemp->element.circle.x+=dl-x;ctemp->element.circle.y+=dl-y;break;case'b':ctemp->element.box.x1+=dl-x;ctemp->element.box.x2+=dl-x;ctemp->element.box.y1+=dl-y;ctemp->element

8、.box.y2+=dl-y;break;case'l':ctemp->eleme

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。