第10章C語(yǔ)言屏幕操作函數(shù)及應(yīng)用_第1頁(yè)
第10章C語(yǔ)言屏幕操作函數(shù)及應(yīng)用_第2頁(yè)
第10章C語(yǔ)言屏幕操作函數(shù)及應(yīng)用_第3頁(yè)
第10章C語(yǔ)言屏幕操作函數(shù)及應(yīng)用_第4頁(yè)
第10章C語(yǔ)言屏幕操作函數(shù)及應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1目錄頁(yè)C語(yǔ)言屏幕操作函數(shù)及應(yīng)用第10章n 字符方式下的屏幕編程n 圖形方式下的屏幕編程本章本章要點(diǎn)要點(diǎn)2目錄頁(yè)10.1 字符屏幕操作函數(shù)第10章 顯示器有兩種工作方式,文本方式和圖形方式。顯示器有兩種工作方式,文本方式和圖形方式。缺省顯示為文本方式。在文本方式下,整個(gè)屏幕就缺省顯示為文本方式。在文本方式下,整個(gè)屏幕就像稿紙一樣被劃分成一個(gè)個(gè)大小相等的單元,每單像稿紙一樣被劃分成一個(gè)個(gè)大小相等的單元,每單元只能顯示一個(gè)字符。屏幕最常見(jiàn)的劃分標(biāo)準(zhǔn)是元只能顯示一個(gè)字符。屏幕最常見(jiàn)的劃分標(biāo)準(zhǔn)是25行行*80列。在這種方式下,屏幕左上角坐標(biāo)為列。在這種方式下,屏幕左上角坐標(biāo)為(0,0),右下角坐標(biāo)為右

2、下角坐標(biāo)為(79, 24),顯示器的坐標(biāo)系如圖,顯示器的坐標(biāo)系如圖10-1所所示。示。Turbo C以函數(shù)方式提供對(duì)屏幕的操縱和控制,以函數(shù)方式提供對(duì)屏幕的操縱和控制,字符屏幕函數(shù)主要用于設(shè)定文本窗口的大小、顏色、字符屏幕函數(shù)主要用于設(shè)定文本窗口的大小、顏色、內(nèi)容的清除和輸入、輸出等。內(nèi)容的清除和輸入、輸出等。3目錄頁(yè)10.1 字符屏幕操作函數(shù)第10章 文本窗口在屏幕上是一個(gè)矩形區(qū)域,其大小和位置由其左上角和右下角的坐標(biāo)決定。文本窗口在屏幕上是一個(gè)矩形區(qū)域,其大小和位置由其左上角和右下角的坐標(biāo)決定。函數(shù)的定義格式為:函數(shù)的定義格式為: void window(int x1, int y1, i

3、nt x2, int y2); 參數(shù)參數(shù)(x1, y1)和和(x2, y2)分別為窗口的左上角和右下角的坐標(biāo),分別為窗口的左上角和右下角的坐標(biāo),x代表列坐標(biāo),代表列坐標(biāo),y代表行坐代表行坐標(biāo)。例如,定義一個(gè)窗口,左上角坐標(biāo)為標(biāo)。例如,定義一個(gè)窗口,左上角坐標(biāo)為(31, 4),右下角坐標(biāo)為,右下角坐標(biāo)為(60, 23)。函數(shù)的調(diào)用格式。函數(shù)的調(diào)用格式為:為:window(31, 4, 60, 23); 注:該函數(shù)原型在注:該函數(shù)原型在conio.h中定義。中定義。10.1.1 定義文本窗口定義文本窗口4目錄頁(yè)10.1 字符屏幕操作函數(shù)第10章文本窗口的顏色包括字符顏色和背景顏色,設(shè)置所用的函數(shù)是

4、:文本窗口的顏色包括字符顏色和背景顏色,設(shè)置所用的函數(shù)是:設(shè)置背景顏色:設(shè)置背景顏色:void textbackground(int color);設(shè)置字符顏色:設(shè)置字符顏色:void textcolor(int color); 表表10-1 窗口顏色列表窗口顏色列表10.1.2. 設(shè)置文本窗口顏色設(shè)置文本窗口顏色符號(hào)常數(shù)符號(hào)常數(shù)數(shù)值數(shù)值顏色顏色字符字符/ /背景背景符號(hào)常數(shù)符號(hào)常數(shù)數(shù)值數(shù)值顏色顏色字符字符/ /背景背景BLACK0黑均可LIGHTBLUE9淡藍(lán)字符BLUE1藍(lán)均可LIGHTGREEN10淡綠字符GREEN2綠均可LIGHTCYAN11淡青字符CYAN3青均可LIGHTRED1

5、2淡紅字符RED4紅均可LIGHTMAGENTA13淡洋紅字符MAGENTA5洋紅均可YELLOW14黃字符BROWN6棕均可WHITE15白字符LIGHTGRAY7淡灰均可BLINK128閃爍字符DARKGRAY8深灰字符5目錄頁(yè)10.1 字符屏幕操作函數(shù)第10章【例例10.1】利用藍(lán)、綠、青、紅、洋紅、棕、淡灰為背景色,在屏幕上畫出利用藍(lán)、綠、青、紅、洋紅、棕、淡灰為背景色,在屏幕上畫出7個(gè)大小為個(gè)大小為20列,列,10行的窗口,顯示效果如圖。行的窗口,顯示效果如圖。10.1.2. 設(shè)置文本窗口顏色設(shè)置文本窗口顏色圖圖10-2 文本狀態(tài)下多窗口的運(yùn)行效果文本狀態(tài)下多窗口的運(yùn)行效果6目錄頁(yè)1

6、0.1 字符屏幕操作函數(shù)第10章#includemain() int i; textbackground(0); /*設(shè)置背景顏色為黑色設(shè)置背景顏色為黑色*/ clrscr(); /*以黑色清除屏幕以黑色清除屏幕*/ for(i=1;i8;i+) window(21+i*5, 5+i, 40+i*5, 14+i); /*定義窗口定義窗口*/ textbackground(i); /*設(shè)置背景顏色為設(shè)置背景顏色為i對(duì)應(yīng)的值對(duì)應(yīng)的值*/ clrscr(); /*窗口背景變?yōu)榇翱诒尘白優(yōu)閕對(duì)應(yīng)的顏色對(duì)應(yīng)的顏色*/ textcolor(15-i); /*在窗口中定義字符的顏色在窗口中定義字符的顏色*/

7、 cputs(Windows-); /*輸出輸出Windows-*/ putch(72-i); /*分別輸出分別輸出ABCDEFG*/ getch();10.1.2. 設(shè)置文本窗口顏色設(shè)置文本窗口顏色7目錄頁(yè)10.1 字符屏幕操作函數(shù)第10章 1窗口內(nèi)文本的輸出函數(shù):窗口內(nèi)文本的輸出函數(shù): (1)int cprintf(格式化字符串格式化字符串, ); 功能:按照功能:按照“格式化字符串格式化字符串”的格式輸出的格式輸出“變量表變量表”中對(duì)應(yīng)的變量。中對(duì)應(yīng)的變量。 (2)int cputs(char *string); 功能:在當(dāng)前位置輸出字符串功能:在當(dāng)前位置輸出字符串string。 (3)

