?? 圖形涵數.htm
字號:
<BR> #include <graphics.h>
<BR> int main() <BR> {
<BR> int gdriver, gmode;
<BR>
detectgraph(&gdriver, &gmode); /*自動測試硬件*/
<BR> printf("the graphics
driver is %d, mode is %d\n", gdriver,
<BR>
gmode); /*輸出測試結果*/
<BR> getch();
<BR>
initgraph(&gdriver, &gmode, "c:\\tc");
<BR>
/* 根據測試結果初始化圖形*/ <BR>
bar3d(10, 10, 130, 250, 20, 1);
<BR> getch();
<BR> closegraph();
<BR> return 0;
<BR> }
<P> 上例程序中先對圖形顯示器自動檢測, 然后再用圖形初始化函數進行初始化 <BR>設置, 但Turbo
C提供了一種更簡單的方法, 即用gdriver= DETECT 語句后再跟 <BR>initgraph()函數就行了。采用這種方法后, 上例可改為:
<BR> <BR> 例6. <BR> #include
<graphics.h> <BR> int main()
<BR> {
<BR> int gdriver=DETECT,
gmode; <BR>
initgraph(&gdriver, &gmode, "c:\\tc");
<BR> bar3d(50, 50, 150,
30, 1); <BR> getch();
<BR> closegraph();
<BR> return 0;
<BR> } <BR> 另外, Turbo
C提供了退出圖形狀態的函數closegraph(), 其調用格式為: <BR> void far
closegraph(void); <BR> 調用該函數后可退出圖形狀態而進入文本方式(Turbo C 默認方式), 并釋放
<BR>用于保存圖形驅動程序和字體的系統內存。
<P> 2. 獨立圖形運行程序的建立 <BR> Turbo
C對于用initgraph()函數直接進行的圖形初始化程序, 在編譯和鏈接 <BR>時并沒有將相應的驅動程序(*.BGI)裝入到執行程序,
當程序進行到intitgraph() <BR>語句時, 再從該函數中第三個形式參數char *path中所規定的路徑中去找相應的
<BR>驅動程序。若沒有驅動程序, 則在C:\TC中去找, 如C:\TC中仍沒有或TC不存在, <BR>將會出現錯誤:
<BR> BGI Error: Graphics not initialized (use
'initgraph') <BR> 因此, 為了使用方便, 應該建立一個不需要驅動程序就能獨立運行的可執行
<BR>圖形程序,Turbo C中規定用下述步驟(這里以EGA、VGA顯示器為例): <BR> 1.
在C:\TC子目錄下輸入命令:BGIOBJ EGAVGA <BR>
此命令將驅動程序EGAVGA.BGI轉換成EGAVGA.OBJ的目標文件。 <BR> 2.
在C:\TC子目錄下輸入命令:TLIB LIB\GRAPHICS.LIB+EGAVGA <BR>
此命令的意思是將EGAVGA.OBJ的目標模塊裝到GRAPHICS.LIB庫文件中。 <BR> 3.
在程序中initgraph()函數調用之前加上一句: <BR>
registerbgidriver(EGAVGA_driver): <BR>該函數告訴連接程序在連接時把EGAVGA的驅動程序裝入到用戶的執行程序中。
<BR> 經過上面處理,編譯鏈接后的執行程序可在任何目錄或其它兼容機上運行。 <BR>假設已作了前兩個步驟,若再向例6中加
registerbgidriver()函數則變成: <BR> 例7:
<BR> #include<stdio.h>
<BR> #include<graphics.h>
<BR> int main() <BR> {
<BR> int gdriver=DETECT,gmode;
<BR>
registerbgidriver(EGAVGA_driver): / *建立獨立圖形運行程序 */
<BR> initgraph( gdriver,
gmode,"c:\\tc"); <BR>
bar3d(50,50,250,150,20,1); <BR>
getch(); <BR> closegraph();
<BR> return 0;
<BR> } <BR> 上例編譯鏈接后產生的執行程序可獨立運行。
<BR> 如不初始化成EGA或CGA分辨率, 而想初始化為CGA分辨率, 則只需要將上述
<BR>步驟中有EGAVGA的地方用CGA代替即可。
<P> 3.屏幕顏色的設置和清屏函數 <BR> 對于圖形模式的屏幕顏色設置,
同樣分為背景色的設置和前景色的設置。在 <BR>Turbo C中分別用下面兩個函數。 <BR>
設置背景色: void far setbkcolor( int
color); <BR> 設置作圖色:
void far setcolor(int color); <BR> 其中color 為圖形方式下顏色的規定數值,
對EGA, VGA顯示器適配器, 有關 <BR>顏色的符號常數及數值見下表所示。
<BR>
表3 有關屏幕顏色的符號常數表 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
符號常數 數值
含義
符號常數 數值 含義
<BR>─────────────────────────────────── <BR>
BLACK
0
黑色
DARKGRAY
8 深灰 <BR>
BLUE
1
蘭色
LIGHTBLUE 9 深蘭
<BR> GREEN
2
綠色
LIGHTGREEN 10 淡綠
<BR> CYAN
3
青色
LIGHTCYAN 11 淡青
<BR> RED
4
紅色
LIGHTRED 12 淡紅
<BR> MAGENTA
5
洋紅
LIGHTMAGENTA 13 淡洋紅 <BR>
BROWN
6
棕色
YELLOW
14 黃色 <BR>
LIGHTGRAY 7
淡灰
WHITE
15 白色 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<BR> 對于CGA適配器, 背景色可以為表3中16種顏色的一種, 但前景色依賴于不同 <BR>的調色板。共有四種調色板,
每種調色板上有四種顏色可供選擇。不同調色板所 <BR>對應的原色見表4。
<BR>
表4 CGA調色板與顏色值表 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<BR>
調色板
顏色值 <BR>─────────── ──────────────────
<BR> 符號常數
數值
0
1
2 3
<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ <BR>
C0
0
背景
綠
紅 黃 <BR>
C1
1
背景 青
洋紅 白 <BR>
C2
2
背景 淡綠
淡紅 黃 <BR>
C3
3
背景 淡青
淡洋紅 白 <BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<P> 清除圖形屏幕內容使用清屏函數, 其調用格式如下: <BR>
voide far cleardevice(void); <BR> 有關顏色設置、清屏函數的使用請看例8。
<BR> 例8: <BR> #include<stdio.h>
<BR> #include<graphics.h>
<BR> int main() <BR> {
<BR> int gdriver, gmode,
i; <BR> gdriver=DETECT;
<BR>
registerbgidriver(EGAVGA_DRIVER);/*建立獨立圖形運行程序*/
<BR>
initgraph(&gdriver, &gmode", "");/*圖形初始化*/
<BR>
setbkcolor(0);
/*設置圖形背景*/ <BR>
cleardevice(); <BR>
for(i=0; i<=15; i++)
<BR> {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -