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

        ?

        C語言實(shí)現(xiàn)可視化人機(jī)界面的有效方法研究

        2017-05-22 21:28:04孫煉

        孫煉

        摘要:C語言當(dāng)前最主流的結(jié)構(gòu)化程序設(shè)計(jì)語言,在當(dāng)前的軟件編程中用處比較廣泛,怎樣使用C語言發(fā)揮動(dòng)畫以及圖像輸出的功能是我們需要重點(diǎn)研究的課題內(nèi)容。本文中設(shè)置了計(jì)算機(jī)的相關(guān)圖形模式,并且構(gòu)建了相對(duì)獨(dú)立的圖形程序,探究了C語言輸出圖像的整個(gè)過程,并且探討了制作簡單動(dòng)畫的具體方法和思路,希望為相關(guān)人士提供必要的借鑒。

        關(guān)鍵詞:C語言;人機(jī)界面;有效方法

        0前言

        C語言是一個(gè)具有強(qiáng)大功能的計(jì)算機(jī)編程語言,并且能夠進(jìn)行有效的數(shù)據(jù)處理,有著十分廣泛的應(yīng)用和實(shí)踐。一方面利用C語言可以制作多種系統(tǒng)軟件,另一方面利用C語言能夠繪制動(dòng)畫、二維圖像以及三維圖像,進(jìn)而構(gòu)成人機(jī)界面。一般來說,輸出函數(shù)printf()只可以輸出特定的文本信息,沒有繪圖的功能。所以在C語言標(biāo)準(zhǔn)中,為了達(dá)到繪圖的目的,其標(biāo)準(zhǔn)函數(shù)庫中包含了一個(gè)功能強(qiáng)大的圖形函數(shù)庫。通過圖形模式的操作,能夠利用圖形函數(shù)制作可視化人機(jī)界面。

        1設(shè)置C語言圖形模式

        想要使用C語言的圖形繪制功能,首先需要使用一個(gè)頭文件,在其中我們可以看到許多有用的圖形繪制函數(shù)。但是這些函數(shù)并不是可以直接使用,需要先把屏幕設(shè)置成圖形模式才可以進(jìn)行。

        屏幕剛開始默認(rèn)是文本模式(25行,80列字符模式),需要操作顯示卡才能繼續(xù)。這里所說的顯示卡,其實(shí)是顯示適配器的一般程序,對(duì)于不同規(guī)格的顯示適配器來說,具有各不相同的圖形分辨率以及色彩種數(shù)。在利用圖形函數(shù)開始做圖之前,需要在graphics.h圖形函數(shù)庫中選擇一個(gè)合適的函數(shù),選擇initgraph()函數(shù),而后依據(jù)顯示適配器的具體種類和參數(shù)將其設(shè)定成特定的圖形模式。

        需要注意的是,在程序的最開始需要加一個(gè)#include。但是相應(yīng)的驅(qū)動(dòng)程序路徑需要對(duì)應(yīng)正確的初始化圖形語句,如果沒有對(duì)應(yīng),相應(yīng)的程序就會(huì)無法找到對(duì)應(yīng)的圖形驅(qū)動(dòng)文件,也就不能在圖形模式下開始運(yùn)行。此時(shí),在顯示器上會(huì)出現(xiàn)這樣的錯(cuò)誤提示信息。

        BGI Error:(use initagraph)Graphics not initialized

        以下筆者通過一個(gè)常見的例子來解釋這個(gè)問題:

        #include/*這里是圖形標(biāo)準(zhǔn)函數(shù)頭文件*/

        Intmain()

        {

        Initgraph;/*圖形模式初始化/

        gdriver=DETECT;/*把相應(yīng)的圖形驅(qū)動(dòng)器設(shè)置為自動(dòng)測(cè)量*/

        Int gdriver,gmode;/*對(duì)圖形驅(qū)動(dòng)器的相應(yīng)變量進(jìn)行定義*/

        Getch();

        Line(200,200,100,100);/*進(jìn)行畫線*/

        Closegraph();/*把相應(yīng)的圖形模式關(guān)閉*/

        return 0:

        }

        以下是對(duì)這個(gè)程序的說明:

        第一點(diǎn):關(guān)于gdriver,這是個(gè)開始要求設(shè)置的特定圖形驅(qū)動(dòng)器,相應(yīng)的gmode就是和這種驅(qū)動(dòng)器對(duì)應(yīng)的。如果把gdriver設(shè)置成DETECT,計(jì)算機(jī)硬件就會(huì)自動(dòng)地檢測(cè)模式和圖形驅(qū)動(dòng)器,這樣的效率比較低。

        第二點(diǎn):在特定情況下,比如C:\\下有當(dāng)前目錄,c:\\下有bgi文件,相應(yīng)的path就可以采用絕對(duì)路徑的形式。

        第三點(diǎn),如果完成了圖形模式的初始化,那么可以開始進(jìn)行做圖,在這個(gè)程序里,line(200,200,100,100)就是一個(gè)從點(diǎn)(200,200)到點(diǎn)(100,100)的直線。

        第四點(diǎn),在程序中使用了一個(gè)從圖形模式轉(zhuǎn)變成文本模式的函數(shù):closegraph()。

        2在特定的圖形模式下寫字

        在特定的圖形模式中,也能夠使用一般的輸出putchar(),puts()和printf()在屏幕上輸出相應(yīng)的文本。但是在上文提到的C語言圖形函數(shù)中,包括具有圖形顯示模式下文本輸出功能的函數(shù)outtextxy()等等。

        程序設(shè)計(jì)者可以使用setclor()這個(gè)函數(shù)來調(diào)節(jié)相應(yīng)的文字的具體顏色,而且用戶能夠隨意地設(shè)置文本字符的具體大小,一般來說是通過這兩個(gè)函數(shù)來實(shí)現(xiàn)功能的:

        Setusercharsize()/*這個(gè)函數(shù)用來定義垂直以及水平的具體放大倍數(shù)*/

        Settextstyle()/*這個(gè)函數(shù)的功能是以一樣的倍數(shù)來放大垂直和水平方向*/

        3建設(shè)獨(dú)立的圖形模式

        利用圖形模式完成程序之后,在其它的計(jì)算機(jī)中運(yùn)行發(fā)現(xiàn)這個(gè)程序無法運(yùn)行。究其原因,是因?yàn)樵趫D形模式的設(shè)置中,沒有相應(yīng)的BGI文件(如果想要使用initgraph()這個(gè)函數(shù),那么在連接和編譯的過程中需要特定的*.bgi驅(qū)動(dòng)程序裝入相應(yīng)的執(zhí)行程序中)。如果把在轉(zhuǎn)移軟件的過程中沒有附帶相應(yīng)的BGI文件,那么這個(gè)用戶就沒有辦法進(jìn)到相應(yīng)的圖形模式里。

        就算是把全部的*.bgi文件轉(zhuǎn)移給相應(yīng)的用戶,還是存在出現(xiàn)路徑問題的可能性。

        所以在實(shí)際操作過程中,可以把整個(gè)圖形驅(qū)動(dòng)程序都置入程序里,這樣能夠完美地解決相應(yīng)的問題。其實(shí),如果沒有驅(qū)動(dòng)程序,可以單獨(dú)使用可執(zhí)行圖形程序,具體的方法如下(在這個(gè)例子中使用的是EGA VGA顯示器):

        第一步,首先在相應(yīng)的編譯目錄里上輸入這樣的命令:

        EGAVGA BGIOGJ

        使用這個(gè)BGIOBJ命令的目的是把EGAVGA.BG驅(qū)動(dòng)程序轉(zhuǎn)變?yōu)槟繕?biāo)文件EGAVGA.OBJ。

        第二步,在相應(yīng)的編譯目錄里輸入這樣的命令:

        TLIBkEGAVGA+GRAPHICS.LIB

        在這個(gè)命令中,目的是把相應(yīng)的EGABGA.OBJ的模塊,置入到特定的GRAPHICS.LIB庫文件里。

        第三步,如果要使用initgraph()函數(shù),則需要加入特定的命令,目的是把相應(yīng)的EGAVGA驅(qū)動(dòng)程序置入到特定的GRAPHICS.LIB文件里。

        4實(shí)現(xiàn)動(dòng)畫的具體思路

        如果在特定的位置劃出一條紅顏色的直線,那么如果再次畫一個(gè)紅線,原本的紅線不會(huì)發(fā)生變化,還是在那里。但是如果最開始的紅線是使用異或方式畫的,那么在畫第二條線之后,就會(huì)發(fā)現(xiàn)原本的紅線不存在了,從屏幕上消失不見了??梢允褂眠@樣的方法實(shí)現(xiàn)這個(gè)過程:

        #include

        #include

        #include

        #inlude

        Main(){

        setcolor(blue);//把前景的顏色設(shè)置成藍(lán)色

        setwritemode(PUT-XOR);//異或模式設(shè)置

        Initgraph(&gmode,&gdriver,””);//圖形模式的初始化

        line(200,500,200,100);//畫出相應(yīng)的線段

        Closegraph();//把圖形模式關(guān)閉,然后進(jìn)入到文本模式中

        return();

        }

        在這個(gè)程序中使用了異或模式,可以利用二次完全重畫的方式抹掉原來的圖形。根據(jù)以上的分析,異或可以說是繪制動(dòng)畫的良好選擇。

        5結(jié)論

        本文探討了C語言圖形模式,使用了亦或的方式和圖形函數(shù),成功地制作了可視化的人機(jī)界面。這種操作思路容易理解而且方便操作,能夠解決人機(jī)可視化問題。

        日本免费一区二区三区| 国产一极内射視颍一| 性欧美videofree高清精品| 99久久精品免费看国产情侣| 久久不见久久见免费影院www| 欧美在线不卡视频| 国产成人亚洲精品2020| 男女搞黄在线观看视频| 久久夜色精品国产噜噜噜亚洲av| 久久精品熟女亚洲av麻| 不卡一卡二卡三乱码免费网站| 久久人人爽人人爽人人av| 最新国产一区二区精品久久| 亚洲综合色婷婷久久| 久久夜色精品亚洲天堂| 中文字幕色偷偷人妻久久一区| 麻豆亚洲av熟女国产一区二 | 国产精品久久久久久亚洲av| 色欲麻豆国产福利精品| 巨臀中文字幕一区二区| 极品少妇被后入内射视| 91一区二区三区在线观看视频| 内射白浆一区二区在线观看| 麻豆精品国产精华精华液好用吗| 亚洲精品无码人妻无码| 中日无码精品一区二区三区| 中文字幕日韩精品人妻久久久| 99久久精品费精品国产一区二| 国产亚洲一本大道中文在线| 乱码精品一区二区三区| 午夜短无码| 亚洲国产都市一区二区| 青青草免费在线爽视频| av综合网男人的天堂| 91久久青青草原线免费| 国产人妖一区二区av| 亚洲国产精品无码成人片久久| 成人午夜性a级毛片免费| 久久无码人妻一区=区三区| 魔鬼身材极品女神在线| 亚洲乱码中文字幕视频|