论文天下|会计论文|管理论文|计算机论文|医药学论文|经济学论文|法学论文|社会学论文|文学论文|教育论文|理科论文|工科论文|艺术论文|哲学论文|文化论文|外语论文|格式论文
论文天下
计算机应用论文  计算机理论论文  计算机网络论文  电子商务论文  软件工程论文  操作系统论文  通信技术论文   
DOS界面下通用图形编辑软件的设计
   摘 要 该文介绍了一种建立在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.图形的移动、删除、复制功能

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

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

摘 要 该文介绍了一种建立在DS界面下生成图素文件的通用图形编辑程序的设计方法。 目前用作DD的P总线工控机(IP)大部分工作在DS界面上,而DS不具有像inds那样美观方便的图形用户接口(GUI)。生成工艺流程图等复杂图形若用程序设计语言直接编程需花费大量精力和
  • 上一篇:在TVGA上实现全屏幕动画
  • 下一篇:也谈硬盘参数测试t2gg
  • 物联网对计算机通信网络的影响
    计算机通信与网络课程中网络资源
    浅论光纤通信技术的特点和发展趋
    windows nt环境下fddi网卡驱动程
    《通信原理》的系统教学法
    小议第三代移动通信及发展趋势预
    关于低压电力线载波通信技术的研
    海拉尔通信段ZXA10综合接入网常
    基于GPRS的无线智能家居系统方案
    论3G技术打造“高起点、高质量、
    试析计算机通信网络安全及防护对
    数字移动多媒体案例分析
    信息时代计算机通信技术的应用
    局域网中的通信协议
    关于通信工程设计项目组织结构评
    通用子目录文件显示方法
    在DOS实模式下直接存取4GB内存
    混合系统中通用计算机通信程序
    通用子目录文件显示方法
    | 设为首页 | 加入收藏 | 联系我们 | 论文发表

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