昆明理工大學自動顯示實驗2報告全解_第1頁
昆明理工大學自動顯示實驗2報告全解_第2頁
昆明理工大學自動顯示實驗2報告全解_第3頁
昆明理工大學自動顯示實驗2報告全解_第4頁
昆明理工大學自動顯示實驗2報告全解_第5頁
已閱讀5頁,還剩5頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、10上機實驗二C語言圖形基礎知識、上機實驗目的1 認識c語言程序中的圖形參數(shù)和有關圖形顯示的基礎知識;2. 學習C語言各種圖形函數(shù)和圖形命令及其使用;3. 學習并運行圖形顯示例程,掌握 C語言圖形編程基本常識。、實驗設備及軟件1.計算機系統(tǒng) 1套;2.C語言教程軟件CAI2.01 套;3.C預壓編程軟件TC2.01套;4.課程多媒體教程軟件1套。三、上機實驗內容1. 學習教程中有關圖形的基礎知識圖形模式初始化設置、顏色代碼調用、圖形顯示基本功能等;2. 認識并掌握C語言圖形函數(shù)及其使用各種圖形的C預壓函數(shù),如點、直線、矩形、圓、扇形、橢圓機多邊形等;圖形函數(shù)的 基本表示、含義及基本應用;3.

2、初步認識C語言圖形函數(shù)的編程與運行在C語言環(huán)境下,運行圖形程序實例,觀察顯示結果,分析程序結構和含義,學習C語言圖形函數(shù)的編程應用;4. 修改相關程序內容,觀察運行結果,總結經(jīng)驗和結論分析。四、程序運行及修改1.1程序實例運行截圖及修改后的截圖圖2.2八卦圖修改后截圖1、八卦圖圖2.1八卦圖實例截圖1.2修改后的程序#in elude #i nclude #i nclude #in clude int mai n(void)/* request auto detection */int gdriver = DETECT, gmode, errorcode;int midx, midy;int

3、radius = 120;/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, );/* read result of initialization */ errorcode = graphresult();if (errorcode != grOk) /* an error occurred */printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to halt:);getch();exit(1); /

4、* terminate with an error code */midx = getmaxx() / 2;midy = getmaxy() / 2;setbkcolor(0);circle(midx, midy, radius); arc(midx-49,midy-35,150,320,60); arc(midx+49,midy+35,320,150,60); circle(midx-49,midy-35,10); circle(midx+49,midy+35,10);setfillstyle(1,15); floodfill(midx-93,midy-36,15);setfillstyle

5、(1,0); floodfill(midx-50,midy+100,15);setfillstyle(1,0); floodfill(midx-49,midy-35,0);setfillstyle(1,15); floodfill(midx+49,midy+35,15);/* 畫中心圖象并填色 */setfillstyle(1,7); bar(30,25,180,50);bar(30,60,180,85); bar(30,95,180,120);/* 畫第一個卦象 */ bar(30,370,180,395); bar(30,405,100,430); bar(110,405,180,430)

6、;bar(30,440,180,465);/*畫第二個卦象*/bar(460,25,530,50);bar(540,25,610,50);bar(460,60,610,85);bar(460,95,530,120);bar(540,95,610,120);/*畫第三個卦象*/bar(460,370,530,395);bar(540,370,610,395);bar(460,405,530,430);bar(540,405,610,430);bar(460,440,530,465);bar(540,440,610,465);/*畫第四個卦象*/getch(); closegraph(); ret

7、urn 0;2、洛克2.1程序實例運行截圖及修改后的截圖圖2.4斯洛克修改后運行截圖圖2.3斯洛克實例運行截圖2.2修改后的程序/*斯諾克*/#in clude #i nclude #i nclude #in clude int mai n(void)/* request auto detect ion */int gdriver = DETECT, gmode, errorcode;int midx, midy;/* initialize graphics and local variables */ initgraph(&gdriver, &gmode, );/* read result

