图形变换C语言课程设计材料.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 变换 语言 课程设计 材料
- 资源描述:
-
图形变换C语言课程设计材料 学号 - 第二学期 《C语言程序设计》 课程设计报告 题目: 图形变换 专业: 网络工程 班级: 16(3) 姓名: 代应豪 指导教师: 代美丽 成绩: 计算机学院 年 5月 10日 目录 - 1 - 1 设计要求 - 2 - 2 程序功能 - 2 - 3 核心算法 - 2 - 4 程序代码 - 2 - 5 运行结果 - 2 - 6 程序创新说明 - 3 - 参考文献 - 3 - C语言图形程序设计主要内容包括图形模式的初始化、基本图形功能、图形窗口以及图形模式下的文本输出等图形函数的使用,以及按键处理和声音等。学生根据C语言图形程序设计指导书,经过编辑、编译、调试、运行示例代码,逐步掌握C语言图形应用程序中常见函数的作用与使用方法,并综合运用《C语言程序设计》课程所学知识,设计、实现具有创新功能的程序。成果物是一个综合性较好的图形应用程序和项目报告。 1 设计要求 设计并实现一个独特的图形应用程序。要求程序功能完整;包含屏幕颜色设置、图形绘制与填充、图形窗口设置、图形模式下文本输出、按键操作等;用户界面友好;代码量500行以上。 2 程序功能 使用if,for,switch,circle,line,arc及另外一些图形化编程函数实现一些画面效果(形状颜色变化,字体颜色大小设置等),最后使用line画线的方法画出中文“再见“二字。 3 核心算法 大量使用for循环,switch、if判断来实现一些画面的变化;大量使用函数调用的方式来保持代码的整洁;使用delay()函数来延迟两幅画面切换的时间;大量使用图形化编程的函数和方法来实现画面效果。 注:流程图无能为力了,不会画。 4 程序代码 #include<stdio.h> #include<graphics.h> #include<stdlib.h> #include<math.h> /*模块化编程*/ /*函数调用*/ void start(); void tuoyuan(); void guochang(); void kaitou(); void huaban(); void tree(); void moon(); void end(); void zai(); void jian(); main() { int gdriver; int gmode; int i; int line; clrscr(); gdriver=DETECT; initgraph(&gdriver,&gmode,"C:\\TC20\\BGI"); kaitou(); start(); getch(); tuoyuan(); delay(800); setbkcolor(15); cleardevice(); /*插入眼睛像*/ ellipse(320,240,0,360,30,17.5); setcolor(4); circle(320,240,17.5); setfillstyle(1,4); floodfill(320,240,4); /*画颜色渐变同心圆*/ for(i=0;i<=30;i++) { setcolor(i); circle(320,240,20+i*10); delay(80); } delay(800); guochang(); delay(1000); cleardevice(); huaban(); moon(); tree(); delay(500); cleardevice(); end(); setbkcolor(6); zai(); delay(1000); } /*开头过渡*/ void start() { int gd; int gm; gd=DETECT; initgraph(&gd,&gm,"C:\\TC20\\BGI"); randomize(); cleardevice(); setbkcolor(3); setcolor(4); settextstyle(0,0,2); outtextxy(100,160," \t\t\t\t ARE YOU READY?!"); settextstyle(0,0,2); outtextxy(100,240," Input any key,let's go!"); } /*画一些形状颜色渐变椭圆*/ void tuoyuan() { int x=360; int y=160; int driver; int mode=VGAHI; int num=20; int i; int t; int b; driver=DETECT; initgraph(&driver,&mode,"C://TC20//BGI"); t=y-30; b=y-30; setbkcolor(0); for(i=0;i<num;i++) { setcolor(i+2-1); ellipse(200,230,0,360,t,b); t-=5; b+=5; } delay(300); for(i=0;i<20;i++) { setcolor(i+2-1); ellipse(470,240,0,360,t,b); t+=5; b-=5; } } /*画变色圆周运动*/ void guochang() { int gdriver; int i; int b; int c; int gmode; gdriver=DETECT; initgraph(&gdriver,&gmode,"C:\\TC20\\BGI"); setbkcolor(13); for(c=1;c<9;c++) { switch(c){ case 1:for(i=1;i<640;i++) { if(i==1) { setcolor(14); for(b=1;b<240;b++) line(320, 240, 1, b); } else{} } break; case 2:for(i=1;i<640;i++) { if(i==1) { setcolor(4); for(b=240;b<480;b++) line(320,240,1,b); } else{} } break; case 3:for(i=1;i<640;i++) { if(i<320&&i>1) { setcolor(6); line(320,240,i,479); } else{} } break; case 4:for(i=1;i<640;i++) { if(i<640&&i>=320) { setcolor(5); line(320, 240, i,479); } else{} } break; case 5:for(i=640;i>0;i--) { if(i==639) { setcolor(10); for(b=480;b>240;b--) line(320,240,639,b); } else{} } break; case 6:for(i=640;i>0;i--) { if(i==639) { setcolor(3); for(b=240;b>0;b--) line(320, 240,639, b); } else{} } break; case 7:for(i=640;i>0;i--) { if(i<640&&i>=320) { setcolor(9); line(320,240,i,1); } else{} } break; case 8:for(i=640;i>0;i--) { if(i<320&&i>0) { setcolor(12); line(320, 240, i, 1); } else{} } break; } } } /*开头*/ void kaitou() { int i; int a; int b; int c; int gdriver; int gmode; char s[30]; clrscr(); gdriver=DETECT; initgraph(&gdriver, &gmode, "C:\\TC20\\BGI"); setbkcolor(14); cleardevice(); for(a=50;a<640;) { b=50; setcolor(4); circle(a,b,43); setcolor(9); ellipse(a,b,0,360,43,20); ellipse(a,b,0,360,20,43); setcolor(7); ellipse(a,b,0,360,20,10); setcolor(8); circle(a,b,10); setfillstyle(1,8); floodfill(a,b,8); a=a+90; } for(b=50;b<480;) { a=50; setcolor(4); circle(a,b,45); setcolor(9); ellipse(a,b,0,360,21,45); ellipse(a,b,0,360,45,21); setcolor(7); ellipse(a,b,0,360,22.5,12); circle(a,b,12); b=b+95; } for(a=50;a<640;) { b=430; setcolor(4); circle(a,b,43); setcolor(9); ellipse(a,b,0,360,43,20); ellipse(a,b,0,360,20,43); setcolor(7); ellipse(a,b,0,360,20,10); circle(a,b,10); a=a+90; } for(b=50;b<480;) { a=590; setcolor(4); circle(a,b,45); setcolor(9); ellipse(a,b,0,360,21,45); ellipse(a,b,0,360,45,21); setcolor(7); ellipse(a,b,0,360,22.5,12); circle(a,b,12); b=b+95; } setviewport(100, 100, 540, 380, 0); setfillstyle(1, 2); setcolor(14); rectangle(0, 0, 439, 279); floodfill(50, 50, 14); setcolor(12); settextstyle(4, 0, 8); outtextxy(20, 20, "TCH"); setcolor(15); settextstyle(3, 0, 5); outtextxy(120, 120, "DREAM START!"); setcolor(14); settextstyle(3, 0, 2); outtextxy(120, 200, "Please input any key!"); getch(); closegraph(); return 0; } /*用math画颜色变化花瓣*/ void huaban() { float a,e; float x1,y1,x2,y2; int gdriver=DETECT,b; int gmode; initgraph(&gdriver,&gmode,"C://TC20//BGI"); cleardevice(); setcolor(GREEN); setbkcolor(0); for(b=1;b<6;b++) { switch(b){ case 1:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a)); x1=320+e*cos(a); x2=320+e*cos(a+3.14/5); y1=240+e*sin(a); y2=240+e*sin(a+3.14/5); setcolor(10); line(x1,y1,x2,y2); }break; case 2:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a)); x1=320+e*cos(a); x2=320+e*cos(a+3.14/5); y1=240+e*sin(a); y2=240+e*sin(a+3.14/5); setcolor(12); line(x1,y1,x2,y2); }break; case 3:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a)); x1=320+e*cos(a); x2=320+e*cos(a+3.14/5); y1=240+e*sin(a); y2=240+e*sin(a+3.14/5); setcolor(14); line(x1,y1,x2,y2); }break; case 4:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a)); x1=320+e*cos(a); x2=320+e*cos(a+3.14/5); y1=240+e*sin(a); y2=240+e*sin(a+3.14/5); setcolor(1); line(x1,y1,x2,y2); }break; case 5:for(a=0.0;a<2*3.14;a+=2*3.14/720) { e=100*(1+sin(4*a)); x1=320+e*cos(a); x2=320+e*cos(a+3.14/5); y1=240+e*sin(a); y2=240+e*sin(a+3.14/5); setcolor(9); line(x1,y1,x2,y2); }break; } } } /*画树*/ void tree() { setcolor(8); line(80,400,80,440); line(80,440,75,447); line(75,447,91,447); line(91,447,86,440); line(86,440,86,400); line(86,400,80,400); setfillstyle(6,8); floodfill(83,410,8); setcolor(2); line(83,330,55,400); line(55,400,111,400); line(111,400,83,330); setfillstyle(1,2); floodfill(60,390,2); line(83,290,55,360); line(55,360,111,360); line(111,360,83,290); setfillstyle(1,2); floodfill(80,310,2); delay(1000); } /*画月亮*/ void moon() { setcolor(14); circle(570,70,40); setfillstyle(1,14); floodfill(570,70,14); } /*倒数第二结尾,过渡*/ void end() { int gdriver; int gmode; gdriver=DETECT; initgraph(&gdriver,&gmode,"C://TC20//BGI"); setbkcolor(3); setcolor(4); settextstyle(0,0,6); outtextxy(90,200," THE END!"); setusercharsize(10,1,4,1); settextstyle(3, 0, 2); outtextxy(220, 380, "Please input any key!"); getch(); } /*正式结尾*/ /*用横线拼出“再”*/ void zai() { int a,b,c,d,e,f,g,h,gdriver; int gmode; gdriver=DETECT; initgraph(&gdriver,&gmode,"C://TC20//BGI"); for(a=70;a<300;) { setcolor(14); line(a,55,a,70); a=a+1; } for(b=120;b<350;) { setcolor(14); line(90,b,105,b); b=b+1; } for(c=90;c<280;) { setcolor(14); line(c,120,c,135); c=c+1; } for(d=120;d<350;) { setcolor(14); line(265,d,280,d); d=d+1; } for(e=105;e<265;) { setcolor(14); line(e,180,e,195); e+=1; } for(f=45;f<325;) { setcolor(14); line(f,240,f,255); f+=1; } for(g=70;g<=255;) { setcolor(14); line(177.5,g,192.5,g); g+=1; } for(h=243;h<=280;) { setcolor(14); line(h,335,h,350); h+=1; } jian(); getch(); } /*用横线拼出“见”,并署名*/ void jian() { int a,b,c,d,e,f,g; for(a=380;a<555;) { setcolor(14); line(a,55,a,70); a+=1; } for(b=55;b<250;) { setcolor(14); line(380,b,395,b); b+=1; } for(c=55;c<250;) { setcolor(14); line(540,c,555,c); c+=1; } for(d=220;d<=350;) { setcolor(14); line(486,d,501,d); d+=1; } for(e=486;e<612;) { setcolor(14); line(e,335,e,350); e+=1; } for(f=280;f<=350;) { setcolor(14); line(597,f,612,f); f+=1; } for(g=160;g<=175;) { setcolor(14); arc(g,90,-90,0,300); g+=1; } settextstyle(1,0,1); outtextxy(335,420,"TCH was written in -12-12 "); } 5 运行结果 开头 开头过渡 一些颜色形状渐变椭圆 颜色渐变同心圆 颜色按顺序变化花瓣+树+月亮 6 创新说明 使用for循环语句画出一些形状颜色渐变的椭圆和同心圆;在椭圆里面画圆,并填充颜色,来实现眼睛的效果;使用switch,if判断,和for循环来实现颜色如风车般变化的动画;使用switch判断,for循环和line、数学函数来实现颜色变化的花瓣图案;使用for循环,line函数,计算坐标的方式来画出中文“再见”二字; 参考文献 [1] 全球最大中文IT社区.Turbo C图形函数 [EB/OL],, .3 [2] 《C语言图形程序设计指导书》展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




图形变换C语言课程设计材料.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3529975.html