亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

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

        韓繼英

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

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

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

        1 圖形模式

        1.1 圖形模式概述

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

        1.2 圖形模式設(shè)置

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

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

        說(shuō)明:

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

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

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

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

        1.3 圖形模式下顯示字符

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

        2 實(shí)現(xiàn)圖形程序獨(dú)立運(yùn)行

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

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

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

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

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

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

        registerbgidriver(EGAVGA_driver);

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

        3 實(shí)現(xiàn)簡(jiǎn)單動(dòng)畫(huà)

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

        C語(yǔ)言中有一種邏輯運(yùn)算稱為“異或”運(yùn)算。“異或”運(yùn)算是指操作數(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,所以任何兩種不相同的顏色值進(jìn)行按位異或時(shí),除和黑色進(jìn)行按位異或后結(jié)果為原色外,其余都變成了和這兩種顏色不同的另外一種顏色。因此,在實(shí)現(xiàn)動(dòng)畫(huà)時(shí),可以將兩種顏色值按位進(jìn)行異或,從而模擬這兩種顏色的重疊。即通過(guò)按位異或兩個(gè)圖形中相應(yīng)的像素值來(lái)模擬這兩個(gè)圖形的重疊,從而不用顧及背景色,一直保持他們的可見(jiàn)性。任何一個(gè)數(shù)在和另一個(gè)數(shù)異或兩次后,就可以還原。也就是說(shuō),在繪制圖形時(shí),如果在同一個(gè)坐標(biāo)繪制兩次某個(gè)圖形,則這個(gè)圖形就會(huì)消失,變?yōu)楸尘吧?/p>

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

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

        本例采用異或方式重畫(huà),畫(huà)點(diǎn)開(kāi)銷較小,是繪制動(dòng)畫(huà)最好的選擇。

        4 結(jié)束語(yǔ)

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

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

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

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

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

        猜你喜歡
        人機(jī)界面驅(qū)動(dòng)程序繪制
        Art on coffee cups
        放學(xué)后
        童話世界(2018年17期)2018-07-30 01:52:02
        CBTC系統(tǒng)車載人機(jī)界面的設(shè)計(jì)與實(shí)現(xiàn)
        基于PLC與人機(jī)界面的經(jīng)編機(jī)電子橫移控制系統(tǒng)研究
        CTCS-3級(jí)列控車載人機(jī)界面的系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
        在轉(zhuǎn)變中繪制新藍(lán)圖
        達(dá)人機(jī)界面DOP-B10VS511
        VBA在宗地圖繪制中的應(yīng)用
        驅(qū)動(dòng)程序更新與推薦
        驅(qū)動(dòng)程序更新與推薦
        亚洲国产成人无码电影| 欧美日韩一区二区综合 | 日韩毛片在线看| 国产亚洲av手机在线观看| 日韩一区二区三区精品视频| 国产产区一二三产区区别在线| av大片在线无码免费| 日本岛国大片不卡人妻| 尤物国产一区二区三区在线观看| 99久久99久久精品免费看蜜桃| 亚洲国产高清在线观看视频| 久久无码中文字幕东京热| 久久久亚洲免费视频网| 久久久亚洲av成人网站 | 九九在线精品视频xxx| 久久国产精品国语对白| 日日躁夜夜躁狠狠躁| 精品无码国产污污污免费网站 | 日本高清在线播放一区二区| 久久久久人妻一区二区三区| 欧美性大战久久久久久久| 欧洲AV秘 无码一区二区三 | 久久中文骚妇内射| 97影院在线午夜| 国产 无码 日韩| 中国老熟女露脸老女人| 蜜桃无码一区二区三区| 无码国产精品一区二区免费网曝| 国产精品午夜高潮呻吟久久av | 亚洲av成人无网码天堂| 国产成人精品久久亚洲高清不卡| aaaaa级少妇高潮大片免费看 | 精品黄色国产一区二区| 免费看男女做羞羞的事网站| 免费人成黄页在线观看视频国产| 亚洲国产精品午夜一区| 日本xxxx色视频在线观看 | 国产偷国产偷高清精品| 扒开女性毛茸茸的视频| 性饥渴的农村熟妇| 欧美另类在线视频|