| 网站首页 | 范文 | 演讲致词 | 汇报体会 | 总结报告 | 公文方案 | 领导讲话 | 党建工会 | 论文 | 文档 | 书信 | 
您现在的位置: 范文大全网 >> 论文 >> 计算机论文 >> 正文 用户登录 新用户注册
DOS界面下通用图形编辑软件的设计           ★★★
DOS界面下通用图形编辑软件的设计
2),然后移动标识矩形到要到达的地方,确定。这样标识矩形的终止位置与初始位置存在一个偏差,水平与垂直偏差分别为dl-x,dl-y。 接下来搜索内存图素链表,确定每个图素的外接矩形,判断外接矩形是否在初始标识矩形内,若在,则将该图素的坐标属性值改变dl-x,dl-y。清除图形区,根据新的图素链表作图。 图形的删除功能类似,只需将符合条件的图素从链表中清除,再修改elementcount值即可。 拷贝图形则只需将符合条件的图素备份一个结点,修改结点的坐标属性值,再将该结点加入链表,相应增加elementcount的值。 以下为移动图形的代码。 fnmove () { rect rect; /* 定义的矩形 */ int i; selectblock (); /* 选择要移动的块 */ moveblock (); /* 移动块 */ list-temp=list-head; for (i=0;i<elementcount; i++) { getrect (&rect, list-temp); /* 计算list-temp所指图素的外接矩形 */ if (inblock(rect.x1,rect.x2,rect.y1.rect.y2)) /* 判断外接矩形是否在所选块内 */ change (list-temp, dl-x,dl-y); /* 改变图素的坐标属性 */ list-temp=list-temp->next; } clearscreeen (); /* 清除作图区 */ drawlink (); /* 依据图素链表画图 */ } 其中,change ( )可以实现如下。 change(elementlist *ctemp, int dl-x,int dl-y) { switch (ctemp->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.box.y2+=dl-y; break; case l: ctemp->element.line.x1+=dl-x; ctemp->element.line.y1+=dl-y; ctemp->element.line.x2+=dl-x; ctemp->element.line.y2+=dl-y; break; case s: ctemp->element.string.x+=dl-x; ctemp->element.string.y+=dl-y; break; . . . } } 三、文件功能的实现 存盘时,打开文件,写入图形的背景颜色,写入图素个数elementcount,再将内存链表中各图素的属性值依次写入文件即可。 读盘时,在内存中动态建立图素链表,将文件中的图素属性值依次放入链表中,再根据背景颜色、图素属性值在屏幕上显示图形。 存盘过程实现如下。 savefile(char * filename) { file *fp; int i; list-temp=list-head; eid=0; if((fp=fopen(filename,w+b))==null) { printf (%s, cantt open the file ); exit(1); } fwrite(&back-color, sizeof(char),1,fp); fwrite(&elementcount,sizeof(int),1,fp); for(i=0;i<elementcount;i++) { list-temp->elementid=eid; fwrite(list-temp,sizeof(elementlist),1,fp); list-temp=list-temp->next; eid++; } fclose(fp); } 四、应用程序编程接口 应用程序编程接口主要功能是读图形文件并显示,对画面图素进行动态刷新。这些接口均以函数形式出现,供控制应用程序调用。 1.draw-chart (char * filename)功能:读图形文件,在内存中建立图素链表,显示图形。 2.change-chart(int element-id, int how)功能:改变图素element-id的特性,怎样改变由how决定。该接口能方便地实现图形的动态刷新。 3.clear-chart( )功能:释放图素链表占用的内存。 4.draw ( char * filename)功能:不建立链表,边读图形文件,边显示。该函数不占用内存,适用于图素多、数据文件较大,而又不需动态刷新的图形画面显示。 作者:汪建平 陆志才

上一页  [1] [2] 

  • 上一个论文:

  • 下一个论文:


  • 看了《DOS界面下通用图形编辑软件的设计》的网友还看了:
    [免费范文]LabWindows/CVI的应用特点
    [免费范文]基于RRAS与虚拟专用网技术在Windows中的实现
    [今日更新]Windows8是微软的翻身之战
    [今日更新]Windows8 LOGO发布,经典Windows LOGO回顾
    [今日更新]《Windows XP》学习中的几种任务的创设
    [今日更新]浅谈单机Windows操作系统的安装方法
    [今日更新]Linux与Windows的安全性能比较
    [今日更新]英文寓言The Shadow of the Leader
    [今日更新]ETOS,毫不逊色的国产操作系统
    [今日更新]让Windows操作系统实现自动化操作

    计算机论文
    普通论文用Action script动作脚本制作fla
    普通论文EC、ERP、CRM集成初探
    普通论文修井作业现场3G网络视频监控系统
    普通论文浅析关于RSA肋数字签召算法肋设计
    普通论文浅谈高校网络化就业指导工作中的
    普通论文浅谈报告书数据表编写及排版中的
    普通论文校园网安全探讨
    普通论文浅析局域网计算机的网络维护
    普通论文浅析AUTONOMIA作为一种重要的自主
    普通论文深入分析ARP协议的理论与实践
    普通论文论软件项目管理的现状分析和对策
    普通论文试论计算机辅助审计在税收征管审
    论文
    普通论文[企业管理]浅议注册会计师法律责任
    普通论文[今日更新]2011年春节新年祝福短信
    普通论文[今日更新]《呼啸山庄》的凄绝之爱
    普通论文[今日更新]对双语类学生汉语作文写
    普通论文[法律论文]浅谈美国有限合伙法中合
    普通论文[免费范文]学院工会工作报告
    普通论文[今日更新]我觉得您怎么看怎么像我
    普通论文[工程建筑]浅谈高速公路路基填筑监
    范文大全
    普通范文[范文大全]乡镇人大职能建设论文
    普通范文[范文大全]居民小组新农村建设状况
    普通范文[范文大全]县公路交通防汛工作汇报
    普通范文[范文大全]元旦黑板报、手抄报素材
    普通范文[范文大全]在第三次全团加强基层组
    普通范文[科学发展观]报社科学发展观活动学习
    普通范文[范文大全]财政科学化精细化管理经
    普通范文[范文大全]项目开工剪彩致辞
    演讲致词
    普通演讲[会议发言稿]在全市生猪产业工作会上的
    普通演讲[节日祝福语]2009圣诞节、元旦、新年祝
    普通演讲[竞聘演讲稿]电力局经营部副部长竞聘演
    普通演讲[会议发言稿]五四青年节青年才艺和技能
    普通演讲[节日祝福语]2010年国庆节给领导的祝福
    普通演讲[庆典致辞]在***县税务学会成立大会上
    工作范文
    普通党建工会[政府政务]县领导在全县土地三项整治
    普通公文方案[申报材料]2007年教师个人工作总结(
    普通总结[工作总结]09年民航安检个人年终工作
    普通总结[工作总结]电影放映师个人工作总结
    普通汇报体会[先进事迹材料]党员先锋岗先进事迹材料
    普通公文方案[公文写作]韩国企业文化*:员工关系决
    普通汇报体会[心得体会]大学生学习十八大感想
    普通公文方案[公文写作]2007年教育局**述职报告
    普通公文方案[活动方案]粮库安全工作管理责任书
    普通总结[工作计划]某市2010年农业农村工作要
    普通总结[个人总结]继续教育培训个人总结
    普通公文方案[公文写作]2007年农业和农村经济的基