c基本图形填充-课程设计报告.doc_第1页
c基本图形填充-课程设计报告.doc_第2页
c基本图形填充-课程设计报告.doc_第3页
c基本图形填充-课程设计报告.doc_第4页
c基本图形填充-课程设计报告.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机网络工程 高级语言程序设计课程设计报告学号2015-2015学年 第二学期1608220203高级语言程序设计课程设计报告题目:基本图形填充专业:网络工程班级:16网工(3)班姓名:代应豪指导教师:代美丽成绩:计算机学院二0一7年4月二六日目录1课程设计内容.31.1设计内容.31.2设计任务及具体要求.32课程设计原理及分析.42.1图形变换算法原理.42.2 原理结构图介绍.43设计过程或程序代码.53.1主要程序代码及解释.54设计结果与分析.8 4.1 程序运行结果分析.8 4.2 程序运行结果截图.8小结.10致谢.10参考文献.11附:源程序.12第 16 页 共 16 页1 1 课程设计内容1.1设计内容基本图形的填充,用C语言提供的函数画出三角形,矩形,圆,椭圆,直线等等图形运用自己的想象拼成一幅图形和一幅图模,可运用调用函数,掌握算法等实现图形的完美填充;内容主要包括3个方面:(1) 雪花树的实现,(2) 特殊三角形的实现(3) 狙击瞄准镜和文字的输入1.2设计任务及具体要求主要利用c语言的函数代码和算法设计开发出一个小型的图形和图模,实现基本图形的填充。要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识; 提高学生用高级语言进行程序设计的能力,重点提高用C语言进行绘图应用的编程技术水平。初步了解到计算机图形函数的魅力, 提高撰写技术文档的能力。2 课程设计原理及分析2.1图形变换算法原理主要是为C语言初学图形的程序员进行一次自己动手操作能力,提升对图形函数的理解,能更快的使用图形函数去绘画自己想要的图形,尝试使用算法实现复杂图形的填充;算法是基本图形填充的核心。2.2 原理结构图介绍 基本 图形 填充 分型图案雪花树的实现 分型图案图模 特殊 三角形填充直线和圆组合成狙击瞄准图像 图2.2基本图形填充原理结构图3设计过程或程序代码3.1主要程序代码及解释 1. 定义宏和调用库:#include#include#include#include#define g 0.618#define PAI 3.14float thita=60.0;2.声明2个函数(雪花树和特殊三角形)void grow(int x,int y,float lenth,float fai);void draw(int x1,int y1,int x2,int y2,int x3,int y3); 3. 定义图模 char str8=10,20,30,40,50,60,70,80;4.设置格式 int gm,gd; detectgraph(&gd,&gm); initgraph(&gd,&gm,tcbgi);5. 调用2个函数和设置参数 int x1=360,y1=100,x2=260,y2=273,x3=460,y3=273; line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); draw(x1,y1,x2,y2,x3,y3); grow(100,300,280.0,90.0);6.图模参数 setbkcolor(BLACK); setcolor(RED); /*/ setfillpattern(str,RED); /* */circle (320,240,50);line (230,240,410,240);line (320,150,320,330); setcolor(12); settextstyle(4,0,2); /*set fonts*/ outtextxy(250,300,Good teacher); settextstyle(3,0,3); outtextxy(250,350,RANG WO); outtextxy(275,400,ji ge); 7.雪花树函数void grow(int x,int y,float lenth,float fai) int x1,y1; int nx,ny,count; float nlenth; x1=x+lenth*cos(fai*PAI/180.0); y1=y-lenth*sin(fai*PAI/180.0); line(x,y,x1,y1); if(lenth10)return; nlenth=lenth; nx=x; ny=y; for(count=0;count7;count+) nx=nx+nlenth*(1-g)*cos(fai*PAI/180.0); ny=ny-nlenth*(1-g)*sin(fai*PAI/180.0); grow(nx,ny,nlenth*(1-g),fai+thita); grow(nx,ny,nlenth*(1-g),fai-thita); nlenth*=g; 8.特殊三角形函数void draw(int x1,int y1,int x2,int y2,int x3,int y3) int xm1,ym1,xm2,ym2,xm3,ym3,fx,fy; xm1=(x1+x2)/2; ym1=(y1+y2)/2; xm2=(x2+x3)/2; ym2=(y2+y3)/2; xm3=(x3+x1)/2; ym3=(y3+y1)/2; line(xm1,ym1,xm2,ym2); line(xm2,ym2,xm3,ym3); line(xm3,ym3,xm1,ym1); fx=xm1-xm2; fy=ym1-ym2; if(fx*fx+fy*fy)150) return; draw(x1,y1,xm1,ym1,xm3,ym3); draw(xm1,ym1,x2,y2,xm2,ym2); draw(xm3,ym3,xm2,ym2,x3,y3);4设计结果与分析4.1 程序运行结果分析当把程序写好并进行调试时,并不是一帆风顺的,总会遇到很多在调试时遇到的错误。1. 首先在定义函数时,不能输入汉字。否则会程序会显示错误。2.在程序中,时刻注意结尾百分号的添加。3.前后定义变量要统一。4.对背景颜色设置的时候,当你输入的颜色在内存中不存在时,运行程序过后,系统会告诉你相应的颜色符号常数及数值。5.对应该有花括弧的复合语句,忘记加花括弧。4.2 程序运行结果截图 图4.2(1)雪花树和特殊三角形运行结果 图4.2(2)狙击瞄准镜运行结果5 小 结随着我国成功加入WTO及信息化浪潮的日益临近,企业、单位等一些部门在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势。因此,如何使企业、单位等部门及时掌握本企业、单位等人才的各种信息、第一时间处理好随时变化的工资管理问题,建立一套符合企业、单位实际的工资管理系统就显得尤为重要。在本课程设计的设计过程中,我刚开始感觉到有点头痛。要通过一学期C语言的学习后将所学知识运用起来有点困难,但回过头来再去看教课书,对于这些知识点有关的背景,概念和解决方案更进一步的理解,感觉也不是很难。另外我还体会了从事C语言课程设计工作需要特别谨慎认真地态度和作风,一点都不能马虎。每个细微的细节都必须十分注意,如果不认真思考,就会出现或大或小的错误。如果把早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时会推倒很多前面做的工作。有时候,我自己觉得我写的程序非常正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙才向老师同学请教。在开始编写程序的时候,我看到别人的程序功能非常的详细,而且界面非常漂亮,总是希望自己的程序也非常的完善,但是,发现编一个好的程序不是一蹴而就的事情,需要长时间的积累和经验。在反反复复的学习中,我终于作出一个简单的程序,虽然这个程序的功能非常简单,而且在实际运用中还有些不足.由于我的知识浅薄,经验不足及阅历颇浅,在该系统的设计方面还有很多不足,比如功能过少等问题,我会在以后的学习过程中,根据具体要求不断的修改、完善,争取使系统慢慢趋于完美。致谢在这次C语言课程设计中,我的老师和同学给了我及大的帮助。特别是我的指导老师徐宁老师。在此,我对他们表示感谢!感谢他们在我面对困难时给了我帮助和支持。也感谢那些给我帮助的所有同学!参考文献 1 计算机图形学C语言版(第2版影印版) 2 C语言图形设计 3 C语言的窗口式图形界面设计源程序#include#include#include#include#define g 0.618#define PAI 3.14float thita=60.0;void grow(int x,int y,float lenth,float fai);void draw(int x1,int y1,int x2,int y2,int x3,int y3);main()char str8=10,20,30,40,50,60,70,80; int gm,gd; int x1=360,y1=100,x2=260,y2=273,x3=460,y3=273; detectgraph(&gd,&gm); initgraph(&gd,&gm,tcbgi); line(x1,y1,x2,y2); line(x2,y2,x3,y3); line(x3,y3,x1,y1); draw(x1,y1,x2,y2,x3,y3); grow(100,300,280.0,90.0);delay(5000); /*yanshi 1 s*/ cleardevice(); setbkcolor(BLACK); setcolor(RED); /*/ setfillpattern(str,RED); /* */circle (320,240,50);line (230,240,410,240);line (320,150,320,330); setcolor(12); settextstyle(4,0,2); /*set fonts*/ outtextxy(250,300,Good teacher); settextstyle(3,0,3); outtextxy(250,350,RANG WO); outtextxy(275,400,ji ge); delay(3000);getch();closegraph();clrscr();void grow(int x,int y,float lenth,float fai) int x1,y1; int nx,ny,count; float nlenth; x1=x+lenth*cos(fai*PAI/180.0); y1=y-lenth*sin(fai*PAI/180.0); line(x,y,x1,y1); if(lenth10)return; nlenth=lenth; nx=x; ny=y; for(count=0;count7;count+) nx=nx+nlenth*(1-g)*cos(fai*PAI/180.0); ny=ny-nlenth*(1-g)*sin(fai*PAI/180.0); grow(nx,ny,nlenth*(1-g),fai+thita); grow(nx,ny,nlenth*(1-g),fai-thita); nlenth*=g; void draw(int x1,int y1,int x2,int y2,int x3,int y3) int xm1,ym1,xm2,ym2,xm3,ym3,fx,fy; xm1=(x1+x2)/2; ym1=(y1+y2)/2; xm2=(x2+x3)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论