版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 計(jì)算機(jī)技術(shù)基礎(chǔ)課程設(shè)計(jì)</p><p><b> C語言</b></p><p><b> 設(shè)計(jì)報(bào)告</b></p><p> 題目:用C語言描繪玫瑰花</p><p><b> 一、選題背景</b></p><p> 通
2、過C語言的學(xué)習(xí),我們知道了可以用C語言編寫的程序來描繪出優(yōu)美的</p><p><b> 畫面。</b></p><p> 玫瑰花是美麗的代表。所以我將畫圖的程序來實(shí)現(xiàn)玫瑰花的圖象。</p><p><b> 二、設(shè)計(jì)思想</b></p><p> 本程序?qū)⒗脠D形庫函數(shù)、數(shù)學(xué)函數(shù)和標(biāo)準(zhǔn)I/
3、O函數(shù)來實(shí)現(xiàn)函數(shù)的運(yùn)行。</p><p> 依靠我們學(xué)過的調(diào)用函數(shù)來實(shí)現(xiàn)。</p><p> 圖形中玫瑰花的形狀是利用畫圖函數(shù)并根據(jù)其坐標(biāo)來實(shí)現(xiàn)的,圖形中的弧線</p><p> 是利用曲線函數(shù)實(shí)現(xiàn)的。</p><p> 主函數(shù)的調(diào)用函數(shù)大多是我們沒有學(xué)過的</p><p> initgraph /*初始化
4、圖形系統(tǒng)*/</p><p> cleardevice /*清除圖形屏幕*/</p><p> hua /*自己定義的函數(shù)*/</p><p> setcolor /*設(shè)置當(dāng)前畫圖顏色*/</p><p> rectangle /*話矩形邊框*/</p><p> getch /*輸入字符*/<
5、;/p><p> closegraph /*關(guān)閉圖形系統(tǒng)*/</p><p> floodfill/*填充一個(gè)有界區(qū)域*/</p><p><b> 三、程序流程圖: </b></p><p><b> N</b></p><p><b> Y</b&
6、gt;</p><p><b> N</b></p><p><b> Y</b></p><p><b> 四、主要解決問題:</b></p><p> 一個(gè)簡(jiǎn)單的玫瑰花程序這個(gè)玫瑰花的程序,可是問題不少,在這個(gè)語句(rc(x+64,y-57,300,490,17);
7、)中出現(xiàn)了顏色外瀉 。</p><p> 解決辦法:利用floodfill函數(shù)實(shí)現(xiàn)填充一個(gè)有界函數(shù)。</p><p><b> 五、程序清單:</b></p><p> #include <stdio.h> </p><p> #include <dos.h> </p>
8、<p> #include <graphics.h> </p><p> #include <math.h> 35</p><p> #define FNX(x) (int)(xo+(x)*1.0) </p><p> #define FNY(y) (int)(getmaxy()-(yo+(y)*1.0)) <
9、/p><p> #define FNX2(phi) cos(phi)*ac-sin(phi)*bs </p><p> #define FNY2(phi) cos(phi)*as+sin(phi)*bc </p><p> /*畫旋轉(zhuǎn)的橢圓*/ </p><p> void elli(int xo,int yo,int a,int
10、b,double theta) </p><p><b> { </b></p><p><b> int i; </b></p><p> double da,c,s,ac,as,bc,bs,xf,yf,phi,x,y; </p><p> theta=theta*0.01745;
11、 </p><p> da=3*0.1745; </p><p> c=cos(theta);s=sin(theta); </p><p> ac=a*c;as=a*s;bc=b*c;bs=b*s; </p><p> x=FNX2(0);y=FNY2(0); </p><p> moveto(FN
12、X(x),FNY(y)); </p><p> for(i=1;i<=360;i++) </p><p><b> { </b></p><p> phi=i*da;xf=x*cos(phi)*0.1;yf=b*sin(phi)*0.1; </p><p> x=FNX2(phi);y=FNY2(p
13、hi); </p><p> lineto(FNX(x),FNY(y)); </p><p><b> } </b></p><p><b> } </b></p><p><b> /*花*/ </b></p><p> void
14、hua(int x,int y) </p><p><b> { </b></p><p> register i; </p><p> /*畫粉紅色玫瑰*/ </p><p> setcolor(12); </p><p> arc(x+65,y-60,150,350,8);
15、 </p><p> arc(x+66,y-54,300,470,8); </p><p> arc(x+65,y-56,30,230,10); </p><p> arc(x+64,y-57,300,490,17); </p><p> ellipse(x+73,y-30,250,450,27,40); </p>
16、;<p> ellipse(x+59,y-30,100,290,27,40); </p><p> ellipse(x+65,y-40,140,270,20,30); </p><p> setfillstyle(SOLID_FILL,5); </p><p> floodfill(x+65,y-20,12); </p>
17、<p> /*畫紅色玫瑰*/ </p><p> arc(x,y,150,350,12); </p><p> arc(x+1,y+8,280,470,12); </p><p> arc(x,y+2,30,230,16); </p><p> arc(x,y+3,80,240,28); </p>
18、<p> arc(x+2,y+8,180,330,22); </p><p> arc(x-2,y+2,310,460,25); </p><p> ellipse(x-12,y+30,120,300,30,40); </p><p> ellipse(x+10,y+28,250,423,30,42); </p><p&
19、gt; ellipse(x-4,y+10,290,393,30,40); </p><p> setfillstyle(SOLID_FILL,4); </p><p> floodfill(x+5,y+31,12); </p><p> /*畫紫色花骨朵*/ </p><p> ellipse(x+120,y+5,0,360
20、,15,25); </p><p> setfillstyle(SOLID_FILL,1); </p><p> floodfill(x+120,y,12); </p><p> /*畫黃色花骨朵*/ </p><p> ellipse(x-70,y+10,0,360,14,20); </p><p>
21、; setfillstyle(SOLID_FILL,14); </p><p> floodfill(x-70,y+10,12); </p><p> setcolor(10); </p><p> /*畫紅花花萼*/ </p><p> ellipse(x-15,y+32,190,310,30,35); </p&g
22、t;<p> ellipse(x+16,y+32,235,355,26,35); </p><p> ellipse(x,y+35,190,350,43,50); </p><p> arc(x,y+82,190,350,6); </p><p> setfillstyle(SOLID_FILL,2); </p><
23、p> floodfill(x,y+75,10); </p><p> /*畫粉花花萼*/ </p><p> ellipse(x+50,y-48,190,320,22,50); </p><p> ellipse(x+80,y-48,220,350,22,50); </p><p> ellipse(x+65,y-28
24、,180,360,36,50); </p><p> floodfill(x+65,y+18,10); </p><p><b> /*畫主枝*/ </b></p><p> for(i=0;i<3;i++) </p><p><b> { </b></p>&
25、lt;p> ellipse(x-98,y+100+i,255,371,100,80); </p><p> ellipse(x-20,y+30+i,260,358,140,140); </p><p> ellipse(x+224,y+20+i,180,218,160,140); </p><p><b> } </b>&
26、lt;/p><p><b> /*畫側(cè)枝*/ </b></p><p> ellipse(x+70,y+34,180,233,140,140); </p><p> ellipse(x,y+40,205,255,100,120); </p><p> ellipse(x+135,y-30,209,249,72,
27、120); </p><p> ellipse(x,y+20,263,301,100,120); </p><p> ellipse(x+85,y-10,278,305,100,120); </p><p> ellipse(x+100,y-62,282,308,90,120); </p><p> ellipse(x-50,
28、y-10,277,314,30,120); </p><p> ellipse(x+70,y+80,222,266,52,120); </p><p> ellipse(x-60,y-45,229,266,52,120); </p><p> ellipse(x+79,y-45,229,266,52,120); </p><p>
29、; ellipse(x+84,y,224,273,52,120); </p><p> ellipse(x+110,y+40,240,282,100,120); </p><p> /*畫紫花骨朵花萼*/ </p><p> ellipse(x+120,y-6,200,340,17,25); </p><p> ellips
30、e(x+120,y+7,160,380,17,27); </p><p> floodfill(x+122,y+30,10); </p><p> /*畫黃花骨朵花萼*/ </p><p> ellipse(x-70,y+15,140,390,17,20); </p><p> ellipse(x-75,y-10,205,34
31、0,10,30); </p><p> ellipse(x-60,y-10,195,340,5,30); </p><p> floodfill(x-70,y+32,10); </p><p><b> /*畫葉*/ </b></p><p> /*畫右邊的葉子*/ </p><p&
32、gt; elli(x+168,y+282,10,20,-40); </p><p> elli(x+161,y+281,11,21,-39); </p><p> elli(x+163,y+283,10,23,-41);</p><p> elli(x+162,y+282,11,23,-41);</p><p> elli(x+16
33、1,y+253,7,15,262);</p><p> elli(x+160,y+252,8,16,260); </p><p> elli(x+159,y+251,7,15,261);</p><p> elli(x+162,y+252,8,16,263);</p><p> elli(x+144,y+271,10,17,-16);
34、</p><p> elli(x+142,y+270,11,16,-15);</p><p> elli(x+140,y+270,10,18,-16);</p><p> elli(x+145,y+270,8,16,-15);</p><p> elli(x+145,y+273,9,15,-14);</p><p&
35、gt; elli(x+140,y+271,8,16,-15);</p><p> elli(x+145,y+270,8,14,-13);</p><p> elli(x+155,y+222,10,21,-46); </p><p> elli(x+156,y+224,10,20,-45); </p><p> elli(x+15
36、7,y+224,12,20,-43);</p><p> elli(x+156,y+220,10,22,-45);</p><p> elli(x+150,y+200,8,16,270); </p><p> elli(x+152,y+200,7,16,273); </p><p> elli(x+150,y+204,8,15,2
37、70); </p><p> elli(x+135,y+220,8,16,-10);</p><p> elli(x+133,y+220,6,16,-12);</p><p> elli(x+135,y+223,8,15,-10);</p><p> elli(x+136,y+220,7,15,-11);</p>&l
38、t;p> elli(x+137,y+221,8,16,-10);</p><p> elli(x+138,y+220,8,15,-10);</p><p> elli(x+140,y+222,9,15,-20); </p><p> elli(x+137,y+222,8,15,-22);</p><p> elli(x+14
39、0,y+220,9,14,-20);</p><p> elli(x+146,y+144,8,16,-80); </p><p> elli(x+143,y+144,7,16,-82); </p><p> elli(x+145,y+141,8,15,-80);</p><p> elli(x+130,y+130,6,12,235);
40、 </p><p> elli(x+133,y+130,5,12,234); </p><p> elli(x+130,y+134,6,11,235);</p><p> elli(x+125,y+154,7,14,-10); </p><p> elli(x+123,y+154,6,14,-13); </p>&l
41、t;p> elli(x+125,y+155,7,12,-10); </p><p> elli(x+78,y+98,6,12,-90); </p><p> elli(x+79,y+98,5,12,-92); </p><p> elli(x+78,y+95,6,11,-90); </p><p> elli(x+60,y
42、+90,5,10,180);</p><p> elli(x+65,y+90,4,10,182);</p><p> elli(x+64,y+87,5,12,180);</p><p> elli(x+66,y+88,5,13,150); </p><p> elli(x+64,y+88,4,13,153); </p>
43、<p> elli(x+66,y+84,5,11,150); </p><p> elli(x+70,y+109,5,10,-45); </p><p> elli(x+73,y+109,4,10,-43);</p><p> elli(x+70,y+105,5,9,-45); </p><p> elli(x+80,y
44、+100,6,11,120);</p><p> elli(x+83,y+100,4,11,122);</p><p> elli(x+80,y+103,6,10,120);</p><p> elli(x+81,y+105,5,10,-55); </p><p> elli(x+84,y+105,4,10,-53); </p&
45、gt;<p> elli(x+83,y+103,5,12,-55); </p><p> /*畫左邊的葉子*/ </p><p> elli(x-125,y+270,12,24,60); </p><p> elli(x-122,y+270,13,24,63); </p><p> elli(x-125,y+27
46、3,12,22,60); </p><p> elli(x-95,y+270,10,20,10); </p><p> elli(x-98,y+270,13,20,11);</p><p> elli(x-93,y+275,10,22,10);</p><p> elli(x-110,y+245,10,20,90); </p&
47、gt;<p> elli(x-112,y+245,11,20,93); </p><p> elli(x-110,y+246,10,22,90);</p><p> elli(x-105,y+220,10,20,45);</p><p> elli(x-102,y+220,11,20,42); </p><p> e
48、lli(x-104,y+223,10,18,45);</p><p> elli(x-100,y+190,8,16,135);</p><p> elli(x-98,y+190,7,16,133);</p><p> elli(x-102,y+193,8,14,135);</p><p> elli(x-102,y+190,8,12,
49、135);</p><p> elli(x-100,y+193,8,13,131);</p><p> elli(x-75,y+210,8,16,-45);</p><p> elli(x-77,y+210,8,15,-42); </p><p> elli(x-75,y+215,7,16,-45); </p>
50、<p> /*畫中間的葉子*/ </p><p> elli(x+65,y+197,17,20,-45); </p><p> elli(x+64,y+198,19,21,-44); </p><p> elli(x+63,y+195,18,20,-43); </p><p> elli(x+65,y+193,15
51、,18,-45); </p><p> elli(x+40,y+185,8,16,0); </p><p> elli(x+42,y+183,7,15,1);</p><p> elli(x+40,y+180,8,14,0);</p><p> elli(x+44,y+183,7,17,1);</p><p&g
52、t; elli(x+55,y+165,8,16,90);</p><p> elli(x+55,y+169,8,14,88); </p><p> elli(x+58,y+160,7,16,93);</p><p> elli(x+54,y+166,7,16,91); </p><p><b> } </b>
53、</p><p><b> /*主程序*/ </b></p><p><b> main() </b></p><p><b> { </b></p><p> int driver=VGA,mode=VGAHI; </p><p>
54、initgraph(&driver,&mode,"C:\\TC"); </p><p> cleardevice(); </p><p> hua(450,90); </p><p> ;setcolor(10); </p><p> rectangle(0,0,639,479); <
55、;/p><p> getch(); </p><p> closegraph(); </p><p><b> }</b></p><p><b> 六、程序設(shè)計(jì)說明</b></p><p> 本程序?qū)崿F(xiàn)了根據(jù)給定的坐標(biāo)及函數(shù)完成了玫瑰花及其枝、葉的</p&
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)--尋寶游戲
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)--計(jì)算器
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)--簡(jiǎn)單潛艇大戰(zhàn)
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)--模擬銀行打印
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)--花店經(jīng)營(yíng)管理系統(tǒng)
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)--小蟲子挖隧道
- 計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)課程設(shè)計(jì)---簡(jiǎn)單的彈球得分游戲
- 課程設(shè)計(jì)-計(jì)算機(jī)技術(shù)基礎(chǔ)(c語言)小蟲子挖隧道設(shè)計(jì)
- c語言課程設(shè)計(jì)---計(jì)算機(jī)軟件
- 計(jì)算機(jī)c語言課程設(shè)計(jì)--鼠標(biāo)控制
- 課程設(shè)計(jì)---計(jì)算機(jī)語言c#課程設(shè)計(jì)
- 《計(jì)算機(jī)基礎(chǔ)(c語言)》課程教學(xué)大綱.
- 計(jì)算機(jī)語言c#課程設(shè)計(jì)--彈球游戲
- 計(jì)算機(jī)技術(shù)基礎(chǔ)課程設(shè)計(jì)
- 計(jì)算機(jī)高級(jí)語言課程設(shè)計(jì)(c)學(xué)生成績(jī)管理系統(tǒng)
- c語言課程設(shè)計(jì)--c語言投票程序
- 計(jì)算機(jī)高級(jí)語言課程設(shè)計(jì)
- 計(jì)算機(jī)c語言模擬試題
- c語言課程設(shè)計(jì)
- c語言課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論