- 相關(guān)推薦
DOS界面下通用圖形編輯軟件的設計
摘 要 該文介紹了一種建立在DOS界面下生成圖素文件的通用圖形編輯程序的設計方法。
目前用作DDC的PC總線工控機(IPC)大部分工作在DOS界面上,而DOS不具有像Windows那樣美觀方便的圖形用戶接口(GUI)。生成工藝流程圖等復雜圖形若用程序設計語言直接編程需花費大量精力和代碼,且不易修改。設計出數(shù)據(jù)文件小,占用內(nèi)存少的圖形編輯軟件是控制界的一個研究課題。這里介紹一種生成圖素數(shù)據(jù)文件的通用圖形編輯軟件的設計方法。
一、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)文件格式
由于所有的操作都基本建立在圖素的基礎之上,故數(shù)據(jù)結(jié)構(gòu)也以圖素為中心。以下以圓、直線、矩形、字符串為例,其它圖素類似。
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;
利用這種數(shù)據(jù)結(jié)構(gòu)可在內(nèi)存中形成一個圖素鏈表,所有操作都可以此鏈表為基礎。
3.定義幾個指針,以備各種操作
ElementList *List-head. *List-end,*List-temp, *List-here;
4.定義一個全局變量,記錄圖素個數(shù)
static int Elementcount=0;
圖形文件格式為:第一字節(jié)(char),表示整個圖形的背景顏色;接下來一個字(word),對應于Elementcount,表示圖素個數(shù);后面是內(nèi)存鏈表中每個圖素的屬性值。
二、圖形編輯功能的實現(xiàn)
本軟件包含的圖形編輯功能主要有:作圖、修改、移動、刪除、復制,下面僅舉幾例說明實現(xiàn)的方法。
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); /*
[1] [2] [3]
【DOS界面下通用圖形編輯軟件的設計】相關(guān)文章:
交互設計在軟件界面中的應用04-27
DOS命令04-29
界面04-30
人機界面設計的原則04-29
網(wǎng)絡模式下的編輯流程04-26
淺議傳統(tǒng)圖形對現(xiàn)代圖形設計的影響04-29
圖形負荷下的字音匹配加工05-01
界面設計師崗位職責05-05
DOS的特點電腦資料11-01
圖形的旋轉(zhuǎn)教案設計通用8篇01-29