計(jì)算機(jī)技術(shù)基礎(chǔ)(c語(yǔ)言)課程設(shè)計(jì)---用c語(yǔ)言描繪玫瑰花_第1頁(yè)
已閱讀1頁(yè),還剩9頁(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、<p>  計(jì)算機(jī)技術(shù)基礎(chǔ)課程設(shè)計(jì)</p><p><b>  C語(yǔ)言</b></p><p><b>  設(shè)計(jì)報(bào)告</b></p><p>  題目:用C語(yǔ)言描繪玫瑰花</p><p><b>  一、選題背景</b></p><p>  通

2、過(guò)C語(yǔ)言的學(xué)習(xí),我們知道了可以用C語(yǔ)言編寫的程序來(lái)描繪出優(yōu)美的</p><p><b>  畫面。</b></p><p>  玫瑰花是美麗的代表。所以我將畫圖的程序來(lái)實(shí)現(xiàn)玫瑰花的圖象。</p><p><b>  二、設(shè)計(jì)思想</b></p><p>  本程序?qū)⒗脠D形庫(kù)函數(shù)、數(shù)學(xué)函數(shù)和標(biāo)準(zhǔn)I/

3、O函數(shù)來(lái)實(shí)現(xiàn)函數(shù)的運(yùn)行。</p><p>  依靠我們學(xué)過(guò)的調(diào)用函數(shù)來(lái)實(shí)現(xiàn)。</p><p>  圖形中玫瑰花的形狀是利用畫圖函數(shù)并根據(jù)其坐標(biāo)來(lái)實(shí)現(xiàn)的,圖形中的弧線</p><p>  是利用曲線函數(shù)實(shí)現(xiàn)的。</p><p>  主函數(shù)的調(diào)用函數(shù)大多是我們沒(méi)有學(xué)過(guò)的</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>  四、主要解決問(wèn)題:</b></p><p>  一個(gè)簡(jiǎn)單的玫瑰花程序這個(gè)玫瑰花的程序,可是問(wèn)題不少,在這個(gè)語(yǔ)句(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ì)說(shuō)明</b></p><p>  本程序?qū)崿F(xiàn)了根據(jù)給定的坐標(biāo)及函數(shù)完成了玫瑰花及其枝、葉的</p&

溫馨提示

  • 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ù)僅提供信息存儲(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)論