资源描述:
《计算机技术基础(c语言)课程设计---用c语言描绘玫瑰花》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、计算机技术基础课程设计C语言设计报告题目:用C语言描绘玫瑰花一、选题背景通过C语言的学习,我们知道了可以用C语言编写的程序来描绘出优美的画面。玫瑰花是美丽的代表。所以我将画图的程序来实现玫瑰花的图象。二、设计思想本程序将利用图形库函数、数学函数和标准I/O函数来实现函数的运行。依靠我们学过的调用函数来实现。图形中玫瑰花的形状是利用画图函数并根据其坐标来实现的,图形中的弧线是利用曲线函数实现的。主函数的调用函数大多是我们没有学过的initgraph/*初始化图形系统*/cleardevice/*清除图形
2、屏幕*/hua/*自己定义的函数*/setcolor/*设置当前画图颜色*/rectangle/*话矩形边框*/getch/*输入字符*/closegraph/*关闭图形系统*/floodfill/*填充一个有界区域*/三、程序流程图:intii=1I<=360NYphi=I*da;xf=x*cos(phi)…regisiterii=0i++i<3Nellipse(x-98,y+100+I,255…Yi++ellipse(x=70,y=34,180,233…intdriver=VGA,mode=VGA
3、HI;四、主要解决问题:一个简单的玫瑰花程序这个玫瑰花的程序,可是问题不少,在这个语句(rc(x+64,y-57,300,490,17);)中出现了颜色外泻。解决办法:利用floodfill函数实现填充一个有界函数。五、程序清单:#include#include#include#include35#defineFNX(x)(int)(xo+(x)*1.0)#defineFNY(y)(int)(getmaxy()-(yo+(y)*1
4、.0))#defineFNX2(phi)cos(phi)*ac-sin(phi)*bs#defineFNY2(phi)cos(phi)*as+sin(phi)*bc/*画旋转的椭圆*/voidelli(intxo,intyo,inta,intb,doubletheta){inti;doubleda,c,s,ac,as,bc,bs,xf,yf,phi,x,y;theta=theta*0.01745;da=3*0.1745;c=cos(theta);s=sin(theta);ac=a*c;as=a*s;b
5、c=b*c;bs=b*s;x=FNX2(0);y=FNY2(0);moveto(FNX(x),FNY(y));for(i=1;i<=360;i++){phi=i*da;xf=x*cos(phi)*0.1;yf=b*sin(phi)*0.1;x=FNX2(phi);y=FNY2(phi);lineto(FNX(x),FNY(y));}}/*花*/voidhua(intx,inty){registeri;/*画粉红色玫瑰*/setcolor(12);arc(x+65,y-60,150,350,8);arc
6、(x+66,y-54,300,470,8);arc(x+65,y-56,30,230,10);arc(x+64,y-57,300,490,17);ellipse(x+73,y-30,250,450,27,40);ellipse(x+59,y-30,100,290,27,40);ellipse(x+65,y-40,140,270,20,30);setfillstyle(SOLID_FILL,5);floodfill(x+65,y-20,12);/*画红色玫瑰*/arc(x,y,150,350,12);a
7、rc(x+1,y+8,280,470,12);arc(x,y+2,30,230,16);arc(x,y+3,80,240,28);arc(x+2,y+8,180,330,22);arc(x-2,y+2,310,460,25);ellipse(x-12,y+30,120,300,30,40);ellipse(x+10,y+28,250,423,30,42);ellipse(x-4,y+10,290,393,30,40);setfillstyle(SOLID_FILL,4);floodfill(x+5,y
8、+31,12);/*画紫色花骨朵*/ellipse(x+120,y+5,0,360,15,25);setfillstyle(SOLID_FILL,1);floodfill(x+120,y,12);/*画黄色花骨朵*/ellipse(x-70,y+10,0,360,14,20);setfillstyle(SOLID_FILL,14);floodfill(x-70,y+10,12);setcolor(10);/*画红花花萼*/ellipse(x-15,y+3