2019亚洲日韩新视频_97精品在线观看_国产成人精品一区二区_91精品网站在线观看

DOS界面通用圖形編輯軟件設(shè)計(jì)中國科技核心期刊網(wǎng)

來源:期刊VIP網(wǎng)所屬分類:光電技術(shù)時(shí)間:瀏覽:

  摘要:DOS操作系統(tǒng)是個(gè)人計(jì)算機(jī)上的一類操作系統(tǒng)。從1981年直到1995年的15年間,磁盤操作系統(tǒng)在IBM PC 兼容機(jī)市場中占有舉足輕重的地位。文章發(fā)表在《電子游戲軟件》上,是計(jì)算機(jī)論文發(fā)表范文,供同行參考。

  關(guān)鍵詞:DOS界面,圖形編輯軟件,圖形設(shè)計(jì)

  磁盤操作系統(tǒng)是個(gè)人計(jì)算機(jī)上的一種操作系統(tǒng)附加繼承下來操作系統(tǒng)的載體。從1981年MS-DOS1.0直到1995年MS-DOS7.1的15年間,DOS做為微軟公司在個(gè)人計(jì)算機(jī)上使用的一個(gè)操作系統(tǒng)載體,推出了多個(gè)版本。DOS在IBM PC 兼容機(jī)市場中占有舉足輕重的地位。可以直接操縱管理硬盤的文件,以DOS的形式運(yùn)行。

  目前用作DDC的PC總線工控機(jī)(IPC)大部分工作在DOS界面上,而DOS不具有像Windows那樣美觀方便的圖形用戶接口(GUI)。生成工藝流程圖等復(fù)雜圖形若用程序設(shè)計(jì)語言直接編程需花費(fèi)大量精力和代碼,且不易修改。設(shè)計(jì)出數(shù)據(jù)文件小,占用內(nèi)存少的圖形編輯軟件是控制界的一個(gè)研究課題。這里介紹一種生成圖素?cái)?shù)據(jù)文件的通用圖形編輯軟件的設(shè)計(jì)方法。

  一、數(shù)據(jù)結(jié)構(gòu)與數(shù)據(jù)文件格式

  由于所有的操作都基本建立在圖素的基礎(chǔ)之上,故數(shù)據(jù)結(jié)構(gòu)也以圖素為中心。以下以圓、直線、矩形、字符串為例,其它圖素類似。

  1.定義所需圖素

  二、圖形編輯功能的實(shí)現(xiàn)

  本軟件包含的圖形編輯功能主要有:作圖、修改、移動、刪除、復(fù)制,下面僅舉幾例說明實(shí)現(xiàn)的方法。

  2.圖形的移動、刪除、復(fù)制功能

  以移動為例,首先用箭頭鍵或鼠標(biāo)框取要移動的區(qū)域,區(qū)域矩形的左上,右下坐標(biāo)分別為(block-x1,block-y1),(block-x2,block-y2),然后移動標(biāo)識矩形到要到達(dá)的地方,確定。這樣標(biāo)識矩形的終止位置與初始位置存在一個(gè)偏差,水平與垂直偏差分別為dl-x,dl-y。

  接下來搜索內(nèi)存圖素鏈表,確定每個(gè)圖素的外接矩形,判斷外接矩形是否在初始標(biāo)識矩形內(nèi),若在,則將該圖素的坐標(biāo)屬性值改變dl-x,dl-y。清除圖形區(qū),根據(jù)新的圖素鏈表作圖。

  圖形的刪除功能類似,只需將符合條件的圖素從鏈表中清除,再修改Elementcount值即可。

  拷貝圖形則只需將符合條件的圖素備份一個(gè)結(jié)點(diǎn),修改結(jié)點(diǎn)的坐標(biāo)屬性值,再將該結(jié)點(diǎn)加入鏈表,相應(yīng)增加Elementcount的值。

  三、文件功能的實(shí)現(xiàn)

  存盤時(shí),打開文件,寫入圖形的背景顏色,寫入圖素個(gè)數(shù)Elementcount,再將內(nèi)存鏈表中各圖素的屬性值依次寫入文件即可。

  讀盤時(shí),在內(nèi)存中動態(tài)建立圖素鏈表,將文件中的圖素屬性值依次放入鏈表中,再根據(jù)背景顏色、圖素屬性值在屏幕上顯示圖形。

  存盤過程實(shí)現(xiàn)如下。

  savefile(char * filename)

  {

  FILE *fp;

  int i;

  List-temp=List-head;

  Eid=0;

  if((fp=fopen(filename,"w b"))==NULL)

  {

  printf ("%s", "Cant't open the file ");

  exit(1);

  }

  fwrite(&back-color, sizeof(char),1,fp);

  fwrite(&Elementcount,sizeof(int),1,fp);

  for(i=0;i{ List-temp->ElementID=Eid;

  fwrite(List-temp,sizeof(ElementList),1,fp);

  List-temp=List-temp->next;

  Eid ;

  }

  fclose(fp);

  }

  四、應(yīng)用程序編程接口

  應(yīng)用程序編程接口主要功能是讀圖形文件并顯示,對畫面圖素進(jìn)行動態(tài)刷新。這些接口均以函數(shù)形式出現(xiàn),供控制應(yīng)用程序調(diào)用。

  1.draw-chart (char * filename)功能:讀圖形文件,在內(nèi)存中建立圖素鏈表,顯示圖形。

  2.change-chart(int Element-ID, int how)功能:改變圖素Element-ID的特性,怎樣改變由how決定。該接口能方便地實(shí)現(xiàn)圖形的動態(tài)刷新。

  3.clear-chart( )功能:釋放圖素鏈表占用的內(nèi)存。

  4.draw ( char * filename)功能:不建立鏈表,邊讀圖形文件,邊顯示。該函數(shù)不占用內(nèi)存,適用于圖素多、數(shù)據(jù)文件較大,而又不需動態(tài)刷新的圖形畫面顯示。

  中國科技核心期刊網(wǎng)投稿須知:《電子游戲軟件》是國內(nèi)著名的一家游戲雜志,半月刊,隸屬于次世代傳媒聯(lián)盟,簡稱“電軟”。始創(chuàng)于1994年6月,前身為《GAME集中營》,是中國第一本正式的游戲雜志。在近十年的風(fēng)雨蒼黃中,一直是青少年流行文化的倡導(dǎo)者,一直站在游戲業(yè)發(fā)展的最前端。一貫秉持追求品質(zhì),不斷創(chuàng)新的態(tài)度,博得了廣大讀者的信賴與肯定。

主站蜘蛛池模板: 青神县| 镇原县| 卓尼县| 德清县| 泸州市| 建宁县| 鄂伦春自治旗| 囊谦县| 芜湖市| 南岸区| 南陵县| 油尖旺区| 永川市| 华阴市| 镇江市| 岳西县| 观塘区| 乌拉特前旗| 永胜县| 阳曲县| 巴南区| 临沧市| 石泉县| 永嘉县| 枣庄市| 太和县| 西乌珠穆沁旗| 徐汇区| 和平区| 普兰县| 织金县| 那坡县| 吐鲁番市| 咸阳市| 获嘉县| 兴文县| 吉木乃县| 阳山县| 家居| 阿拉善左旗| 阿拉善左旗|