8、of initialization */ errorcode = graphresult();if (errorcode != grOk) /* an error occurred */printf(Graphics error: %sn, grapherrormsg(errorcode); printf(Press any key to halt:);getch();exit(1); /* terminate with an error code */midx = getmaxx() / 2;midy = getmaxy() / 2; setcolor(getmaxcolor();/* dr

9、aw the circle */circle(midx=0, midy=0, 40); circle(midx=0,midy=480,40); circle(midx=640,midy=0,40); circle(midx=640,midy=480,40); circle(midx=320,midy=0,30); circle(midx=320,midy=480,30); circle(midx=200,midy=240,10); setfillstyle(1,0); floodfill(midx=200,midy=240,15); circle(midx=280,midy=250,10);

10、setfillstyle(1,1); floodfill(midx=280,midy=250,15); circle(midx=180,midy=130,10); setfillstyle(1,2); floodfill(midx=180,midy=130,15); circle(midx=160,midy=140,10); setfillstyle(1,3); floodfill(midx=160,midy=140,15); circle(midx=60,midy=20,10); setfillstyle(1,4); floodfill(midx=60,midy=20,15); circle

11、(midx=260,midy=360,10); setfillstyle(1,5); floodfill(midx=260,midy=360,15); circle(midx=180,midy=350,10); setfillstyle(1,6);floodfill(midx=180,midy=350,15); circle(midx=340,midy=430,10); setfillstyle(1,7);floodfill(midx=340,midy=430,15); circle(midx=440,midy=270,10); setfillstyle(1,8);floodfill(midx

12、=440,midy=270,15); circle(midx=340,midy=210,10); setfillstyle(1,9);floodfill(midx=340,midy=210,15); circle(midx=420,midy=340,10); setfillstyle(1,10);floodfill(midx=420,midy=340,15); circle(midx=320,midy=420,10); setfillstyle(1,11);floodfill(midx=320,midy=420,15);circle(midx=420,midy=30,10); setfills

13、tyle(1,12); floodfill(midx=420,midy=30,15); circle(midx=400,midy=45,10); setfillstyle(1,13);floodfill(midx=400,midy=45,15); circle(midx=120,midy=280,10); setfillstyle(1,14);floodfill(midx=120,midy=280,15); circle(midx=380,midy=140,10); setfillstyle(1,15);floodfill(midx=380,midy=140,15);line(400,150,

14、640,240);line(401,149,640,230);rectangle(0,0,639,479); setfillstyle(1,2); floodfill(100,100,15); outtextxy(500,230,ye jiaxing); outtextxy(500,250,201210402101); /* clean up */ getch();closegraph();return 0;3、熊貓臉3.1 程序實例運行截圖及修改后的截圖圖2.6熊貓臉修改后運行截圖圖2.5熊貓臉實例運行截圖3.2修改后程序/*熊貓臉*/#in elude #i nclude #i nclud

15、e #in elude int main( void)/* request auto detect ion */int gdriver = DETECT, gmode, errorcode; int midx, midy;int radius = 120;/* i nitialize graphics, local variables */in itgraph( &gdriver, &gmode, );/* read result of in itializati on */ errorcode = graphresult();if (errorcode != grOk)/* an error

16、 occurred */prin tf(Graphics error: %sn, grapherrormsg(errorcode);prin tf(Press any key to halt:); getch();exit(1);/* term in ate with an error code */midx = getmaxx() / 2;midy = getmaxy() / 2;setbkcolor(0);setcolor(8);circle(midx, midy, radius+2); arc(midx+80,midy-80,-47,140,50); arc(midx-80,midy-8

17、0,41,228,50); circle(midx+50,midy-30,40); circle(midx-50,midy-30,40); arc(midx,midy-20,50,130,20); arc(midx,midy-10,50,130,20); line(midx+113,midy-40,midx+90,midy-35); line(midx+115,midy-30,midx+90,midy-25); line(midx-113,midy-40,midx-90,midy-35); line(midx-115,midy-30,midx-90,midy-25); line(midx-11

18、3,midy-40,midx-115,midy-30); line(midx+113,midy-40,midx+115,midy-30); arc(midx-90,midy-175,30,330,20); arc(midx-90,midy-175,30,330,22); arc(midx-40,midy-175,0,359,22); arc(midx-40,midy-175,0,359,20); arc(midx+10,midy-175,0,359,22); arc(midx+10,midy-175,0,359,20);line(midx+42,midy-197,midx+42,midy-15

19、5); line(midx+44,midy-197,midx+44,midy-157); line(midx+44,midy-157,midx+64,midy-157); line(midx+42,midy-155,midx+64,midy-155); line(midx+42,midy-197,midx+44,midy-197); line(midx+64,midy-157,midx+64,midy-155); line(midx+76,midy-195,midx+79,midy-161); line(midx+84,midy-195,midx+81,midy-161); arc(midx+

20、80,midy-193,0,180,4);line(midx+79,midy-161,midx+81,midy-161); circle(midx+80,midy-155,2);circle(midx+50,midy-30,20); circle(midx-50,midy-30,20);setfillstyle(3,14); floodfill(midx+51,midy-31,8); floodfill(midx-51,midy-31,8);setfillstyle(1,15);ellipse(midx,midy+50,0,360,60,30); arc(midx,midy+50,180,0,

21、60); floodfill(midx+1,midy+1,8); setfillstyle(1,7);floodfill(1,1,8);/* clean up */getch();closegraph();return 0;五、基本實驗問題1、簡述計算機圖形顯示功能的基本內容。 答:基本內容為圖形的表示、生成、處理、存儲、檢索和管理等。2、簡述圖形模式初始化內容與相關函數(shù)的含義。 答:不同的顯示器適配器有不同的圖形分辨率。即是同一顯示器適配器,在不同模式 下也有不同分辨率。 因此, 在屏幕作圖之前, 必須根據(jù)顯示器適配器種類將顯示器設置成為 某種圖形模式, 在未設置圖形模式之前, 微機系統(tǒng)默認

22、屏幕為文本模式 (80 列,25 行字符模 式) ,此時所有圖形函數(shù)均不能工作。設置屏幕為圖形模式,可用下列圖形初始化函數(shù): void far initgraph(int far *gdriver, int far *gmode,char *path); 其中 gdriver和gmode分別表示圖形驅動器和模式,path是指圖形驅動程序所在的目錄路徑。3、請列出常用的 C 語言圖形函數(shù)及其基本含義與參數(shù)取值。 答:語言圖形函數(shù)及其基本含義與參數(shù)取值如下:1. 直線類函數(shù) 用直線類函數(shù)繪制直線圖形,可以用兩種坐標:一種時絕對坐標;另一種是相對坐標。Line ()函數(shù)用line ()函數(shù)可以在指定

23、的兩點之間畫一條直線段。其調用格式為:line(x1,y1,x2,y2);參數(shù)x1,y1,x2,y2均為整型,使用絕對坐標。其中(x1,y1 )和(x2,y2 )分別為直線的兩個端點坐標。用 line 函數(shù)畫線時,其當前點的位置不變。例如:已知三角形的兩個頂點坐標分別為:(x1,y1 )、(x2,y2 )和(x3,y3),則用下面的語句可以把該三點連成一個三角形:line(x1,y1,x2,y2);line(x2,y2,x3,y3);line(x3,y3,x1,y1);lineto ()函數(shù)lineto ()函數(shù)用于從當前點位置到指定位置畫一條直線,并改變當前點的位置。在畫 線到指定點的同時也

24、把當前點的位置移到了指定點(即直線的終點)。其調用格式為:lineto(x,y);參數(shù) x,y 位指定點坐標,均為整型。moveto ()函數(shù)函數(shù) moveto ()用于移動當前點位置,并不畫線。其調用格式為:moveto(x,y);。調用的結果是將當參數(shù) x,y 用于指定新的當前點位置坐標(用整型,使用絕對坐標)前點位置移到點(x,y )處。例如:moveto(400,10); 結果是將當前點位置移到了(400, 10)處。moveto ()函數(shù)和 lineto ()函數(shù)配合使用,可以在兩點之間畫直線。例如 : moveto(400,10);lineto(240,360);上面的語句實現(xiàn)把當

25、前點移到(400, 10)處,然后從該點畫線到(240, 360 )處。畫線結束后,當前點位置在(240, 360 )處。linerel ()函數(shù)linerel ()函數(shù)用相對坐標畫線。其功能是從當前點位置開始畫線到指定點位置,該指 定點位置的坐標不是以絕對坐標的形式給出, 而是以其相對于當前點 (即直線起點) 位置的 坐標增量給出的(相對坐標) 。其調用格式為:linerel(dx,dy); 參數(shù)是相對于直線起點的坐標增量。 Linerel() 函數(shù)改變當前點位置到指定點處。 moverel ()函數(shù)moverel ()函數(shù)的功能與 moveto ()函數(shù)相似,但它使用的是相對坐標,它使當前

26、點 位置在 x 和 y 方向上分別移動一個增量。其調用格式為:moverel(dx,dy);參數(shù) dx,dy 為整型,是相對于當前點位置的增量。2. 圓弧類函數(shù) circle ()函數(shù) 函數(shù) circle ()用于以指定圓心和半徑的方式畫圓。其調用格式為 circle(x,y,r) ;參數(shù) x,y,r 均為整型。其中 x,y 為指定的圓心坐標, r 為圓的半徑。 例如:circle(300,200,100) ;的調用結果是:以點( 300,200)為圓心,以 100 為半徑畫一個整 圓。arc ()函數(shù)arc()函數(shù)用于畫圓弧。其調用格式為:arc(x,y,args,ange,r);函數(shù)調用時所需的五個參數(shù)均為整型。其中:x,y為圓弧所在圓的圓心坐標。angs, ange分別為圓弧的起始角和終止角(單位為度),r 為圓弧的半徑。例如 :arc(300,200,90,180,200) ;的結果是以點 (300,200)為圓心, 200為半徑, 從 90度到 180 度畫了四分之一圓弧。當圓弧的起始角 angs=O,終止角an

溫馨提示

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

評論

0/150

提交評論