8、int putch(int ch); 功能:在當(dāng)前位置輸出一個(gè)字符功能:在當(dāng)前位置輸出一個(gè)字符ch。10.1.3 窗口內(nèi)的文本輸入輸出和其他屏幕操作函數(shù)窗口內(nèi)的文本輸入輸出和其他屏幕操作函數(shù)8目錄頁(yè)10.1 字符屏幕操作函數(shù)第10章 2窗口內(nèi)文本的輸入函數(shù)及其他屏幕操作函數(shù)窗口內(nèi)文本的輸入函數(shù)及其他屏幕操作函數(shù) (1)int getch(void); 功能:從鍵盤上輸入一個(gè)字符。功能:從鍵盤上輸入一個(gè)字符。 (2)void clrscr(); 功能:用背景色清除當(dāng)前窗口中的內(nèi)容,光標(biāo)定位在窗口的左上角處。功能:用背景色清除當(dāng)前窗口中的內(nèi)容,光標(biāo)定位在窗口的左上角處。 文本方式的優(yōu)點(diǎn)是:占用的內(nèi)

9、存空間少,程序設(shè)計(jì)相對(duì)簡(jiǎn)單。文本方式的優(yōu)點(diǎn)是:占用的內(nèi)存空間少,程序設(shè)計(jì)相對(duì)簡(jiǎn)單。10.1.3 窗口內(nèi)的文本輸入輸出和其他屏幕操作函數(shù)窗口內(nèi)的文本輸入輸出和其他屏幕操作函數(shù)9目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 1像素與坐標(biāo)像素與坐標(biāo) 文本方式下可訪問(wèn)的最小單位是字符;圖形方式下最小單位是像素文本方式下可訪問(wèn)的最小單位是字符;圖形方式下最小單位是像素(又稱為點(diǎn)陣又稱為點(diǎn)陣)。對(duì)。對(duì)于顯示器來(lái)說(shuō),它支持的像素個(gè)數(shù)越多,顯示器的分辨率就越高,這樣顯示的圖形就越細(xì)于顯示器來(lái)說(shuō),它支持的像素個(gè)數(shù)越多,顯示器的分辨率就越高,這樣顯示的圖形就越細(xì)膩、清晰。常使用的顯示器分辨率點(diǎn)陣大小為膩

10、、清晰。常使用的顯示器分辨率點(diǎn)陣大小為640480(更高的分辨率(更高的分辨率Turbo C不支持)。不支持)。像素在屏幕上的位置由其所在的坐標(biāo)像素在屏幕上的位置由其所在的坐標(biāo)(x, y)決定。圖形方式與文本方式顯示器的坐標(biāo)系相同決定。圖形方式與文本方式顯示器的坐標(biāo)系相同(如圖(如圖10-1)。屏幕左上角為坐標(biāo)原點(diǎn))。屏幕左上角為坐標(biāo)原點(diǎn)(0, 0),以,以x代表水平方向的坐標(biāo)代表水平方向的坐標(biāo)(從左到右從左到右),y代表代表垂直方向的坐標(biāo)垂直方向的坐標(biāo)(從上到下從上到下),X軸水平向右增加,軸水平向右增加,Y軸是垂直向下增加。例如,分辨率為軸是垂直向下增加。例如,分辨率為640*480的屏幕

11、,其坐標(biāo)范圍為的屏幕,其坐標(biāo)范圍為(0, 0)到到(639, 479)。在圖形方式下,字符和圖形都以像素方。在圖形方式下,字符和圖形都以像素方式顯示。用戶可以利用像素點(diǎn)繪制各種各樣的圖形。式顯示。用戶可以利用像素點(diǎn)繪制各種各樣的圖形。10.2.1 計(jì)算機(jī)的顯示系統(tǒng)計(jì)算機(jī)的顯示系統(tǒng)10目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 2顏色顏色 我們把計(jì)算機(jī)屏幕同時(shí)可以顯示的顏色組成一個(gè)顏色組,這就是一個(gè)調(diào)色板。比如我們把計(jì)算機(jī)屏幕同時(shí)可以顯示的顏色組成一個(gè)顏色組,這就是一個(gè)調(diào)色板。比如VGA顯示標(biāo)準(zhǔn)的調(diào)色板有顯示標(biāo)準(zhǔn)的調(diào)色板有16種顏色,這種顏色,這16種顏色是從種顏色是從64種(種(E

12、GA)或)或256種(種(VGA)顏色中)顏色中選出來(lái)的。選出來(lái)的。 注意:在注意:在Turbo C圖形方式下,屏幕的分辨率默認(rèn)為圖形方式下,屏幕的分辨率默認(rèn)為640480,16種顏色可用。種顏色可用。10.2.1 計(jì)算機(jī)的顯示系統(tǒng)計(jì)算機(jī)的顯示系統(tǒng)11目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 Turbo C提供的圖形函數(shù),按功能可分為圖形系統(tǒng)控制函數(shù)、屏幕管理函數(shù)、基本繪圖函數(shù)、提供的圖形函數(shù),按功能可分為圖形系統(tǒng)控制函數(shù)、屏幕管理函數(shù)、基本繪圖函數(shù)、填充圖形函數(shù)、圖形的保存與恢復(fù)函數(shù)、圖形方式下的文本輸出函數(shù)等幾類。在使用這些函數(shù)填充圖形函數(shù)、圖形的保存與恢復(fù)函數(shù)、圖形方式下的

13、文本輸出函數(shù)等幾類。在使用這些函數(shù)時(shí),必須在程序的開(kāi)頭寫上文件包含命令:時(shí),必須在程序的開(kāi)頭寫上文件包含命令:#include 1圖形系統(tǒng)控制函數(shù)圖形系統(tǒng)控制函數(shù) 計(jì)算機(jī)的顯示系統(tǒng)一般(默認(rèn))情況下,工作在計(jì)算機(jī)的顯示系統(tǒng)一般(默認(rèn))情況下,工作在80列列25行的文本方式。因此,在使用圖行的文本方式。因此,在使用圖形函數(shù)之前,必須把顯示系統(tǒng)設(shè)置為圖形工作方式。同樣,在圖形程序結(jié)束時(shí),應(yīng)使顯示系統(tǒng)形函數(shù)之前,必須把顯示系統(tǒng)設(shè)置為圖形工作方式。同樣,在圖形程序結(jié)束時(shí),應(yīng)使顯示系統(tǒng)恢復(fù)到原來(lái)的文本工作方式。恢復(fù)到原來(lái)的文本工作方式。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)12目錄頁(yè)10.2 Tu

14、rbo C的圖形與動(dòng)畫處理第10章 (1)圖形模式初始化函數(shù))圖形模式初始化函數(shù) 格式:格式:initgraph(&gdriver, &gmode, path); 功能:從指定的路徑功能:從指定的路徑path中裝入由中裝入由driver指定的顯示驅(qū)動(dòng)程序,并采用由指定的顯示驅(qū)動(dòng)程序,并采用由mode指定的圖形指定的圖形方式初始化圖形系統(tǒng)。方式初始化圖形系統(tǒng)。 其中,參數(shù)其中,參數(shù)driver可取的值是可取的值是0到到10之間的整數(shù)或相應(yīng)的符號(hào)名,用于指定所用適配器的驅(qū)之間的整數(shù)或相應(yīng)的符號(hào)名,用于指定所用適配器的驅(qū)動(dòng)程序。如表動(dòng)程序。如表10-2:10.2.2 Turbo C圖形函數(shù)圖形函數(shù)符

