資源描述:
《C語(yǔ)言編程實(shí)訓(xùn)報(bào)告繪圖》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、實(shí)驗(yàn)說(shuō)明 試驗(yàn)?zāi)康模赫莆誘urboC語(yǔ)言圖形函數(shù)的使用和學(xué)會(huì)繪制一般圖形?! ≡囼?yàn)地點(diǎn):教九樓401數(shù)學(xué)系機(jī)房 實(shí)驗(yàn)要求(Direction):1.每個(gè)學(xué)生單獨(dú)完成;2.開(kāi)發(fā)語(yǔ)言為T(mén)urboC或C++,也可使用其它語(yǔ)言;3.請(qǐng)?jiān)谧约旱膶?shí)驗(yàn)報(bào)告上寫(xiě)明姓名、學(xué)號(hào)、班級(jí);4.每次交的實(shí)驗(yàn)報(bào)告內(nèi)容包括:題目、試驗(yàn)?zāi)康暮鸵饬x、程序制作步驟、主程序、運(yùn)行結(jié)果圖以及參考文件;5.自己保留一份可執(zhí)行程序,考試前統(tǒng)一檢查和上交。實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)題一實(shí)驗(yàn)題二2.1實(shí)驗(yàn)題目 請(qǐng)繪制一個(gè)圖:屏幕中央有一個(gè)半徑為R1=160的大圓和一個(gè)同心的且半徑為R2=
2、120的小圓,同時(shí)在大圓和小圓中間均勻分布著12個(gè)與大圓和小圓相切的圓。如下圖2所示: 要求:(1)分別用12種不同的顏色和填充模式填充12個(gè)小圓;(2)用自定義模式填充中間小圓,且用漫延填充方法填充;(3)用自定義模式填充中間小圓時(shí),填充模式圖案自己設(shè)計(jì)。例如,用字母A、字母B、字母C填充圖案可設(shè)計(jì)為:2.2實(shí)驗(yàn)?zāi)康暮鸵饬x 1.學(xué)會(huì)運(yùn)用畫(huà)圓函數(shù)circle(),圖形填充函數(shù)包括:setfillstyle()、setfillpattern()以及floodfill()來(lái)填充圓; 2.學(xué)會(huì)用自定義模式填充指定圓,并且用漫延
3、填充方法填充; 3.學(xué)會(huì)用自定義圖案來(lái)填充指定圓。2.3程序制作步驟(包括算法思想、算法流程圖等) 算法思想: 1.輸入所要求環(huán)繞的小圓的個(gè)數(shù)n,以及中間圓所需的自定義填充模式m(1-A,2-C,3-D),設(shè)置畫(huà)筆顏色,利用circle()畫(huà)半徑為160的大圓,然后畫(huà)半徑為120的小圓并按照輸入的模式m選擇相應(yīng)的填充模式。2.利用圓內(nèi)接多邊形的算法,算出環(huán)繞小圓的各個(gè)圓心坐標(biāo),公式如下: x[i]=r*cos((i+1)*2.0*pi/n)+200.0 y[i]=200.0-r*sin((i+1)*2.0*pi/
4、n)以20為半徑畫(huà)環(huán)繞的n個(gè)小圓,并用不同的顏色填充。2.4主程序程序代碼:/*-----圓的填充------*/#include"stdio.h"#include"conio.h"#include"math.h"#include"graphics.h"#definepi3.14159265#defineMAX50voidmain(){intgraphdriver=DETECT,graphmode;/*自動(dòng)搜索顯示器類型和顯示模式*/doublex[MAX],y[MAX];inti,j,n,m;doubler,theta;doubl
5、esin(double),cos(double);charp1[8]={(char)0x38,(char)0x6c,(char)0xc6,(char)0xc6,(char)0xff,(char)0xc6,(char)0xc6,(char)0x00};charp2[8]={(char)0x36,(char)0x7e,(char)0x66,(char)0x60,(char)0x60,(char)0x66,(char)0x7e,(char)0x3c};charp3[8]={(char)0xf0,(char)0xf8,(char)0x9c,
6、(char)0x8c,(char)0x8c,(char)0x9c,(char)0xf8,(char)0xf8};r=160.0;printf("pleaseinputthenumbleofN=");scanf("%d",&n);printf("(1-A,2-C,3-D)pleaseinputthenumbleofm=");scanf("%d",&m);initgraph(&graphdriver,&graphmode,"D:\TC");/*初始化圖形系統(tǒng)*/theta=2.0*pi/n;setcolor(3);circle(200
7、,200,200);setcolor(6);setfillstyle(12,0);switch(m){case1:setfillpattern(p1,9);circle(200,200,120);floodfill(200,200,6);break;case2:setfillpattern(p2,9);circle(200,200,120);floodfill(200,200,6);break;case3:setfillpattern(p3,9);circle(200,200,120);floodfill(200,200,6);br
8、eak;}while(!kbhit()){for(j=2;j<=n;j++)for(i=0;i<=n;i++){x[i]=r*cos(theta*(i+j))+200.0;y[i]=200.0-r*sin(theta*(i+j));s