freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

c語言圖形程序設(shè)計(jì)基礎(chǔ)(2)(已修改)

2025-01-24 17:17 本頁面
 

【正文】 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 1 ? 計(jì)算機(jī)圖形學(xué)是一門實(shí)踐性很強(qiáng)的課程。通過程序設(shè)計(jì)來完成圖形的繪制,對深刻理解課程的內(nèi)容和相關(guān)概念非常重要。 ? 程序設(shè)計(jì)語言是進(jìn)行計(jì)算機(jī)繪圖的基礎(chǔ),現(xiàn)在大多數(shù)高級語言都具有基本繪圖功能。 ? 本章主要介紹 用 C語言進(jìn)行圖形程序設(shè)計(jì)的基本方法 和 C語言的圖形功能 ,使大家對 C語言的圖形應(yīng)用有一個(gè)較深刻的理解。 WIN- TC 第三章 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 2 、屏幕設(shè)置 ? 我們在屏幕上進(jìn)行繪制圖形,一般要按以下幾個(gè)步驟執(zhí)行: ( 1)把屏幕設(shè)置為圖形模式; ( 2)選擇背景與顯示實(shí)體的顏色; ( 3)計(jì)算圖形顯示坐標(biāo); ( 4)調(diào)用繪圖語句繪制實(shí)體 、屏幕顯示模式與坐標(biāo)系 在屏幕上只能顯示字符的方式稱為文本模式 。在文本模式下,屏幕上可以顯示的最小單位是字符。為了能在指定的位置顯示每個(gè)字符, C語言提供了 字符坐標(biāo)系 。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 3 ? 字符坐標(biāo)系 是以屏幕的左上角為坐標(biāo)原點(diǎn),水平方向?yàn)? X軸,垂直方向?yàn)?Y軸,如下圖 1所示: 圖 1 字符坐標(biāo)系 Max x Max y (1,1) 注:字符坐標(biāo)系的原點(diǎn)為( 1, 1),水平方向( X軸)分為若干列,垂直方向 ( Y軸)分為若干行,用一對坐標(biāo)可以指定屏幕上一個(gè)位置。 ( 8,20) 表示字符位于屏幕的第 8行第 20列 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 4 ( 1) BW40:黑白 40列方式。顯示 25行文本,其中每行 40個(gè)字符,以黑白兩色顯示。 ( 2) C40:彩色 40列方式。可顯示 40列 25行彩色字符。 ( 3) BW80:黑白 80列方式??娠@示 80列 25行字符。 ( 4) C80:彩色 80列 25行顯示方式。 ( 5) MONO:單色 80列 25行顯示方式。 ( 6) C4350:一種特殊的彩色文本方式,適和 EGA和 VGA兩種適配器。 若用 EGA適配器,顯示 80列 43行;若用 VGA適配器,則顯示 80列 50行 。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 由于 顯示模式 的不同 ,所顯示的字符的列數(shù)和行數(shù)以及顏色也不相同。 C支持以下 6種不同的顯示方式。 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 5 ? 在不同的顯示模式下,屏幕所顯示的字符數(shù)量也不一樣。 ? X方向一般為 40列或 80列, Y方向一般為 25行,但 EGA和VGA適配器可達(dá) 43行或 50行。 ? 在文本模式下,屏幕最多可顯示 80X50=4000個(gè)字符,至少可顯示 40X25=1000個(gè)字符。顯示字符越多,每個(gè)字符尺寸越小,反之越大 。 ? 顯示模式不同,屏幕坐標(biāo)的構(gòu)成也不相同。比如: ( 1)在 BW40方式下,最大坐標(biāo)位置為( 25, 40); ( 2)在 C4350方式下,最大坐標(biāo)位置為( 50, 80); 注: C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 6 2. 圖形模式與點(diǎn)坐標(biāo)系 在屏幕上顯示圖形的方式稱為圖形模式 。在圖形模式下 ,屏幕是由像素點(diǎn)組成的 ,像素點(diǎn)的多少?zèng)Q定了屏幕的分辨率。分辨率越高 ,顯示圖形越細(xì)致 ,質(zhì)量越好。 ?如右圖所示 組成; 決于分辨率的高低; C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 7 ? 例如: CGA顯示器的分辨率為 300X200, TVG顯 示器的分辨率為 1024X768, TVGA比 CGA分率高。 圖 2 點(diǎn)坐標(biāo)系 Max x Max y (0,0) 注:點(diǎn)坐標(biāo)系坐標(biāo)值的范圍取決于所用的 適配器 /顯示分辨率 C語言圖形程序設(shè)計(jì)基礎(chǔ) ? 在圖形模式下,屏幕上每個(gè)像素的顯示位置用點(diǎn) 坐標(biāo)來描述的。點(diǎn)坐標(biāo)系 是以屏幕左上角為坐標(biāo)原點(diǎn)( 0, 0),水平方向?yàn)?X軸,自左向右;垂直方向?yàn)閅軸,自上向下 。如下圖所示: 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 8 ? 由于屏幕的分辨率不同,水平方向和垂直方向的點(diǎn)數(shù)也不一樣,從而 點(diǎn)坐標(biāo)系的 Max x 、 Max y 數(shù)值 也不同。 ? 在 C程序中,坐標(biāo)數(shù)據(jù)可以用兩種形式給出: 一種是絕對坐標(biāo),另一種是相對坐標(biāo)。 ( 1) 絕對坐標(biāo) 的參考點(diǎn)是坐標(biāo)的原點(diǎn)( 0, 0), x和 y只能取規(guī)定范圍( 0, Max x )和( 0, Max y )內(nèi)的正整數(shù); ( 2) 相對坐標(biāo) 是相對“當(dāng)前點(diǎn)”的坐標(biāo),其坐標(biāo)的參考點(diǎn)是當(dāng)前點(diǎn)。在相對坐標(biāo)中, x和 y的取值是相對當(dāng)前點(diǎn)在 x方向和 y方向上的增量,故 x和 y可以為正整數(shù),也可以為負(fù)整數(shù)。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 9 、圖形驅(qū)動(dòng)程序與圖形模式 對于不同的圖形顯示器,其控制方式各有差異, 因此要顯示圖形就需要先裝入相應(yīng)的圖形驅(qū)動(dòng)程序 。 C 支持以下幾種圖形驅(qū)動(dòng)程序: 符號常量 數(shù)值 符號常量 數(shù)值 DETECT 0 IBM8514 6 CGA 1 HERCMONO 7 MCGA 2 ATT400 8 EGA 3 VGA 9 EGA64 4 PC3270 10 EGAMONO 5 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 10 由于每種圖形顯示器都有幾種不同的圖形顯示模式,所以要顯示圖形,不但要先 裝入相應(yīng)的驅(qū)動(dòng)程序 ,而且還要決定所用的顯示模式 。 C 語言程序常采用的幾種圖形驅(qū)動(dòng)程序及相應(yīng)的模式 驅(qū)動(dòng)程序 (driver) 圖形( gmode) 等價(jià)值 分辨( dpi) CGAC0 0 320X200 CGA CGAC1 1 320X200 CGAC2 2 320X200 CGAC3 3 320X200 CGAHI 4 640X200 表 圖形驅(qū)動(dòng)程序及相應(yīng)的模式 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 11 驅(qū)動(dòng)程序 (driver) 圖形( gmode) 等價(jià)值 分辨( dpi) EGA EGAHI 0 640X200 EGALO 1 640X350 VGALO 0 640X200 VGA VGAMED 1 640X350 VGAHI 2 640X480 ? 注 :1. 不同的圖形驅(qū)動(dòng)程序有不同的圖形模式 。 2. 同一圖形驅(qū)動(dòng)程序 ,也可能會(huì)有幾種圖形模式 。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 12 ? C提供了十分豐富的圖形庫函數(shù),共有 70多個(gè),所有圖形函數(shù)的原型均在頭文件“ ”中定義。所以,在任何使用圖形函數(shù)的程序中,都要求其頭部包含文件 ,即在程序文件的開頭寫上文件包含命令: include 同時(shí)將集成開發(fā)環(huán)境 option/Linker中的 選項(xiàng)設(shè)置為 ”on”。 下面我們介紹: 圖形系統(tǒng)的初始化 、 圖形系統(tǒng)的關(guān)閉 、 圖形模式控制。 、圖形系統(tǒng)初始化和模式控制 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 13 ? 圖形系統(tǒng)初始化首先要調(diào)用 initgraph()函數(shù) ,它通過從磁盤上裝入一個(gè)圖形驅(qū)動(dòng)程序來初始化圖形系統(tǒng) ,并將系統(tǒng)設(shè)置為 圖 形模式 。 ? 圖形模式是有別于文本模式的一種計(jì)算機(jī)屏幕顯示模式。屏幕一般在默認(rèn)情況下為 80列 25行的文本模式,在文本模式下,所有的圖形函數(shù)均不能操作, 因此在使用圖形函數(shù)繪圖之前,必須將屏幕顯示適配器設(shè)置為一種圖形模式,即為 圖形初始化過程。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 14 [功能 ] 將圖形驅(qū)動(dòng)軟件裝入內(nèi)存,使屏幕顯示適配器設(shè)置為圖形模式,即圖形系統(tǒng)初始化; [說明 ] 1. gdriver是一個(gè)整型值 ,用來指定要裝入的圖形驅(qū)動(dòng)程序 。該值在頭文件 ; 2. gmode是一個(gè)整型值 ,用來設(shè)置圖形顯示模式。圖形顯示模式?jīng)Q定了顯示的分辨率和顯示的顏色的多少等; 3. path是一個(gè)字符串,用來指明圖形驅(qū)動(dòng)程序所在的路徑 . ?,則 path可為空字符串,否則應(yīng)給出具體路徑名 。 一般情況下 ,TurboC安裝在 C盤的 TC目錄中,則該路徑為: C:\TC,若寫在參數(shù)中則為“ C:\\TC” 。 ?,調(diào)用時(shí)應(yīng)加上地址運(yùn)算符“ amp?!?。 注: ?initgraph()函數(shù) [格式 ] void far initgraph(int *gdriver,int *gmode,char *path)。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 15 ( 1)已知顯示器類型的圖形系統(tǒng)初始化 。 如果已經(jīng)知道所用圖形顯示器的種類和要使用的圖形模式 則圖形系統(tǒng)的初始化可用下面程序,例如: 例 1 畫一實(shí)心矩形 include main() { int gdriver,gmode。 ? gdriver=CGA。 /*設(shè)置顯示模式 CGA*/ ? gmode=CGAC0。 /*選用 CGA圖形模式 */ ? initgraph(amp。gdriver,amp。gmode,“D:\\TC)。 ? /*初始化圖形系統(tǒng) */ C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 16 ? bar3d(10,20,50,80,0,0)。 /*畫一條形圖 */ ? getch()。 /*等待按一鍵結(jié)束 */ ? closegraph()。 /*關(guān)閉圖形系統(tǒng),回到文本模式 */ } 程序注釋 : ? bar3d()函數(shù) [格式 ]: void bar3d(int x1,int y1,int x2,int y2, int depth,int topflag)。 [功能 ]: 畫一填充的 三維條形圖 。 [說明 ]: depth為條形的深度 。 topflag=0則不加頂 ,否 則在條形圖上加一個(gè)頂。 C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 17 [格式 ] void far detectgraph(int *gdriver,int *gmode )。 [功能 ] 在計(jì)算機(jī)有圖形適配器的情況下,確定圖形適配器的類型; [說明 ] ,則把 gdriver指的變量設(shè)置為適合于適配器的 圖形驅(qū)動(dòng)程序的代碼 ,并把 gmode所指的變量設(shè)置為適配器所能支持的 最高分辨率 。 統(tǒng)無圖形適配器 ,則 gdriver所指的變量為 2. ( 2)不知顯示器類型的圖形系統(tǒng)初始化。 若在編寫程序過程中,不知道當(dāng)前系統(tǒng)屏幕硬件的 類型或編寫的程序要用于不同的圖形顯示器,這就要 求所編程序能知當(dāng)前圖形顯示器的代碼, Turbo C供 了一個(gè)對圖形顯示器硬件測試的函數(shù) detectgraph()。 ?detectgraph()函數(shù) C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 18 ? 例 測試硬件顯示模式和繪制圖形 include main() { int gdriver,gmode。 detectgraph(amp。gdriver,amp。gmode)。 /*測試結(jié)果存放于 gdriver,gmode中 */ if(gdriver0) { printf(there is not graphics displayer\n)。 exit(1)。 } /*無圖形顯示模式時(shí),顯示信息,停止程序 */ printf(detect graphics driver is %d,mode is %d \n,gdriver,gmode)。 /*顯示硬件測試結(jié)果 */ getch()。 /*等待按一鍵結(jié)束 */ C語言圖形程序設(shè)計(jì)基礎(chǔ) 2022/2/9 西安工程大學(xué)數(shù)學(xué)系 19 initgraph(amp。gdriver,amp。gmode,c:\\tc) 。
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
公安備案圖鄂ICP備17016276號-1