15、號(hào)名符號(hào)名數(shù)值數(shù)值符號(hào)名符號(hào)名數(shù)值數(shù)值符號(hào)名符號(hào)名數(shù)值數(shù)值DETECT0CGA1MCGA2EGA3EGA644EGAMONO5IBM85146HERCMONO7ATT4008VGA9PC32701013目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (1)圖形模式初始化函數(shù))圖形模式初始化函數(shù) 格式:格式:initgraph(&gdriver, &gmode, path); 功能:從指定的路徑功能:從指定的路徑path中裝入由中裝入由driver指定的顯示驅(qū)動(dòng)程序,并采用由指定的顯示驅(qū)動(dòng)程序,并采用由mode指定的圖形指定的圖形方式初始化圖形系統(tǒng)。方式初始化圖形系統(tǒng)。 其中,參數(shù)其中,

16、參數(shù)driver可取的值是可取的值是0到到10之間的整數(shù)或相應(yīng)的符號(hào)名,用于指定所用適配器的驅(qū)之間的整數(shù)或相應(yīng)的符號(hào)名,用于指定所用適配器的驅(qū)動(dòng)程序。如表動(dòng)程序。如表10-2:10.2.2 Turbo C圖形函數(shù)圖形函數(shù)符號(hào)名符號(hào)名數(shù)值數(shù)值符號(hào)名符號(hào)名數(shù)值數(shù)值符號(hào)名符號(hào)名數(shù)值數(shù)值DETECT0CGA1MCGA2EGA3EGA644EGAMONO5IBM85146HERCMONO7ATT4008VGA9PC32701014目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章10.2.2 Turbo C圖形函數(shù)圖形函數(shù)驅(qū)動(dòng)程序顯示模式值分辨率顯示模式值分辨率EGAEGALO0640*200EGA

17、HI1640*350EGAMONOEGAMONOHI0640*350VGAVGALO0640*200VGAHI2640*480VGAMED1640*350IBM8514IBM8514LO0640*480IBM8514HI11024*76815目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 參數(shù)參數(shù)path指明圖形驅(qū)動(dòng)程序所在的路徑。當(dāng)指明圖形驅(qū)動(dòng)程序所在的路徑。當(dāng)path字符串為空時(shí),表示在當(dāng)前目錄下。字符串為空時(shí),表示在當(dāng)前目錄下。從該函數(shù)的參數(shù)中可以知道,初始化圖形系統(tǒng)有以下兩種方式:從該函數(shù)的參數(shù)中可以知道,初始化圖形系統(tǒng)有以下兩種方式: 自動(dòng)進(jìn)行硬件測(cè)試并進(jìn)行圖形初始化的程序。

18、自動(dòng)進(jìn)行硬件測(cè)試并進(jìn)行圖形初始化的程序。 #include main() int gdriver=DETECT; /*自動(dòng)檢測(cè)硬件自動(dòng)檢測(cè)硬件*/ int gmode; /*模式模式gmode不必指定值不必指定值*/ initgraph(&gdriver, &gmode, ); /*圖形初始化,圖形初始化,path為空時(shí),表示在當(dāng)前目錄下為空時(shí),表示在當(dāng)前目錄下*/ 10.2.2 Turbo C圖形函數(shù)圖形函數(shù)16目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 若已知圖形適配器為若已知圖形適配器為VGA時(shí),想采用時(shí),想采用640480的高分辨率模式的高分辨率模式VGAHI,則圖形初始化

19、部分,則圖形初始化部分 可寫成:可寫成: int gdriver=VGA; int gmode=VGAHI; initgraph(&gdriver, &mode, C:TC); “C:TC”表示圖形驅(qū)動(dòng)程序在表示圖形驅(qū)動(dòng)程序在C盤盤TC目錄下,注意路徑中的目錄下,注意路徑中的”必須寫成必須寫成”。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)17目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (2)關(guān)閉圖形方式函數(shù))關(guān)閉圖形方式函數(shù)closegraph() 格式:格式:closegraph(); 功能:釋放圖形系統(tǒng)所占的內(nèi)存,關(guān)閉圖形工作方式,并返回到文本方式下。功能:釋放圖形系統(tǒng)所占的

20、內(nèi)存,關(guān)閉圖形工作方式,并返回到文本方式下。 (3)恢復(fù)原工作方式函數(shù):)恢復(fù)原工作方式函數(shù): restorecrtmode( ); 功能:不關(guān)閉圖形系統(tǒng),回到原來(lái)所設(shè)置模式,同時(shí)清屏。該函數(shù)經(jīng)常和設(shè)置圖形工作模功能:不關(guān)閉圖形系統(tǒng),回到原來(lái)所設(shè)置模式,同時(shí)清屏。該函數(shù)經(jīng)常和設(shè)置圖形工作模式函數(shù)式函數(shù)setgraphmode交互使用,使顯示器在圖形和文本工作模式間切換。交互使用,使顯示器在圖形和文本工作模式間切換。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)18目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 2屏幕管理函數(shù)屏幕管理函數(shù) 此類函數(shù)用于設(shè)置繪圖時(shí)使用的顏色和設(shè)置窗口(視區(qū))

21、。此類函數(shù)用于設(shè)置繪圖時(shí)使用的顏色和設(shè)置窗口(視區(qū))。 (1)設(shè)置前景色函數(shù))設(shè)置前景色函數(shù)setcolor() 格式:格式:setcolor(color); 功能:設(shè)置下次繪圖時(shí)使用的顏色為功能:設(shè)置下次繪圖時(shí)使用的顏色為color指定的顏色值(即設(shè)置畫筆的顏色)。指定的顏色值(即設(shè)置畫筆的顏色)。 參數(shù)參數(shù)color的取值范圍為的取值范圍為 015,color也可以是顏色值對(duì)應(yīng)的符號(hào)常量。也可以是顏色值對(duì)應(yīng)的符號(hào)常量。 調(diào)用此函數(shù)后,此顏色立即生效,并保持到下一次調(diào)用它改變顏色為止。表調(diào)用此函數(shù)后,此顏色立即生效,并保持到下一次調(diào)用它改變顏色為止。表10-4列出常用列出常用的的EGA/VG

22、A方式下可用的顏色值。方式下可用的顏色值。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)19目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章10.2.2 Turbo C圖形函數(shù)圖形函數(shù)顏色值顏色值顏色顏色符號(hào)常量符號(hào)常量顏色值顏色值顏色顏色符號(hào)常量符號(hào)常量0 0黑黑BLACKBLACK8 8淡灰淡灰DARKGRAYDARKGRAY1 1藍(lán)藍(lán)BLUEBLUE9 9淡藍(lán)淡藍(lán)LIGHTBLUELIGHTBLUE2 2綠綠GREENGREEN1010淡綠淡綠LIGHTGREENLIGHTGREEN3 3青青CYANCYAN1111淡青淡青LIGHTCYANLIGHTCYAN4 4紅紅REDRED1

23、212淡紅淡紅LIGHTREDLIGHTRED5 5洋紅洋紅MAGENTAMAGENTA1313淡洋紅淡洋紅LIGHTMAGENTALIGHTMAGENTA6 6棕棕BROWNBROWN1414黃黃YELLOWYELLOW7 7淡灰淡灰LIGHTGRAYLIGHTGRAY1515白白WHITEWHITE20目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (2)設(shè)置背景色函數(shù))設(shè)置背景色函數(shù)setbkcolor() 格式:格式:setbkcolor(color); 功能:用于設(shè)置后面繪圖時(shí)的背景顏色。功能:用于設(shè)置后面繪圖時(shí)的背景顏色。 參數(shù)參數(shù)color的含義和取值范圍與上面的含義和取

