资源描述:
《数计学院课程设计报告册(编程类)3612195》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2010~2011学年度第一学期赣南师范学院数学与计算机科学学院计算机图形学课程设计报告册课程设计名称:二维图形演示系统的设计与实现专业:信息与计算科学班级:07信计本班学号:070704024姓名:刘广华指导老师:刘洋老师课程设计任务一览表序号课程设计任务名称设计专题任务描述(可附页)1设计思想本程序是为了实现计算机图形学中的二维图像生成而设计的。本程序采用模块调用的方式而设计,利用主函数调用各种二维图像生成的子函数,实现特定的目的。2程序的设计在这个程序中,分别有直线生成,曲线生成,平移变换,比例变换,对称变换,区域填充和图像裁剪七个功能。3具体程序的实现
2、见附录源代码4界面设计这里可以选择7种绘图操作。分别是1直线生成、2曲线生成、3平移变换、4比例变换、5对称变换、6区域填充和7二维图像裁剪,以及0退出操作。我们可以选择相应操作的数字来实现进入对应的模式。5调试情况6程序的分析与评价程序由几个简单小程序综合而成,用c写的一个程序,难度不大。指导用书:孙家广计算机图形学清华大学出版社,1998课程设计报告设计项目编号12名称二维图形演示系统的设计与实现主要仪器设备计算机附属设备U盘主要使用软件Win—Tc起止时间2010年9月21日—11月18日同组人刘根课程设计任务书1.问题的描述与分析2.程序的设计3.具体
3、程序的实现4.界面设计5.调试情况6.程序的分析与评价课程设计报告附录程序源代码:#include"stdio.h"#include"math.h"#include"graphics.h"#include"stdlib.h"#include"conio.h"#definefnx(x)(x20+x*s1)#definefny(y)(MAXY-y20-y*s1)#definef(x)exp(-x*x)#definefpx(x)x+x0#definefpy(y)y0-y#definefdx(x)x0-x#definefdy(y)y+y0intdriver=DETEC
4、T,mode,x20,y20,MAXX,MAXY;intxl,yb,xr,yt,x0,y0,a,b,c,d,ch,mx,my;floats1;ddaline(x1,y1,x2,y2)/***画线函数的DDA方法***/{inti1;floatx,y,increx,increy,length;if(abs(x2-x1)>abs(y2-y1))length=abs(x2-x1);elselength=abs(y2-y1);increx=(x2-x1)/length;increy=(y2-y1)/length;x=x1;y=y1;for(i1=1;i15、;i1++){putpixel((int)(x+0.5),(int)(y+0.5),YELLOW);x=x+increx;y=y+increy;}}drawline()/***画线的函数***/{inta,b,c,d;intdriver=DETECT,mode;printf("Input(x1,y1)and(x2,y2)!");scanf("%d%d%d%d",&a,&b,&c,&d);initgraph(&driver,&mode,"c:\tc");ddaline(a,b,c,d);/***调用DDA方法***/getch();clearviewpor
6、t();closegraph();}pingyi()/***平移函数***/{intxl,yb,xr,yt,driver=DETECT,mode,dx,dy;intx0,y0;printf("InputOrginx0,y0:");scanf("%d%d",&x0,&y0);printf("Inputleft(xl,yb)andright(xr,yt):");scanf("%d%d%d%d",&xl,&yb,&xr,&yt);printf("Inputdxanddy:");scanf("%d%d",&dx,&dy);initgraph(&d
7、river,&mode,"c:\tc");setcolor(YELLOW);orgin(x0,y0);xl=fpx(xl);xr=fpx(xr);yb=fpy(yb);yt=fpy(yt);line(xl,yb,xr,yb);line(xl,yb,xl,yt);line(xr,yt,xr,yb);line(xl,yt,xr,yt);getch();xl=xl+dx;xr=xr+dx;yb=yb-dy;yt=yt-dy;line(xl,yb,xr,yb);line(xl,yb,xl,yt);line(xr,yt,xr,yb);line(xl,yt,xr,yt)
8、;getch();closegraph