论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
DOS界面下通用图形编辑软件的设计(1)

摘 要 该文介绍了一种建立在ds界面下生成图素文件的通用图形编辑程序的设计方法。
目前用作dd的p总线工控机(ip)大部分工作在ds界面上,而ds不具有像inds那样美观方便的图形用户接口(gui)。生成工艺流程图等复杂图形若用程序设计语言直接编程需花费大量精力和代码,且不易修改。设计出数据文件小,占用内存少的图形编辑软件是控制界的一个研究课题。这里介绍一种生成图素数据文件的通用图形编辑软件的设计方法。
一、数据结构与数据文件格式
由于所有的操作都基本建立在图素的基础之上,故数据结构也以图素为中心。以下以圆、直线、矩形、字符串为例,其它图素类似。
1.定义所需图素
strut irle /*定义圆 */
{
int x,y,r; /* 圆心,半径 */
har linelr,linestyle; /* 圆外围线的颜色,线型 */
har filllr,fillstyle; /* 填充颜色,模式 */
};
strut line /* 定义直线 */
{
int x1,y1;
int x2,y2;
har linelr,linestyle,linethik; /* 线颜色,模式,粗细 */
};
strut bx /* 定义矩形 */
{
int x1,y1;
int x2,y2;
har linelr,linestyle;
har filllr,fillstyle;
};
strut string /* 定义字符串 */
{
int x,y;
har str[10]
har baklr,dir;
har str-lr,str-style;
};
.
. /* 定义其它图素 */
.
2.将各图素置于一条链表之中
typedef strut tageleentlist
{
har eleenttype; /* 标识元素类别 */
int eleentid; /* 元素标识符,在接口中用来控制其属性 */
unin tageleent {
strut irle irle;
strut bx bx;
strut string string;
strut line line;
.
. /* 可在此说明其它元素 */
.
}eleent;
strut tageleentlist *next;
}eleentlist;
利用这种数据结构可在内存中形成一个图素链表,所有操作都可以此链表为基础。
3.定义几个指针,以备各种操作
eleentlist *list-head. *list-end,*list-tep, *list-here;
4.定义一个全局变量,记录图素个数
stati int eleentunt=0;
图形文件格式为:第一字节(har),表示整个图形的背景颜色;接下来一个字(rd),对应于eleentunt,表示图素个数;后面是内存链表中每个图素的属性值。
二、图形编辑功能的实现
本软件包含的图形编辑功能主要有:作图、修改、移动、删除、复制,下面仅举几例说明实现的方法。
1.作图
以圆为例,其它图形类似。
drairle()
{
int i;
har s[20],;
int x,y,r;
int ls,l,f,fs;
veursr(); /* 移动光标,确定圆心 */
x=ursr-x;
y=ursr-y;
veursr(); /* 确定半径 */
r=(int)sqrt((ursr-x-x)*(ursr-x-x)+(ursr-y-y)*(ursr-y-y);
setlr(hite);
irle (x,y,r); /* 画圆 */
ls=seletlinestyle();
l=seletlr ("selet-line-lr");
setlr(l);
fr(i=0;i<=ls;i++)
irle(x,y,r-i);
fs=seletfillstyle();
f=seletlr("set-fill-lr");
setfillstyle(fs.f);
fldfill(x,y,l); /* 填充 */
tep(eleentlist *) all(sizef(eleentlist));
tep->eleenttype= '';
tep->eleent.irle.x=x;
tep->eleent.irle.y=y;
tep->eleent.irle.r=r;
tep->eleent.irle.llr=l;
tep->eleent.irle.lstyle=ls;
tep->eleent.irle.flr=f;
tep->eleent.irle.fstyle=fs;
addtlist(tep); /* 将图素加入图素链表 */
}
其中 addtlist ()可以如下实现:
addtlist (eleentlist *etep)
{
if(list-head==null)
{
list-head=etep;
list-end=etep;
}
else
{ list-end->next=etep;
list-end=etep;
etep->next=null;
}
eleentunt++;
}
2.图形的移动、删除、复制功能
以移动为例,首先用箭头键或鼠标框取要移动的区域,区域矩形的左上,右下坐标分别为(blk-x1,blk-y1),(blk-x2,blk-y2),然后移动标识矩形到要到达的地方,确定。这样标识矩形的终止位置与初始位置存在一个偏差,水平与垂直偏差分别为dl-x,dl-y。

未完...点击下方链接下载完整文档

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

摘 要 该文介绍了一种建立在ds界面下生成图素文件的通用图形编辑程序的设计方法。 目前用作dd的p总线工控机(ip)大部分工作在ds界面上,而ds不具有像inds那样美观方便的图形用户接口(gui)。生成工艺流程图等复杂图形若用程序设计语言直接编程需花费大量精力和
  • 上一篇:会议中心系统设计方案(1)
  • 下一篇:供配电系统集成设计软件(1)
  • 某智能绝缘电阻检测仪的软件设计
    图书仓库管理系统的设计(1)
    信息系统开发中面向对象软件工程
    试析C语言零缺陷编程方法研究
    嵌入式图形用户界面在S3C44B0X上
    浅谈卓越软件工程人才的培养
    电子商务下的中国租赁业发展空间
    黄河拉西瓦水电站安全监测分析系
    基于VPN技术的货运源头治超系统
    谈软件工程基本原理在电子商务网
    供配电系统集成设计软件(1)
    任务驱动教学法在《办公软件》教
    网络环境下的新型软件开发方法—
    ERP系统软件在国家电网公司中的
    地方院校软件工程校企合作 实训
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

    Copyright 2006-2020 © 论文天下 All rights reserved 本站所有内容均由SPider自动索引,如有侵权请联系QQ:2486851删除