24、值范圍與上面setcolor()函數(shù)中的函數(shù)中的color相同。相同。 如果改變了調(diào)色板或圖形方式,則表如果改變了調(diào)色板或圖形方式,則表10-4中的色彩就可能不對(duì)應(yīng)實(shí)際的顏色。中的色彩就可能不對(duì)應(yīng)實(shí)際的顏色。 (3)清屏函數(shù))清屏函數(shù)cleardevice() 格式:格式:cleardevice(); 功能:清除整個(gè)屏幕圖形,并將當(dāng)前光標(biāo)點(diǎn)重新設(shè)置在原點(diǎn)(功能:清除整個(gè)屏幕圖形,并將當(dāng)前光標(biāo)點(diǎn)重新設(shè)置在原點(diǎn)(0,0)處。)處。 說(shuō)明:說(shuō)明: 圖形方式下雖然也存在一個(gè)當(dāng)前光標(biāo)位置,但卻看不到。如果用戶想知道當(dāng)前點(diǎn)的實(shí)際位置,圖形方式下雖然也存在一個(gè)當(dāng)前光標(biāo)位置,但卻看不到。如果用戶想知道當(dāng)前點(diǎn)的

25、實(shí)際位置,可以使用函數(shù)可以使用函數(shù)getx()和和gety()得到當(dāng)前點(diǎn)的兩個(gè)坐標(biāo)值。得到當(dāng)前點(diǎn)的兩個(gè)坐標(biāo)值。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)21目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (4)設(shè)置視圖區(qū)函數(shù))設(shè)置視圖區(qū)函數(shù)setviewport() 格式:格式:setviewport(left, top, right, bottom, clip); 功能:在屏幕上開(kāi)辟一個(gè)區(qū)域,建立一個(gè)視圖區(qū)(類似于窗口,但它沒(méi)有明確的可看到的功能:在屏幕上開(kāi)辟一個(gè)區(qū)域,建立一個(gè)視圖區(qū)(類似于窗口,但它沒(méi)有明確的可看到的邊界),用于繪圖。邊界),用于繪圖。 參數(shù)都是整數(shù),其中,參數(shù)都

26、是整數(shù),其中,(left, top)為視圖區(qū)左上角的坐標(biāo),為視圖區(qū)左上角的坐標(biāo),(right, bottom)是視圖區(qū)右下角的是視圖區(qū)右下角的坐標(biāo),坐標(biāo),clip為裁剪狀態(tài)參數(shù)。若為裁剪狀態(tài)參數(shù)。若clip為為1,則表示在視圖中進(jìn)行的繪圖操作,超過(guò)視圖部分將自動(dòng),則表示在視圖中進(jìn)行的繪圖操作,超過(guò)視圖部分將自動(dòng)被裁剪掉;如果是被裁剪掉;如果是0,則不裁剪。,則不裁剪。 調(diào)用此函數(shù)后,后面所有的輸出坐標(biāo)都是相對(duì)于該窗口(視圖區(qū))的,即窗口的左上角是調(diào)用此函數(shù)后,后面所有的輸出坐標(biāo)都是相對(duì)于該窗口(視圖區(qū))的,即窗口的左上角是坐標(biāo)的原點(diǎn)(坐標(biāo)的原點(diǎn)(0,0),與屏幕上的坐標(biāo)無(wú)關(guān)。與屏幕上的坐標(biāo)無(wú)關(guān)

27、。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)22目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (4)設(shè)置視圖區(qū)函數(shù))設(shè)置視圖區(qū)函數(shù)setviewport() 格式:格式:setviewport(left, top, right, bottom, clip); 功能:在屏幕上開(kāi)辟一個(gè)區(qū)域,建立一個(gè)視圖區(qū)(類似于窗口,但它沒(méi)有明確的可看到的功能:在屏幕上開(kāi)辟一個(gè)區(qū)域,建立一個(gè)視圖區(qū)(類似于窗口,但它沒(méi)有明確的可看到的邊界),用于繪圖。邊界),用于繪圖。 (5)清除視圖區(qū)函數(shù))清除視圖區(qū)函數(shù)clearviewport() 格式:格式:clearviewport(); 功能:清除當(dāng)前視圖區(qū)

28、及其中的圖形,并將當(dāng)前點(diǎn)置于屏幕坐標(biāo)原點(diǎn)(功能:清除當(dāng)前視圖區(qū)及其中的圖形,并將當(dāng)前點(diǎn)置于屏幕坐標(biāo)原點(diǎn)(0,0)處。)處。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)23目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 3時(shí)間控制函數(shù)時(shí)間控制函數(shù) 此類函數(shù)用于控制繪圖動(dòng)作之間的間隔,一般用此類函數(shù)來(lái)實(shí)現(xiàn)動(dòng)畫效果。此類函數(shù)用于控制繪圖動(dòng)作之間的間隔,一般用此類函數(shù)來(lái)實(shí)現(xiàn)動(dòng)畫效果。 (1)系統(tǒng)暫停執(zhí)行函數(shù))系統(tǒng)暫停執(zhí)行函數(shù)delay() 格式:格式:delay(time); 功能:系統(tǒng)暫停執(zhí)行功能:系統(tǒng)暫停執(zhí)行time指定的時(shí)間。指定的時(shí)間。 time 的單位為毫秒,最大值為的單位為毫秒,最

29、大值為65535,不能為負(fù)數(shù)。,不能為負(fù)數(shù)。 (2)系統(tǒng)掛起函數(shù))系統(tǒng)掛起函數(shù)sleep() 格式:格式:sleep(time); 功能:系統(tǒng)掛起功能:系統(tǒng)掛起time指定的時(shí)間。指定的時(shí)間。 time的單位為秒,最大值的單位為秒,最大值65535,不能為負(fù)數(shù)。,不能為負(fù)數(shù)。10.2.2 Turbo C圖形函數(shù)圖形函數(shù)24目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 本節(jié)介紹畫點(diǎn)、畫線以及填充等常用函數(shù)。用繪圖函數(shù)畫圖時(shí),使用當(dāng)前的屏幕坐標(biāo)(也本節(jié)介紹畫點(diǎn)、畫線以及填充等常用函數(shù)。用繪圖函數(shù)畫圖時(shí),使用當(dāng)前的屏幕坐標(biāo)(也可能是視圖區(qū)的坐標(biāo))。在使用各種函數(shù)繪圖前,一般要先設(shè)置好前景色

30、、背景色、畫筆樣式可能是視圖區(qū)的坐標(biāo))。在使用各種函數(shù)繪圖前,一般要先設(shè)置好前景色、背景色、畫筆樣式等參數(shù)。等參數(shù)。 1點(diǎn)類函數(shù)點(diǎn)類函數(shù) (1)畫點(diǎn)函數(shù))畫點(diǎn)函數(shù)putpixel() 格式:格式:putpixel(x, y, color); 功能:在指定坐標(biāo)功能:在指定坐標(biāo)(x, y)處以指定的顏色處以指定的顏色color畫一個(gè)點(diǎn)。三個(gè)參數(shù)均是整數(shù)。畫一個(gè)點(diǎn)。三個(gè)參數(shù)均是整數(shù)。 (2)取某點(diǎn)顏色函數(shù))取某點(diǎn)顏色函數(shù)getpixel() 格式:格式:getpixel(x, y); 功能:以整數(shù)形式返回坐標(biāo)功能:以整數(shù)形式返回坐標(biāo)(x, y)處點(diǎn)的顏色值。處點(diǎn)的顏色值。10.2.3 基本繪圖函數(shù)基

