?? gra.htm
字號(hào):
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="Author" CONTENT="wdg">
<META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (Win95; I) [Netscape]">
<TITLE>gra</TITLE>
</HEAD>
<BODY>
圖形函數(shù)
<P> Turbo C提供了非常豐富的圖形函數(shù), 所有圖形函數(shù)的原型均在graphics.
h
<BR>中, 本節(jié)主要介紹圖形模式的初始化、獨(dú)立圖形程序的建立、基本圖形功能、圖
<BR>形窗口以及圖形模式下的文本輸出等函數(shù)。另外, 使用圖形函數(shù)時(shí)要確保有顯示
<BR>器圖形驅(qū)動(dòng)程序*BGI, 同時(shí)將集成開(kāi)發(fā)環(huán)境Options/Linker中的Graphics lib選
<BR>為on, 只有這樣才能保證正確使用圖形函數(shù)。
<BR> 1. 圖形模式的初始化
<BR> 不同的顯示器適配器有不同的圖形分辨率。即是同一顯示器適配器,
在不同
<BR>模式下也有不同分辨率。因此, 在屏幕作圖之前, 必須根據(jù)顯示器適配器種類將
<BR>顯示器設(shè)置成為某種圖形模式, 在未設(shè)置圖形模式之前, 微機(jī)系統(tǒng)默認(rèn)屏幕為文
<BR>本模式(80列, 25行字符模式), 此時(shí)所有圖形函數(shù)均不能工作。設(shè)置屏幕為圖形
<BR>模式, 可用下列圖形初始化函數(shù):
<BR> void far initgraph(int far *gdriver, int far
*gmode, char *path);
<BR> 其中g(shù)driver和gmode分別表示圖形驅(qū)動(dòng)器和模式, path是指圖形驅(qū)動(dòng)程序所
<BR>在的目錄路徑。有關(guān)圖形驅(qū)動(dòng)器、圖形模式的符號(hào)常數(shù)及對(duì)應(yīng)的分辨率見(jiàn)表2。
<BR> 圖形驅(qū)動(dòng)程序由Turbo C出版商提供, 文件擴(kuò)展名為.BGI。
根據(jù)不同的圖形
<BR>適配器有不同的圖形驅(qū)動(dòng)程序。例如對(duì)于EGA、 VGA 圖形適配器就調(diào)用驅(qū)動(dòng)程序
<BR>EGAVGA.BGI。
<P>
表2. 圖形驅(qū)動(dòng)器、模式的符號(hào)常數(shù)及數(shù)值
<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<BR> 圖形驅(qū)動(dòng)器(gdriver)
圖形模式(gmode)
<BR> ─────────── ───────────
色調(diào) 分辨率
<BR> 符號(hào)常數(shù) 數(shù)值
符號(hào)常數(shù) 數(shù)值
<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<BR> CGA
1 CGAC0
0 C0
320*200
<BR>
CGAC1 1
C1 320*200
<BR>
CGAC2 2
C2 320*200
<BR>
CGAC3 3
C3 320*200
<BR>
CGAHI 4
2色 640*200
<BR>───────────────────────────────────
<BR> MCGA
2 MCGAC0
0 C0
320*200
<BR>
MCGAC1 1
C1 320*200
<BR>
MCGAC2 2
C2 320*200
<BR>
MCGAC3 3
C3 320*200
<BR>
MCGAMED 4
2色 640*200
<BR>
MCGAHI 5
2色 640*480
<BR>───────────────────────────────────
<BR> EGA
3 EGALO
0 16色 640*200
<BR>
EGAHI 1
16色 640*350
<BR>───────────────────────────────────
<BR> EGA64
4 EGA64LO
0 16色 640*200
<BR>
EGA64HI 1
4色 640*350
<BR>───────────────────────────────────
<BR> EGAMON 5
EGAMONHI 0
2色 640*350
<BR>───────────────────────────────────
<BR> IBM8514 6
IBM8514LO 0
256色 640*480
<BR>
IBM8514HI 1
256色 1024*768
<BR>───────────────────────────────────
<BR> HERC
7 HERCMONOHI
0 2色 720*348
<BR>───────────────────────────────────
<BR> ATT400 8
ATT400C0 0
C0 320*200
<BR>
ATT400C1 1
C1 320*200
<BR>
ATT400C2 2
C2 320*200
<BR>
ATT400C3 3
C3 320*200
<BR>
ATT400MED 4
2色 320*200
<BR>
ATT400HI 5
2色 320*200
<BR>───────────────────────────────────
<BR> VGA
9 VGALO
0 16色 640*200
<BR>
VGAMED 1
16色 640*350
<BR>
VGAHI 2
16色 640*480
<BR>───────────────────────────────────
<BR> PC3270 10
PC3270HI 0
2色 720*350
<BR>───────────────────────────────────
<BR> DETECT 0
用于硬件測(cè)試
<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
<P> 例4. 使用圖形初始化函數(shù)設(shè)置VGA高分辨率圖形模式
<BR> #include <graphics.h>
<BR> int main()
<BR> {
<BR> int gdriver,
gmode;
<BR> gdriver=VGA;
<BR> gmode=VGAHI;
<BR> initgraph(&gdriver,
&gmode, "c:\\tc");
<BR> bar3d(100, 100,
300, 250, 50, 1); /*畫(huà)一長(zhǎng)方體*/
<BR> getch();
<BR> closegraph();
<BR> return 0;
<BR> }
<P> 有時(shí)編程者并不知道所用的圖形顯示器適配器種類, 或者需要將編寫(xiě)的程序
<BR>用于不同圖形驅(qū)動(dòng)器, Turbo C提供了一個(gè)自動(dòng)檢測(cè)顯示器硬件的函數(shù),
其調(diào)用
<BR>格式為:
<BR> void far detectgraph(int *gdriver, *gmode);
<BR> 其中g(shù)driver和gmode的意義與上面相同。
<BR>
<BR> 例5. 自動(dòng)進(jìn)行硬件測(cè)試后進(jìn)行圖形初始化
<BR> #include <graphics.h>
<BR> int main()
<BR> {
<BR> int gdriver,
gmode;
<BR> detectgraph(&gdriver,
&gmode); /*自動(dòng)測(cè)試硬件*/
<BR> printf("the
graphics driver is %d, mode is %d\n", gdriver,
<BR>
gmode); /*輸出測(cè)試結(jié)果*/
<BR> getch();
<BR> initgraph(&gdriver,
&gmode, "c:\\tc");
<BR>
/* 根據(jù)測(cè)試結(jié)果初始化圖形*/
<BR> bar3d(10, 10,
130, 250, 20, 1);
<BR> getch();
<BR> closegraph();
<BR> return 0;
<BR> }
<P> 上例程序中先對(duì)圖形顯示器自動(dòng)檢測(cè), 然后再用圖形初始化函數(shù)進(jìn)行初始化
<BR>設(shè)置, 但Turbo C提供了一種更簡(jiǎn)單的方法, 即用gdriver= DETECT 語(yǔ)句后再跟
<BR>initgraph()函數(shù)就行了。采用這種方法后, 上例可改為:
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -