摘 要:圖形函數(shù)是C語言函數(shù)庫中的重要組成部分,利用圖形函數(shù)可以繪制出非常精美的圖形,該文介紹了常用C語言圖形函數(shù)并通過一個具體的實(shí)例介紹了如何利用圖形函數(shù)設(shè)計(jì)出完美、漂亮的圖形。
關(guān)鍵詞:C語言 圖形函數(shù) 應(yīng)用
引言
C語言是國際上廣泛流行的很有發(fā)展前途的計(jì)算機(jī)高級語言。它既具有一般計(jì)算機(jī)高級語言的可讀性、可移植性的特點(diǎn),又具有低級語言能夠?qū)τ?jì)算機(jī)硬件進(jìn)行操作的特性,因此,它適合用于操作系統(tǒng)的描述語言,用C語言開發(fā)系統(tǒng)軟件和應(yīng)用軟件。但在87ANSIC中并沒有規(guī)定C語言的圖形功能,許多C語言教材沒有介紹C語言的圖形功能,這給許多需要用C語言設(shè)計(jì)完美、漂亮的用戶界面的初學(xué)者帶來了困難[1-2]。本文旨在通過介紹Turbo C 2.0的主要圖形函數(shù)及一個具體的實(shí)例簡介這些函數(shù)的用法。
1 與圖形繪制有關(guān)的系統(tǒng)硬件[2-3]
要使計(jì)算機(jī)能夠繪制圖形,必須有一定的硬件基礎(chǔ)作為保障。圖形繪制的硬件基礎(chǔ)主要是顯示器和顯示卡。顯示器的工作方式一般有文本方式和圖形方式。要在屏幕上顯示圖形,必須將其設(shè)置成圖形方式。衡量顯示器的主要性能指標(biāo)是點(diǎn)距和分辨率。目前顯示器常用的點(diǎn)距有0.39mm、0.31mm和0.28mm三種。高檔微機(jī)配置的彩色顯示器目前流行的是VGA檔次,它最低的分辨率為640×480,中檔的是800×600,高檔的是1024×768。顯示器必須與顯示卡配套使用才能發(fā)揮其圖形功能。顯示卡所能支持的不同分辨率的顯卡類型稱為顯示模式。下表給出Turbo C中常用的幾種顯示卡的圖形模式:

2 Turbo C 2.0中與繪圖有關(guān)的常用圖形函數(shù)
2.1 設(shè)置圖形工作方式的函數(shù):initgraph()。
Turbo C繪圖,首先必須設(shè)置顯示器為圖形方式。該函數(shù)通過選定參數(shù)可確定顯卡的類型及圖形模式。
如:
int driver,mode;
driver=IBM8514;
mode=IBM8514HI;
initgraph(driver, mode,“c:\temp”);
將圖形方式設(shè)置為IBM8514類型,IBM8514HI圖形模式,1024×768的分辨率,搜索路徑temp為C盤一級子目錄。
2.2 顏色控制函數(shù)setbkcolor(int color)及setcolor(int color)。
其中setbkcolor( )設(shè)置背景顏色,setcolor( )設(shè)置劃線顏色。
2.3 基本繪圖函數(shù)
A. line(int x1,int y1,int x2,int y2)
功能:從點(diǎn)(x1,y1)到點(diǎn)(x2,y2)畫一直線。
B. arc(int x,int y,int stange,int endangle,int r)
功能:以(x,y)為圓弧的中心,以stange為起始角度,以endangle為終止角度,以r為半徑作一圓弧。
C. setfillstyle(int pattern,int color)
功能:用參數(shù)pattern所確定的填充模式,用參數(shù)color確定的顏色進(jìn)行填充。
D. floodfill(int x,int y,int color)
功能:填充一個含有點(diǎn)(x,y)在內(nèi)的有界封閉區(qū)域,這個有界封閉區(qū)域的邊界由參數(shù)color確定,填充模式與填充顏色由函數(shù)setfillstyle設(shè)定。
2.4 字符輸出函數(shù)
A. settextstyle(int font,int direction,int size)
功能:在圖形方式下設(shè)置字符的字體,式樣和放大因子。
B. outtextxy(int x,int y,char str)
功能:在窗口(x,y)的位置輸出字符或字符串。
C. getch( )
功能:從控制臺取得一字符且不輸出,用來使程序暫停,按任意鍵后使程序繼續(xù)運(yùn)行。
3. 繪制一個圓餅型統(tǒng)計(jì)圖的程序如下
#include
main( )
{ int driver,mode;
driver=VGA;
mode=VGAHI;
initgraph(driver,mode,“ ”);
setbkcolor(0);
setcolor(15);
arc(320,240,0,360,180);
line(320,240,500,240);
line(320,240,443,112);
line(320,240,266,70);
line(320,240,200,374);
setfillstyle(4,2);
floodfill(340,230,15);
setfillstyle(5,9);
floodfill(340,180,15);
setfillstyle(7,4);
floodfill(300,240,15);
setfillstyle(8,3);
floodfill(340,280,15);
setcolor(14);
settextstyle(1,0,4);
outtextxy(410,180,“14%”);
settextstyle(1,0,4);
outtextxy(330,110,“16%”);
settextstyle(1,0,4);
outtextxy(200,200,“34%”);
settextstyle(1,0,4);
outtextxy(340,310,“36%”);}
上述程序在Turbo C 2.0中上機(jī)通過編譯、連接、運(yùn)行,可得到精美的圓餅型圖。讀者通過閱讀并上機(jī)調(diào)試運(yùn)行該程序可以對C語言的圖形設(shè)置、繪制;顏色的控制、填充等函數(shù)的應(yīng)用有一個感性的認(rèn)識,對復(fù)雜枯燥的C函數(shù)提高學(xué)習(xí)興趣。
結(jié)語
目前許多C語言教材很少介紹C語言的圖形功能,而許多C語言學(xué)習(xí)者對C語言的圖形功能很感興趣,為幫助初學(xué)者學(xué)習(xí)C語言繪圖函數(shù)并提高學(xué)習(xí)興趣,本文簡單介紹了C語言一些常用的繪圖函數(shù)及其應(yīng)用,權(quán)當(dāng)拋磚引玉!還有一些圖形函數(shù)沒有列出,讀者若有興趣可參閱《C語言函數(shù)大全》。
參考文獻(xiàn):
[1]徐士良.PC機(jī)C圖形編程手冊.北京:清華大學(xué)出版社,1994.2.
[2]譚浩強(qiáng).C程序設(shè)計(jì)(第二版)[M].北京:清華大學(xué)出版社,1999.
[3]MarkFinlay.C和C++圖形程序設(shè)計(jì)基礎(chǔ).北京:龍門書局,1997.4.
[4]Herbert Schildt著.戴健鵬譯.C語言大全(第二版)[M].北京:電子工業(yè)出版社,1994.