31、本繪圖函數(shù)25目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (3)移動(dòng)當(dāng)前點(diǎn)函數(shù))移動(dòng)當(dāng)前點(diǎn)函數(shù)moveto() 格式:格式:moveto(x,y); 功能:將當(dāng)前點(diǎn)位置移動(dòng)到功能:將當(dāng)前點(diǎn)位置移動(dòng)到(x, y)處。此函數(shù)只改變當(dāng)前點(diǎn)位置,不畫線。處。此函數(shù)只改變當(dāng)前點(diǎn)位置,不畫線。x為橫坐標(biāo),為橫坐標(biāo),y為為縱坐標(biāo)??v坐標(biāo)。 兩個(gè)參數(shù)均是整數(shù),而且,它們的可選值范圍是隨著圖形方式的變化而變化的。若想得到兩個(gè)參數(shù)均是整數(shù),而且,它們的可選值范圍是隨著圖形方式的變化而變化的。若想得到當(dāng)前圖形方式下可用的最大坐標(biāo)值,可分別使用當(dāng)前圖形方式下可用的最大坐標(biāo)值,可分別使用getmaxx()和

32、和getmaxy()函數(shù)。函數(shù)。 (4)相對(duì)移動(dòng)當(dāng)前點(diǎn)函數(shù))相對(duì)移動(dòng)當(dāng)前點(diǎn)函數(shù)moverel() 格式:格式:moverel(dx, dy); 功能:將當(dāng)前點(diǎn)的位置相對(duì)移動(dòng)功能:將當(dāng)前點(diǎn)的位置相對(duì)移動(dòng)(dx, dy)個(gè)點(diǎn)。此函數(shù)也是只移動(dòng)點(diǎn),不畫線。兩個(gè)參數(shù)分個(gè)點(diǎn)。此函數(shù)也是只移動(dòng)點(diǎn),不畫線。兩個(gè)參數(shù)分別是屏幕坐標(biāo)別是屏幕坐標(biāo)x方向和方向和y方向的增量,可正可負(fù)。方向的增量,可正可負(fù)。10.2.3 基本繪圖函數(shù)基本繪圖函數(shù)26目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章【例【例10.2】在屏幕上以藍(lán)、綠兩種顏色交替畫點(diǎn)?!吭谄聊簧弦运{(lán)、綠兩種顏色交替畫點(diǎn)。#includemain()

33、 int gdriver=VGA; /*裝入裝入VGA驅(qū)動(dòng)程序驅(qū)動(dòng)程序*/ int gmode=VGAHI; /*置顯示模式為置顯示模式為VGAHI*/ int x; initgraph(&gdriver, &gmode, “”“”); /*初始化屏幕初始化屏幕*/ cleardevice(); /*清屏清屏*/ for(x=20;x=300;x+=16) putpixel(x, 20, 1); /*以藍(lán)色畫點(diǎn)以藍(lán)色畫點(diǎn)*/ putpixel(x+4, 20, 2); /*以綠色畫點(diǎn)以綠色畫點(diǎn)*/ getch(); closegraph(); /*關(guān)閉圖形模式關(guān)閉圖形模式*/10.2.3 基本

34、繪圖函數(shù)基本繪圖函數(shù)27目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 2畫線函數(shù)畫線函數(shù) (1)設(shè)置畫線模式函數(shù))設(shè)置畫線模式函數(shù)setlinestyle() 格式:格式:setlinestyle(linestyle, upattern, thickness); 功能:設(shè)置畫線函數(shù)的畫線方式,畫線方式在這里指畫線時(shí)所用的線型和寬度。功能:設(shè)置畫線函數(shù)的畫線方式,畫線方式在這里指畫線時(shí)所用的線型和寬度。 其中參數(shù)其中參數(shù)linestyle指定所畫線的類型,其值可取表指定所畫線的類型,其值可取表10-5中的值:中的值: 表表10-5 linestyle可選值表可選值表10.2.3 基本繪

35、圖函數(shù)基本繪圖函數(shù)符號(hào)名數(shù)值含義符號(hào)名數(shù)值含義SOLID_LINE0實(shí)線DASHED_LINE3破折線DOTTED_LINE1點(diǎn)線UNERBIT_LINE4用戶自定義線型CENTER_LINE2中心線28目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (2) 畫從畫從A點(diǎn)到點(diǎn)到B點(diǎn)的直線點(diǎn)的直線line()() 格式:格式:line(x0, y0, x1, y1); 功能:畫一條從點(diǎn)功能:畫一條從點(diǎn)(x0, y0)到點(diǎn)到點(diǎn)(x1, y1)的直線。函數(shù)的四個(gè)參數(shù)都必須是整型,其中的直線。函數(shù)的四個(gè)參數(shù)都必須是整型,其中x0和和x1的取值范圍是的取值范圍是0640,y0和和y1的取值范圍是

36、的取值范圍是0480。 (3)畫從當(dāng)前點(diǎn)到某點(diǎn)的直線)畫從當(dāng)前點(diǎn)到某點(diǎn)的直線lineto() 格式:格式:lineto(x, y); 功能:畫一條從當(dāng)前點(diǎn)到點(diǎn)功能:畫一條從當(dāng)前點(diǎn)到點(diǎn)(x, y)的直線。其中的直線。其中x、y的類型和取值同上。調(diào)用此函數(shù)后,當(dāng)?shù)念愋秃腿≈低?。調(diào)用此函數(shù)后,當(dāng)前點(diǎn)將變?yōu)榍包c(diǎn)將變?yōu)?x, y)。10.2.3 基本繪圖函數(shù)基本繪圖函數(shù)29目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (4)畫確定增量的直線)畫確定增量的直線linerel(dx, dy) 格式:格式:linerel(int dx, int dy); 功能:畫一條從當(dāng)前點(diǎn)功能:畫一條從當(dāng)前點(diǎn)(

37、x, y)到按相對(duì)增量確定的點(diǎn)到按相對(duì)增量確定的點(diǎn)(x+dx, y+dy)的直線。的直線。 調(diào)用此函數(shù)后,當(dāng)前點(diǎn)將變?yōu)檎{(diào)用此函數(shù)后,當(dāng)前點(diǎn)將變?yōu)?x+ dx, y+ dy)。從表面看,此函數(shù)的功能與。從表面看,此函數(shù)的功能與lineto()函數(shù)相同,函數(shù)相同,但此函數(shù)多用于但此函數(shù)多用于dx和和dy不確定的情況下,而不確定的情況下,而lineto()函數(shù)一般用于函數(shù)一般用于x、y已經(jīng)確定的情況。已經(jīng)確定的情況。10.2.3 基本繪圖函數(shù)基本繪圖函數(shù)30目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 3畫簡(jiǎn)單圖形(無(wú)填充)函數(shù)畫簡(jiǎn)單圖形(無(wú)填充)函數(shù) (1)畫矩形函數(shù))畫矩形函數(shù)rect

