999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2017-05-22 21:28:04孫煉
科技經(jīng)濟市場 2017年2期

孫煉

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

關鍵詞:C語言;人機界面;有效方法

0前言

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

1設置C語言圖形模式

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

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

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

BGI Error:(use initagraph)Graphics not initialized

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

#include/*這里是圖形標準函數(shù)頭文件*/

Intmain()

{

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

gdriver=DETECT;/*把相應的圖形驅(qū)動器設置為自動測量*/

Int gdriver,gmode;/*對圖形驅(qū)動器的相應變量進行定義*/

Getch();

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

Closegraph();/*把相應的圖形模式關閉*/

return 0:

}

以下是對這個程序的說明:

第一點:關于gdriver,這是個開始要求設置的特定圖形驅(qū)動器,相應的gmode就是和這種驅(qū)動器對應的。如果把gdriver設置成DETECT,計算機硬件就會自動地檢測模式和圖形驅(qū)動器,這樣的效率比較低。

第二點:在特定情況下,比如C:\\下有當前目錄,c:\\下有bgi文件,相應的path就可以采用絕對路徑的形式。

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

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

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

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

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

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

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

3建設獨立的圖形模式

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

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

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

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

EGAVGA BGIOGJ

使用這個BGIOBJ命令的目的是把EGAVGA.BG驅(qū)動程序轉(zhuǎn)變?yōu)槟繕宋募﨓GAVGA.OBJ。

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

TLIBkEGAVGA+GRAPHICS.LIB

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

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

4實現(xiàn)動畫的具體思路

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

#include

#include

#include

#inlude

Main(){

setcolor(blue);//把前景的顏色設置成藍色

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

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

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

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

return();

}

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

5結(jié)論

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

主站蜘蛛池模板: 久久99久久无码毛片一区二区| 国产成人免费高清AⅤ| 亚洲天堂视频网站| 人妻中文字幕无码久久一区| 久久天天躁狠狠躁夜夜2020一| 亚洲日韩精品无码专区| 91无码国产视频| 99热6这里只有精品| 91蝌蚪视频在线观看| 高潮毛片免费观看| 一级看片免费视频| 蜜芽国产尤物av尤物在线看| 在线观看亚洲精品福利片| 色综合天天综合中文网| 亚洲国产精品久久久久秋霞影院| 国产剧情国内精品原创| 国产男人的天堂| 日韩a级片视频| 精品综合久久久久久97超人该| 久青草免费视频| 成人午夜视频网站| 91久久大香线蕉| 国产理论最新国产精品视频| 亚洲婷婷在线视频| 国产精品入口麻豆| 成人伊人色一区二区三区| 亚洲av无码人妻| 日韩国产一区二区三区无码| 亚洲日韩精品综合在线一区二区| 国产亚洲日韩av在线| 久久黄色小视频| 日韩色图区| 91亚洲精品国产自在现线| AV无码无在线观看免费| 国产丝袜一区二区三区视频免下载| 国产精品亚洲片在线va| av天堂最新版在线| 亚洲精品国偷自产在线91正片| 狠狠色噜噜狠狠狠狠色综合久| 亚洲毛片在线看| 国产欧美另类| 日韩激情成人| 99久久国产综合精品女同| 国产精品九九视频| 在线亚洲小视频| 91久久偷偷做嫩草影院精品| 国产成人精彩在线视频50| 一本大道无码高清| 一区二区自拍| 九色综合伊人久久富二代| 国产91在线免费视频| 99久久无色码中文字幕| 日日噜噜夜夜狠狠视频| 无码福利日韩神码福利片| 日本草草视频在线观看| 日韩毛片在线视频| 国产欧美中文字幕| 国产主播一区二区三区| 欧美午夜在线播放| 亚洲性一区| 亚洲综合极品香蕉久久网| 亚洲国产午夜精华无码福利| 99re热精品视频中文字幕不卡| 精品成人一区二区三区电影 | 全部无卡免费的毛片在线看| 一级全免费视频播放| 无码在线激情片| 成年片色大黄全免费网站久久| 欧美三级视频网站| 五月天在线网站| 8090成人午夜精品| 中文字幕人妻无码系列第三区| 国产精品色婷婷在线观看| 久久 午夜福利 张柏芝| 国产精品黄色片| 亚洲第一天堂无码专区| 日本久久久久久免费网络| 性视频一区| 国产91精品久久| 国产乱子伦精品视频| 亚洲三级成人| 国产丝袜无码一区二区视频|