• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      關(guān)于C語言可視化人機界面實現(xiàn)方法研究

      2014-05-12 03:14:54韓繼英
      山西電子技術(shù) 2014年2期
      關(guān)鍵詞:人機界面驅(qū)動程序繪制

      韓繼英

      (山西職業(yè)技術(shù)學(xué)院計算機工程系,山西太原030006)

      C語言是一種功能強大的計算機程序設(shè)計語言,它具有很強的數(shù)據(jù)處理能力,應(yīng)用范圍廣泛,不僅可以編寫系統(tǒng)軟件,而且還可以通過繪制三維、二維圖像以及動畫來實現(xiàn)可視化人機界面。

      通常在C語言中使用頻率最高的輸出函數(shù)printf(),只能輸出文本信息,不能實現(xiàn)繪圖功能。為了實現(xiàn)這一功能,C語言的標(biāo)準(zhǔn)函數(shù)庫還提供了一個功能強大的圖形函數(shù)庫,包含了所有的圖形函數(shù)。當(dāng)程序中需要使用到任何一個或多個圖形函數(shù)時,都必須包含頭文件graphics.h,而且這些圖形函數(shù)都必須在特定的圖形模式下才能使用。但C語言的默認(rèn)模式是文本模式,在文本模式中,圖形函數(shù)無法實現(xiàn)其功能,因此,必須先將計算機模式調(diào)整為圖形模式。在圖形模式下,我們可以通過圖形函數(shù)實現(xiàn)可視化人機界面[1]。

      1 圖形模式

      1.1 圖形模式概述

      文本模式顯示數(shù)據(jù)的最小單位是字符,屏幕被劃分為80列25行;而圖形模式是以顯示器屏幕上的每個發(fā)光點即象素為顯示數(shù)據(jù)的最小單位的[2]。在此模式下,顯示器屏幕上的象素數(shù)目是根據(jù)顯示器的分辨率確定的。例如:分辨率為1 024×768,則屏幕被劃分為768行1 024列,即每行有768個象素,每列有1 024個象素。一般情況下,顯示器分辨率越高,象素越多,則顯示的圖形效果就越精確,越光滑。

      1.2 圖形模式設(shè)置

      在使用C語言的圖形功能時,首先要將屏幕設(shè)置為圖形模式,如不做此項工作,則屏幕的初始模式為文本模式,無法顯示圖形。將屏幕設(shè)置成圖形模式由函數(shù)initgraph()來完成,此函數(shù)包含在頭文件graphics.h中,因此在使用時要將該文件包含到程序中。在完成圖形功能后用closegraph語句關(guān)閉圖形模式,使屏幕返回到初始的文本模式。

      下面的程序給出了繪制圖形所需的必要操作,本程序在完成屏幕初始化后,畫了一條從左上角到右下角的直線。

      說明:

      (1)程序中定義了gdriver和gmode,并給 gdriver賦值DETECT,表示讓硬件自動監(jiān)測圖形驅(qū)動器與模式。

      (2)initgraph()函數(shù)是初始化屏幕圖形模式,""中應(yīng)指明屏幕圖形模式驅(qū)動程序所在的位置,如:"c:\borlandc\bgi",如當(dāng)前目錄包含該驅(qū)動程序時,可省略為:"",我們使用的驅(qū)動程序為EGAVGA.BGI,該驅(qū)動程序支持640×480分辨率16種顏色,分別用0~15表示*/

      (3)line()函數(shù)是畫直線函數(shù),此程序中從左上角點(0,0)到右下角點(getmaxx(),getmaxy())畫了一條直線。

      (4)closegraph()函數(shù)是關(guān)閉圖形模式,退回到文本模式。

      1.3 圖形模式下顯示字符

      圖形模式下,有時也需要顯示字符,我們還能夠使用文件模式下的輸出函數(shù)printf()以及字符處理函數(shù)putchar()、puts(),將文本信息輸出到屏幕上。除此之外,C語言圖形函數(shù)庫還提供了專門用在圖形模式下輸出文本的一些函數(shù),如outtextxy()等。對于輸出的文本,還可以利用圖形函數(shù)對其進行大小和顏色的設(shè)置。settextstyle()函數(shù)可以使文本在水平和垂直方向上放大相同的倍數(shù);setusercharsize()函數(shù)可以分別設(shè)置水平和垂直方向上的放大倍數(shù);setcolor()函數(shù)可以對輸出文本的顏色進行設(shè)置。

      2 實現(xiàn)圖形程序獨立運行

      在圖形模式設(shè)置時,需要有相應(yīng)的BGI文件,因此在將圖形模式下編寫好的程序復(fù)制到其他用戶計算機,根本無法正常運行。必須將所有的BGI文件一起復(fù)制給用戶,并且還要考慮路徑是否存在問題。因此我們需要建立一個不需要驅(qū)動程序就可以獨立運行的可以執(zhí)行圖形程序的有效方法,具體實現(xiàn)步驟如下:

      1)使用命令:C:TC>BGIOBJEGAVGA

      把原有的 EGAVGA.BGI驅(qū)動程序轉(zhuǎn)換為 EGAVGA。OBJ目標(biāo)文件。

      2)使用命令:C:TC>TLINK C:TCLIBGRAPHICS.LIB+EGAVGA

      把已經(jīng)建立的OBG目標(biāo)文件裝入到GRAPHICS.LIB庫文件中。

      3)為了能夠通知連接程序?qū)GAVGA驅(qū)動程序在連接時可以裝入到用戶的執(zhí)行程序中,應(yīng)在調(diào)用initgraph()函數(shù)前面加上語句:

      registerbgidriver(EGAVGA_driver);

      應(yīng)用上面方法處理以后,經(jīng)過編譯連接生成的執(zhí)行程序就能夠在任意目錄下運行了。

      3 實現(xiàn)簡單動畫

      由于人的眼睛在視覺訊號分辨時,都會出現(xiàn)視覺暫留現(xiàn)象。醫(yī)學(xué)證明:當(dāng)一個物體的影象或者一幅畫面消失后,留在人眼睛視網(wǎng)膜上的映像還可以保留1/24秒。動畫、電視以及電影都是利用了人的這一視覺暫留特性,快速地顯示一連串圖形,并在每張圖形上做一些小小的修改,從而達(dá)到動畫的效果。

      C語言中有一種邏輯運算稱為“異或”運算。“異或”運算是指操作數(shù)1與操作數(shù)2的非同操作數(shù)1的非與操作數(shù)2的或的結(jié)果。例如:

      0異或0=0

      1異或0=1

      0異或1=1

      1異或1=0

      由于0異或1結(jié)果為1,所以任何兩種不相同的顏色值進行按位異或時,除和黑色進行按位異或后結(jié)果為原色外,其余都變成了和這兩種顏色不同的另外一種顏色。因此,在實現(xiàn)動畫時,可以將兩種顏色值按位進行異或,從而模擬這兩種顏色的重疊。即通過按位異或兩個圖形中相應(yīng)的像素值來模擬這兩個圖形的重疊,從而不用顧及背景色,一直保持他們的可見性。任何一個數(shù)在和另一個數(shù)異或兩次后,就可以還原。也就是說,在繪制圖形時,如果在同一個坐標(biāo)繪制兩次某個圖形,則這個圖形就會消失,變?yōu)楸尘吧?/p>

      因此,我們可以很輕松地利用異或技術(shù)來實現(xiàn)簡單動畫過程。先在屏幕上用某種顏色采用異或方式繪制一幅圖,接著在同一個位置采用異或方式再畫一次,將該圖抹掉,然后根據(jù)運動軌跡在新的位置采用異或方式繪制第二幅圖,同樣再用異或方式繪制一次,將此畫面消失,如此反復(fù),直到繪制完最后一幅圖為止[3]。在這個過程中,每幅畫都繪制了兩次,一次顯示,一次擦除,只是每幅畫的位置有所不同。

      下面是應(yīng)用異或方式實現(xiàn)繪制一個運動的圓的例子。

      本例采用異或方式重畫,畫點開銷較小,是繪制動畫最好的選擇。

      4 結(jié)束語

      本文主要是研究了在C語言的圖形模式下,利用圖形函數(shù),采用異或方式,較好地實現(xiàn)了可視化人機界面[4]。這種方式操作方便,易于理解,是解決可視化人機界面有效的一種方式。

      [1]楊寶華,袁志樹,文昌辭.應(yīng)用軟件人機界面優(yōu)化的研究[J].電腦知識與技術(shù),2009(18):4817-4818.

      [2]王士元.C高級適用程序設(shè)計[M].北京:清華大學(xué)出版社,2001.

      [3]程書紅,王毅.用C語言實現(xiàn)圖形動畫設(shè)計[J].電腦開發(fā)與應(yīng)用,2010,23(2):78 -80.

      [4]蔡青,蔡華.可視化技術(shù)及其發(fā)展[N].計算機世界網(wǎng),1996-06-13.

      猜你喜歡
      人機界面驅(qū)動程序繪制
      Art on coffee cups
      放學(xué)后
      童話世界(2018年17期)2018-07-30 01:52:02
      CBTC系統(tǒng)車載人機界面的設(shè)計與實現(xiàn)
      基于PLC與人機界面的經(jīng)編機電子橫移控制系統(tǒng)研究
      CTCS-3級列控車載人機界面的系統(tǒng)設(shè)計與實現(xiàn)
      在轉(zhuǎn)變中繪制新藍(lán)圖
      達(dá)人機界面DOP-B10VS511
      VBA在宗地圖繪制中的應(yīng)用
      驅(qū)動程序更新與推薦
      驅(qū)動程序更新與推薦
      红安县| 京山县| 宜丰县| 吉林市| 菏泽市| 仁布县| 昔阳县| 五莲县| 盐亭县| 西盟| 五指山市| 屏山县| 罗城| 阿图什市| 岐山县| 托克逊县| 青海省| 高邑县| 清河县| 二连浩特市| 建湖县| 大石桥市| 武安市| 刚察县| 贵定县| 泸溪县| 汤原县| 疏勒县| 苍梧县| 井冈山市| 太谷县| 济南市| 寻甸| 巴中市| 东海县| 通江县| 樟树市| 增城市| 景谷| 星座| 镇江市|