38、angle() 格式:格式:rectangle(x1, y1, x2, y2); 功能:以功能:以(x1, y1)為左上角,為左上角, (x2, y2)為右下角畫一個(gè)矩形框。為右下角畫一個(gè)矩形框。 (2)畫多邊形函數(shù))畫多邊形函數(shù)drawpoly() 格式:格式:drawpoly(numpoints,polypoints); 功能:畫一個(gè)頂點(diǎn)數(shù)為功能:畫一個(gè)頂點(diǎn)數(shù)為numpoints, 各頂點(diǎn)坐標(biāo)由各頂點(diǎn)坐標(biāo)由polypoints 給出的多邊形。第一個(gè)參數(shù)給出的多邊形。第一個(gè)參數(shù)numpoints指出多邊形的頂點(diǎn)數(shù),第二個(gè)參數(shù)指出多邊形的頂點(diǎn)數(shù),第二個(gè)參數(shù)polypoints是一個(gè)整型數(shù)組,數(shù)

39、組中存儲(chǔ)著是一個(gè)整型數(shù)組,數(shù)組中存儲(chǔ)著numpoints個(gè)頂點(diǎn)的坐標(biāo)值序列。個(gè)頂點(diǎn)的坐標(biāo)值序列。10.2.3 基本繪圖函數(shù)基本繪圖函數(shù)31目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (3)畫圓函數(shù))畫圓函數(shù)circle() 格式:格式:circle(x, y, radius); 功能:畫一個(gè)以功能:畫一個(gè)以(x, y)為圓心,半徑為為圓心,半徑為radius的圓。參數(shù)均為整數(shù)。的圓。參數(shù)均為整數(shù)。 (4)畫弧函數(shù))畫弧函數(shù)arc() 格式:格式:arc(x, y, stangle, endangle, radius); 功能:本函數(shù)以功能:本函數(shù)以(x, y)為中心點(diǎn),為中心點(diǎn),r

40、adius為半徑,從起始角為半徑,從起始角stangle到終止角到終止角endangle之間以之間以當(dāng)前前景顏色畫一個(gè)圓弧。當(dāng)前前景顏色畫一個(gè)圓弧。 參數(shù)都是整數(shù),參數(shù)都是整數(shù),stangle和和endangle使用角度值表示。從使用角度值表示。從x軸方向逆時(shí)針旋轉(zhuǎn),依次經(jīng)過(guò)軸方向逆時(shí)針旋轉(zhuǎn),依次經(jīng)過(guò)90、180、270度。當(dāng)旋轉(zhuǎn)至度。當(dāng)旋轉(zhuǎn)至360度時(shí),和度時(shí),和x軸重合,當(dāng)半徑從軸重合,當(dāng)半徑從x軸方向開(kāi)始順時(shí)針旋轉(zhuǎn)時(shí),形成負(fù)角度。軸方向開(kāi)始順時(shí)針旋轉(zhuǎn)時(shí),形成負(fù)角度。10.2.3 基本繪圖函數(shù)基本繪圖函數(shù)32目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (5)畫橢圓弧函數(shù))畫橢圓

41、弧函數(shù)ellipse() 格式:格式:ellipse(x, y, stangle, endangle, xradius, yradius); 功能:以功能:以(x, y)為中心,以為中心,以xradius為為x軸半徑,軸半徑,yradius為為y軸半徑,從起始角軸半徑,從起始角stangle到終止角到終止角endangle之間以當(dāng)前前景色畫一個(gè)橢圓弧。如果起始角是之間以當(dāng)前前景色畫一個(gè)橢圓弧。如果起始角是0,終止角是終止角是360,畫出的是一個(gè)完整的橢畫出的是一個(gè)完整的橢圓。角度的規(guī)定同上。圓。角度的規(guī)定同上。10.2.3 基本繪圖函數(shù)基本繪圖函數(shù)33目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫

42、處理第10章 1設(shè)置填充模式和顏色函數(shù)設(shè)置填充模式和顏色函數(shù)setfillstyle() 格式:格式:void setfillstyle(int pattern, int color); 功能:設(shè)置填充模式功能:設(shè)置填充模式pattern和顏色和顏色color。Turbo C的圖形系統(tǒng)中已經(jīng)預(yù)定義了多種模式,如的圖形系統(tǒng)中已經(jīng)預(yù)定義了多種模式,如表表10-6所示。程序中既可以使用符號(hào)常量,也可以直接使用表中對(duì)應(yīng)的數(shù)值。所示。程序中既可以使用符號(hào)常量,也可以直接使用表中對(duì)應(yīng)的數(shù)值。10.2.4 填充類函數(shù)填充類函數(shù)符號(hào)名符號(hào)名數(shù)值數(shù)值含義含義符號(hào)名符號(hào)名數(shù)值數(shù)值含義含義EMPTY_FILLEMP

43、TY_FILL0 0用背景色填充用背景色填充SOLID_FILLSOLID_FILL1 1實(shí)填充實(shí)填充LINE_FILLLINE_FILL2 2用用-填充填充LTSLASH_FILLLTSLASH_FILL3 3用細(xì)用細(xì)/填充填充SLASH_FILLSLASH_FILL4 4用粗用粗/填充填充BKSLASH_FILLBKSLASH_FILL5 5用細(xì)用細(xì)填充填充LTBKSLASH_FILLLTBKSLASH_FILL6 6用粗用粗填充填充HATCH_FILLHATCH_FILL7 7用網(wǎng)線填充用網(wǎng)線填充XHATCH_FILLXHATCH_FILL8 8用交叉線填充用交叉線填充INTERLEAV

44、E_FILLINTERLEAVE_FILL9 9用間隔線填充用間隔線填充WIDE_DOT_FILLWIDE_DOT_FILL1010用寬間斷點(diǎn)填充用寬間斷點(diǎn)填充CLOSE_DOT_FILLCLOSE_DOT_FILL1111用密集點(diǎn)填充用密集點(diǎn)填充USER_FILLUSER_FILL1212用戶自定義填充用戶自定義填充34目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 2填充任意特定封閉區(qū)域函數(shù)填充任意特定封閉區(qū)域函數(shù)floodfill() 格式:格式:floodfill(x, y, bcolor); 功能:填充一個(gè)封閉的區(qū)域。功能:填充一個(gè)封閉的區(qū)域。 參數(shù)參數(shù)(x, y)指被填充區(qū)

45、域中的一個(gè)點(diǎn),指被填充區(qū)域中的一個(gè)點(diǎn),bcolor指出填充區(qū)域的邊界顏色。其中:指出填充區(qū)域的邊界顏色。其中: (x, y)為封閉為封閉圖形內(nèi)的任意一點(diǎn)。圖形內(nèi)的任意一點(diǎn)。border為邊界的顏色為邊界的顏色, 也就是封閉圖形輪廓的顏色。調(diào)用了該函數(shù)后也就是封閉圖形輪廓的顏色。調(diào)用了該函數(shù)后, 將用將用函數(shù)函數(shù)setfillstyle規(guī)定的顏色和圖模填滿整個(gè)封閉圖形。規(guī)定的顏色和圖模填滿整個(gè)封閉圖形。 注意:注意: 如果如果x或或y取在邊界上取在邊界上, 則不進(jìn)行填充。則不進(jìn)行填充。 如果不是封閉圖形則填充會(huì)從沒(méi)有封閉的地方溢出去如果不是封閉圖形則填充會(huì)從沒(méi)有封閉的地方溢出去, 填滿其它地方。

46、填滿其它地方。 如果如果x或或y在圖形外面在圖形外面, 則填充封閉圖形外的屏幕區(qū)域。則填充封閉圖形外的屏幕區(qū)域。 由由border指定的顏色值必須與圖形輪廓的顏色值相同。指定的顏色值必須與圖形輪廓的顏色值相同。10.2.4 填充類函數(shù)填充類函數(shù)35目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 3帶填充畫圖函數(shù)帶填充畫圖函數(shù) 本類函數(shù)不需要設(shè)置開(kāi)始填充點(diǎn),而是在繪制圖形時(shí)直接使用由本類函數(shù)不需要設(shè)置開(kāi)始填充點(diǎn),而是在繪制圖形時(shí)直接使用由setfillstyle()函數(shù)設(shè)置的模函數(shù)設(shè)置的模式和顏色進(jìn)行填充。式和顏色進(jìn)行填充。 (1)畫直方圖函數(shù))畫直方圖函數(shù)bar() 格式:格式:bar

47、(x1,y1,x2,y2); 功能:確定一個(gè)以功能:確定一個(gè)以(x1, y1)為左上角為左上角, (x2, y2)為右下角的矩形窗口為右下角的矩形窗口, 再按規(guī)定模式和顏色填充。再按規(guī)定模式和顏色填充。此函數(shù)不畫出邊框此函數(shù)不畫出邊框, 即直方圖的邊框顏色與填充色相同。即直方圖的邊框顏色與填充色相同。 (2)畫立方圖函數(shù))畫立方圖函數(shù)bar3d() 格式:格式:bar3d(x1, y1, x2, y2, depth, topflag); 功能:當(dāng)功能:當(dāng)topflag為非為非0時(shí)時(shí), 畫出一個(gè)三維的長(zhǎng)方體。畫出一個(gè)三維的長(zhǎng)方體。10.2.4 填充類函數(shù)填充類函數(shù)36目錄頁(yè)10.2 Turbo

48、C的圖形與動(dòng)畫處理第10章 (3)畫并填充多邊形函數(shù))畫并填充多邊形函數(shù)fillpoly() 格式:格式:fillpoly(numpoints, polypoints); 功能:此函數(shù)使用當(dāng)前線型和前景色畫多邊形,并使用當(dāng)前的填充模式和填充顏色填充這功能:此函數(shù)使用當(dāng)前線型和前景色畫多邊形,并使用當(dāng)前的填充模式和填充顏色填充這個(gè)多邊形。參數(shù)的取值與個(gè)多邊形。參數(shù)的取值與drawpoly()完全相同。完全相同。 (4)畫并填充橢圓函數(shù))畫并填充橢圓函數(shù)fillellipse() 格式:格式:fillellipse(x, y, xradius, yradius); 功能:以功能:以(x, y)為中

49、心,分別以為中心,分別以xradius和和yradius為橫半軸和縱半軸,繪制并填充一個(gè)橢圓。為橫半軸和縱半軸,繪制并填充一個(gè)橢圓。 使用當(dāng)前的線型和前景色畫邊線,以當(dāng)前的填充模式和填充顏色填充橢圓內(nèi)部。使用當(dāng)前的線型和前景色畫邊線,以當(dāng)前的填充模式和填充顏色填充橢圓內(nèi)部。10.2.4 填充類函數(shù)填充類函數(shù)37目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (5)畫并填充扇形函數(shù))畫并填充扇形函數(shù)pieslice() 格式:格式:pieslice(x, y, stangle, endangle, radius); 功能:以功能:以(x, y)為中心,為中心,stangle和和endan

50、gle是起始角度和終止角度,是起始角度和終止角度,radius是扇形的半徑。使是扇形的半徑。使用當(dāng)前的前景色和線型畫出扇形的輪廓線,并以當(dāng)前的填充模式和填充顏色填充其內(nèi)部的區(qū)域。用當(dāng)前的前景色和線型畫出扇形的輪廓線,并以當(dāng)前的填充模式和填充顏色填充其內(nèi)部的區(qū)域。 (6)畫并填充橢圓扇區(qū)函數(shù))畫并填充橢圓扇區(qū)函數(shù)sector() 格式:格式:sector(x, y, stangle, endangle, xradius, yradius); 功能:以功能:以(x, y)為中心,為中心,stangle和和endangle是起始角度和終止角度,是起始角度和終止角度,xradius和和yradius分

51、別為分別為橫半軸半徑和縱半軸半徑。橫半軸半徑和縱半軸半徑。10.2.4 填充類函數(shù)填充類函數(shù)38目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 1.設(shè)置字體函數(shù)設(shè)置字體函數(shù) 格式:格式:settextstyle(font, direction, charsize); 功能:用于設(shè)置圖形方式下輸出文本時(shí)使用的字體名稱、文本顯示的方向和字符的大小功能:用于設(shè)置圖形方式下輸出文本時(shí)使用的字體名稱、文本顯示的方向和字符的大?。▽?shí)際是放大倍數(shù))。(實(shí)際是放大倍數(shù))。 參數(shù)參數(shù)font指定選用的字體名稱或代號(hào),它的取值范圍見(jiàn)表指定選用的字體名稱或代號(hào),它的取值范圍見(jiàn)表10-7: 表表10-7 fo

52、nt可選值表可選值表10.2.5 圖形方式下的文本輸出圖形方式下的文本輸出符號(hào)名符號(hào)名數(shù)值數(shù)值含義含義符號(hào)名符號(hào)名數(shù)值數(shù)值含義含義DEFAULT_FONTDEFAULT_FONT0 08 8* *8 8點(diǎn)陣字體(默認(rèn))點(diǎn)陣字體(默認(rèn)) TRIPLEX_FONTTRIPLEX_FONT1 1三倍筆劃字體三倍筆劃字體SMALL_FONTSMALL_FONT2 2小號(hào)筆劃字體小號(hào)筆劃字體SAN_SERIF_FONTSAN_SERIF_FONT3 3無(wú)襯線筆劃字體無(wú)襯線筆劃字體GOTHIC_FONTGOTHIC_FONT4 4黑體筆劃字體黑體筆劃字體39目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第

53、10章 2 .輸出字符串函數(shù)輸出字符串函數(shù) Turbo C圖形方式下輸出字符串的函數(shù)有兩個(gè):圖形方式下輸出字符串的函數(shù)有兩個(gè): (1)在當(dāng)前位置輸出字符串函數(shù)在當(dāng)前位置輸出字符串函數(shù)outtext() 格式:格式:outtext(textstring); 功能:此函數(shù)在當(dāng)前位置使用當(dāng)前前景色輸出字符串功能:此函數(shù)在當(dāng)前位置使用當(dāng)前前景色輸出字符串textstring。輸出格式采用。輸出格式采用settextstyle()的設(shè)置或缺省值。的設(shè)置或缺省值。textstring為字符型指針為字符型指針, 指向文本在現(xiàn)行位置。指向文本在現(xiàn)行位置。 注意:在圖形方式下,當(dāng)前位置是不可見(jiàn)的。注意:在圖形方

54、式下,當(dāng)前位置是不可見(jiàn)的。10.2.5 圖形方式下的文本輸出圖形方式下的文本輸出40目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (2)在指定位置輸出字符串函數(shù)在指定位置輸出字符串函數(shù)outtextxy() 格式:格式:outtextxy(x, y, textstring); 功能:在功能:在(x, y)處使用當(dāng)前前景色輸出字符串處使用當(dāng)前前景色輸出字符串textstring。格式采用。格式采用settextstyle()的設(shè)置或缺省的設(shè)置或缺省值。值。textstring為字符型指針為字符型指針, 指向文本的現(xiàn)行位置。指向文本的現(xiàn)行位置。 說(shuō)明說(shuō)明: 這兩個(gè)函數(shù)都是輸出字符串這兩個(gè)

55、函數(shù)都是輸出字符串, 但經(jīng)常會(huì)遇到輸出數(shù)值或其它類型的數(shù)據(jù)但經(jīng)常會(huì)遇到輸出數(shù)值或其它類型的數(shù)據(jù),此時(shí)就必須使用格式此時(shí)就必須使用格式化輸出函數(shù)化輸出函數(shù)sprintf()。 sprintf()函數(shù)的調(diào)用格式為:函數(shù)的調(diào)用格式為: sprintf(char *str, char *format, variable-list); 10.2.5 圖形方式下的文本輸出圖形方式下的文本輸出41目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 所謂動(dòng)畫設(shè)計(jì),就是將一個(gè)畫面分解成不同時(shí)間出現(xiàn)的圖像,快速地擦抹并顯示在屏幕上,所謂動(dòng)畫設(shè)計(jì),就是將一個(gè)畫面分解成不同時(shí)間出現(xiàn)的圖像,快速地擦抹并顯示在屏幕上

56、,使人的視覺(jué)差異而產(chǎn)生動(dòng)的感覺(jué)。動(dòng)畫設(shè)計(jì)被廣泛運(yùn)用于游戲設(shè)計(jì)、課件制作、實(shí)驗(yàn)?zāi)M以及使人的視覺(jué)差異而產(chǎn)生動(dòng)的感覺(jué)。動(dòng)畫設(shè)計(jì)被廣泛運(yùn)用于游戲設(shè)計(jì)、課件制作、實(shí)驗(yàn)?zāi)M以及仿真科學(xué)等。仿真科學(xué)等。 注意:注意: 動(dòng)畫只是運(yùn)用一些時(shí)間控制函數(shù),利用人眼的視覺(jué)差異而已。實(shí)現(xiàn)動(dòng)畫要綜合運(yùn)用圖形函動(dòng)畫只是運(yùn)用一些時(shí)間控制函數(shù),利用人眼的視覺(jué)差異而已。實(shí)現(xiàn)動(dòng)畫要綜合運(yùn)用圖形函數(shù)的知識(shí),并具有一定的想象力和數(shù)據(jù)描述能力,在例數(shù)的知識(shí),并具有一定的想象力和數(shù)據(jù)描述能力,在例10.4、例、例10.5中,我們已經(jīng)運(yùn)用了動(dòng)畫設(shè)中,我們已經(jīng)運(yùn)用了動(dòng)畫設(shè)計(jì)技術(shù)思想,實(shí)現(xiàn)了畫面動(dòng)的感覺(jué)。計(jì)技術(shù)思想,實(shí)現(xiàn)了畫面動(dòng)的感覺(jué)。10.

57、2.6 動(dòng)畫設(shè)計(jì)技術(shù)動(dòng)畫設(shè)計(jì)技術(shù)42目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 1存、取圖形存、取圖形 (1)求存儲(chǔ)屏幕圖像所需空間)求存儲(chǔ)屏幕圖像所需空間imagesize() 格式:格式:imagesize(x1,y1,x2,y2); 功能:求存儲(chǔ)屏幕圖像左上角功能:求存儲(chǔ)屏幕圖像左上角(x1,y1)到右下角到右下角(x2,y2)的方塊所需字節(jié)數(shù)。的方塊所需字節(jié)數(shù)。 (2)存儲(chǔ)圖像函數(shù))存儲(chǔ)圖像函數(shù)getimage() 格式:格式:getimage(x1,y1,x2,y2,* buf); 功能:存儲(chǔ)屏幕圖像左上角功能:存儲(chǔ)屏幕圖像左上角(x1,y1)到右下角到右下角(x2,y2

58、)的方塊到的方塊到buf所指向的存儲(chǔ)區(qū)域。所指向的存儲(chǔ)區(qū)域。10.2.6 動(dòng)畫設(shè)計(jì)技術(shù)動(dòng)畫設(shè)計(jì)技術(shù)43目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 (3)復(fù)制存儲(chǔ)圖像函數(shù))復(fù)制存儲(chǔ)圖像函數(shù)outimage() 格式:格式:putimage(x,y,* buf,op) 功能:將用功能:將用getimage()存儲(chǔ)在存儲(chǔ)在buf所指向的內(nèi)存中的圖像復(fù)制到屏幕上,左上角位于所指向的內(nèi)存中的圖像復(fù)制到屏幕上,左上角位于(x,y)處。處。其中其中op為操作模式,含義如表為操作模式,含義如表10-10:10.2.6 動(dòng)畫設(shè)計(jì)技術(shù)動(dòng)畫設(shè)計(jì)技術(shù)符號(hào)名符號(hào)名數(shù)值數(shù)值含義含義符號(hào)名符號(hào)名數(shù)值數(shù)值含義含義

59、COPY_PUTCOPY_PUT0 0原樣寫到屏幕原樣寫到屏幕XOR_PUTXOR_PUT1 1與屏幕上的點(diǎn)異或后寫與屏幕上的點(diǎn)異或后寫OR_PUTOR_PUT2 2與屏幕上的點(diǎn)或后寫與屏幕上的點(diǎn)或后寫AND_PUTAND_PUT3 3與屏幕上的點(diǎn)與后寫與屏幕上的點(diǎn)與后寫NOT_PUTNOT_PUT4 4原圖像變反后再寫原圖像變反后再寫44目錄頁(yè)10.2 Turbo C的圖形與動(dòng)畫處理第10章 2頁(yè)操作頁(yè)操作 存儲(chǔ)在圖像存儲(chǔ)器存儲(chǔ)在圖像存儲(chǔ)器VRAM中的一滿屏圖像信息稱為一頁(yè),一般為中的一滿屏圖像信息稱為一頁(yè),一般為64KB大小。大小。 Turbo C圖形方式下最多可支持圖形方式下最多可支持4

60、頁(yè),一般可支持兩頁(yè)。對(duì)活動(dòng)頁(yè)可以編輯圖像,對(duì)可視頁(yè)頁(yè),一般可支持兩頁(yè)。對(duì)活動(dòng)頁(yè)可以編輯圖像,對(duì)可視頁(yè)可以顯示圖像。相關(guān)函數(shù)如下:可以顯示圖像。相關(guān)函數(shù)如下: (1)setactivepage(n) 函數(shù)函數(shù) 功能:設(shè)置活動(dòng)圖形頁(yè)。功能:設(shè)置活動(dòng)圖形頁(yè)。 (2)setvisualpage(n) 函數(shù)函數(shù) 功能:設(shè)置當(dāng)前顯示圖形頁(yè)。功能:設(shè)置當(dāng)前顯示圖形頁(yè)。 函數(shù)中參數(shù)函數(shù)中參數(shù)n為頁(yè)號(hào),缺省值為為頁(yè)號(hào),缺省值為0頁(yè)。調(diào)用頁(yè)。調(diào)用setactivepage(),則程序后續(xù)圖形輸出被寫到此頁(yè),則程序后續(xù)圖形輸出被寫到此頁(yè),然后用然后用setvisualpage()改變顯示頁(yè),從而產(chǎn)生動(dòng)畫效果。改變顯

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論