ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:545.25KB ,
资源ID:9311501      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-9311501.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学年设计报告.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

学年设计报告.docx

1、学年设计报告 学年设计报告设计题目: 用C语言实现简单2图形的绘制和变换 作者姓名: 王兴超 王天祥 张涛 朱龙飞 席晓东 所学专业: 网络工程专业 指导老师: 赵瑞斌 2012年9月2号学年设计任务书学年设计题目用C语言实现简单2图形的绘制和变换组长王兴超学号2011211311班级11网工(二)班组别软件第二组专业网络工程组员王兴超 、王天祥、 张涛 、朱龙飞 、席晓东指导教师赵瑞斌学年设计目的合理运用所学专业课(C语言)设计一些小程序来解决实际问题学年设计所需环境微机房YF3503学年设计任务要求利用C语言编写代码进行图形变换学年设计工作进度计划序号起止日期工 作 内 容分工情况18.2

2、5分析题目,从指导老师获取信息全体成员28.26找到绘制简单二维图形的方法王兴超,张涛,王天祥,朱龙飞38.27 8.28讨论一些简单变换的思路,实行平移,比例与旋转变换席晓东查找资料,王兴超,张涛代码实现48.28总体界面与主函数的设计朱龙飞,王天祥,席晓东58.30对代码进行整体测试修改王兴超,张涛68.31 9.1完成设计报告王兴超,朱龙飞,王天祥教研室审核意见:教研室主任签字: 年 月 日目录摘要 11 绪论 21.1设计背景与意义 21.2系统结构 22 问题描述 23 分析 33.1平移变换 33.2 比例变换 33.3 旋转变换 34 设计实现 44.1 加载页面 44.2画出三

3、角形 44.3 对三角形进行平移变换 54.4 对三角形进行比例变换 74.5 对三角形进行旋转变换 84.6 画出所要的矩形 94.7 矩形进行平移变换 104.8 矩形进行比例变换 124.9 矩形进行旋转变换 134.10 圆对圆形进行变换选择 134.11 画出的圆形进行平移 144.12对画出的圆形进行比例变换 164.13主程序 165运行结果 175.1 加载页面 175.2 目录界面进行选择 185.3三角形变换 185.3.1 选择1进行平移变换。 195.3.2 选择2进行比例变换 205.3.3 选择3进行旋转 205.4 选择3画出矩形 205.4.1 选择1进行平移变

4、换 215.4.2 进行比例变换 215.4.3 进行旋转变换 225.5选择5画出圆 225.5.1 选择1进行平移变换 235.5.2 选择2进行比例变换 236 学年设计总结与体会 246.1总结 246.2 体会 247 致谢 25参考文献: 25用C语言实现简单2图形的绘制和变换Using C language to achieve a simple 2D graphics rendering and transform摘要在计算机绘图的过程中,二维图形的绘制是绘制许多图形的基础,研究计算机图形的生成必须从研究二维图形开始。计算机绘制图形时,无论图形多么复杂,都是利用一些相应图形基元

5、经过图形变换组成的。在计算机绘图中,经常用到图形变换,图形变换是指图形信息经过几何变换后产生新的图形。基本的几何变换研究物体坐标在直角坐标系内的平移、旋转和变比等规则。本文主要介绍二维图形的一些基本变换规则及其应用。关键词:平移,旋转,缩放 ABSTRACTIn computer graphics, the process of 2d graphics rendering more graphics drawing is the basis, research of computer graphics generation must start from the 2d graphics. Co

6、mputer graphics, no matter how complex, graphics are using some corresponding graphic element composed by graphical transformation. In computer graphics, often use graphics transformation, graphics transform refers to the graphical information through after new graphics geometry transform. The basic

7、 research object coordinate geometry transform in cartesian coordinate system in translation, rotation and change rules than etc. This paper mainly introduces some basic transformation of 2d graphics and its application in the rules. Keywords: Translation, Rotating, Scaling1 绪论1.1设计背景与意义目前,很多软件对二维图形

8、变换程序的需求逐渐增大,而且二维图形的应用也正逐渐向各个方向渗透。在这样的形式下这就要求我们计算机专业的学生们能够实现这一基本变换,以更好的应对这一方面计算机应用的发展。利用C语言实现二维图形的变换不仅可以实现日常生活中常见图片的变换,而且可以实现各种二维图形的绘制,这也就为我们的生活提供了许多的便利。1.2系统结构整体流程:图1.2 整体流程图2 问题描述二维图形的几种典型变换,二维图形由点或者是直线段组成,直线段可由其端点坐标定义,二维图形的集合变换实际是对点或者是对直线段端点在变换矩阵的作用下实现的。设P=x y是原来的点,P=x y是变换后的点,则几种典型的变换如下:(a) 平移变换:

9、(b) 比例变换:(c) 旋转变换:3 分析我们小组对问题进行了深刻的讨论,确定了用点对点连线的方式来确定一个简单的二维图形,如三角形和矩形。然后对已确定的点进行操作以实现各种图形变换。3.1平移变换若图形上一点P(x,y)沿x轴平移 l距离,沿y轴平移m距离后成为新的图形上一点P(x,y),则有 x = x + l y = y + m 式中l,m不全为零,这称为平移变换。3.2 比例变换 设图形上一点P(x,y),经比例变换后成为新的菜上一点P(x,y),即有 x=a*x y=d*y 式中a,d为比例因子将此比例变换式写成矩阵式得 这里叫做比例变换矩阵。若a=d,则x,y坐标按同一比例变换。

10、当a=d1时,图形放大;当0a=d1时,图形缩小。若ad,则x,y坐标按各自不同比例变换。3.3 旋转变换设图形上一点P(x,y)绕原点逆时针旋转角后成为新的图形上一点P(x,y),则由解析几何方法可得 x = xcos + ysin y = -xsin + ycos 用矩阵表示为这里为绕原点逆时针变换矩阵。若顺时针旋转时,角为负值。4 设计实现4.1 加载页面void heard() /开始界面 int i; printf(nnnn ); printf( 程序加载中 nn); printf( ); Sleep(1000);/延时 for(i=0;i); Sleep(60); Sleep(10

11、00);/延时 system(cls);/清屏 printf(nnnn ); printf(aa);/一声响声 printf(【加载完成】 ); system(pause);/dos命令 system(cls);/清屏 fflush(stdin);/清除缓冲区4.2画出三角形,并对三角形的三种变换进行选择void sanjiao() /画三角形 initgraph(500,500); line(25,50,50,50); line(50,50,50,25); line(50,25,25,50); getch(); / 按任意键继续 closegraph(); / 关闭图形界面void sanj

12、iaobianhuan()int selsect;do printf(nn); printf( 1.平移转换t2.比例转换n); printf( 3.旋转转换t0.结束函数n); printf(nn); printf( 请输入你的选择:); scanf(%d,&selsect); switch(selsect) case 0:break; case 1: pingyi_tu();break; case 2: bili_tu();break; case 3: xuanzhuan_tu();break; while(selsect!=0); 4.3 对三角形进行平移变换void pingyi_tu

13、() /三角形平移变换 int Tx,Ty; int x1,x2,x3,y1,y2,y3; int a,b,c,d,e,f; printf(请输入平移的量为(Tx,Ty):); scanf(%d,%d,&Tx,&Ty); /moverel(Tx,Ty); printf(即要平移的量为:(%d,%d)n,Tx,Ty); x1=25+Tx;y1=50+Ty; x2=50+Tx;y2=25+Ty; x3=50+Tx;y3=50+Ty; initgraph(500,500);/初始化绘图环境 line(25,50,50,50); line(50,50,50,25); line(50,25,25,50)

14、; Sleep(1000); for(a=25,c=50,e=50;a=Tx,c=Tx,e+Tx;a+,c+,e+) setcolor(RGB(255,255,255); line(a,50,c,50); line(c,50,e,25); line(e,25,a,50); Sleep(10); setcolor(RGB(0,0,0); line(a,50,c,50); line(c,50,e,25); line(e,25,a,50); for(b=50,d=50,f=25;b=Ty,d=Ty,f=Ty;b+,d+,f+) setcolor(RGB(255,255,255); line(a,b,

15、c,d); line(c,d,e,f); line(e,f,a,b); Sleep(10); setcolor(RGB(0,0,0); line(a,b,c,d); line(c,d,e,f); line(e,f,a,b); setcolor(RGB(255,255,255); line(25,50,50,50); line(50,50,50,25); line(50,25,25,50); setcolor(RGB(255,0,0); line( a,b,c,d); line( c,d,e,f); line( e,f,a,b); getch(); closegraph();/函数用于关闭图形环

16、境。4.4 对三角形进行比例变换void bili_tu() /三角形比例变换 int Sx,Sy; int x1,x2,x3,y1,y2,y3; printf(请输入比例的量为(Sx,Sy):); scanf(%d,%d,&Sx,&Sy); printf(即要按比例转换的量为:(%d,%d)n,Sx,Sy); x1=25*Sx;y1=50*Sy; x2=50*Sx;y2=50*Sy; x3=50*Sx;y3=25*Sy; initgraph(500,500);/初始化绘图环境 line(25,50,50,50); line(50,50,50,25); line(50,25,25,50); S

17、leep(1000); setcolor(RGB(255,0,0); line( x1,y1,x2,y2); line( x1,y1,x3,y3); line( x2,y2,x3,y3); getch();/延时 closegraph();/函数用于关闭图形环境 4.5 对三角形进行旋转变换 void xuanzhuan_tu() /三角形旋转变换 int a; int x1,x2,x3,y1,y2,y3; printf(请输入要旋转的弧度制:); scanf(%d,&a); x1=(int)(25*cos(a)-50*sin(a); y1=(int)(25*sin(a)+50*cos(a);

18、 x2=(int)(50*cos(a)-50*sin(a); y2=(int)(50*sin(a)+50*cos(a); x3=(int)(50*cos(a)-25*sin(a); y3=(int)(50*sin(a)+25*cos(a); initgraph(500,500);/初始化绘图环境 line(25,50,50,50); line(50,50,50,25); line(50,25,25,50); Sleep(1000); setcolor(RGB(255,0,0); line( x1,y1,x2,y2); line( x1,y1,x3,y3); line( x2,y2,x3,y3)

19、; getch();/延时 closegraph();/函数用于关闭图形环境4.6 画出所要的矩形,并对选择需要的变换void juxing() /画矩形 initgraph(500,500); line(25,25,25,50); line(25,50,60,50); line(60,50,60,25); line(60,25,25,25); getch(); closegraph();void juxingbianhuan() /矩形变换 int selsect;do printf(nn); printf( 1.平移转换t2.比例转换n); printf( 3.旋转转换t0.结束函数n);

20、 printf(nn); printf( 请输入你的选择:); scanf(%d,&selsect); switch(selsect) case 0:break; case 1: pingyitu();break; case 2: bilitu();break; case 3: xuanzhuantu();break; while(selsect!=0);4.7 矩形进行平移变换 void pingyitu() /矩形平移变换 int Tx,Ty; int a,b,c,d; int x1,x2,x4,x3,y1,y2,y3,y4; printf(请输入平移的量(Tx,Ty):); scanf(

21、%d,%d,&Tx,&Ty); x1=25+Tx;y1=25+Ty; x2=25+Tx;y2=50+Ty; x3=60+Tx;y3=50+Ty; x4=60+Tx;y4=25+Ty; initgraph(500,500);/初始化绘图环境 line(25,25,25,50); line(25,50,60,50); line(60,50,60,25); line(60,25,25,25); Sleep(1000); for(a=25,c=60;a=x1,c=x3;a+,c+) setcolor(RGB(255,255,255); line(a,25,a,50); line(a,50,c,50);

22、 line(c,50,c,25); line(c,25,a,25); Sleep(10); setcolor(RGB(0,0,0); line(a,25,a,50); line(a,50,c,50); line(c,50,c,25); line(c,25,a,25); for(b=25,d=50;c=y1,d=y3;b+,d+) setcolor(RGB(255,255,255); line(a,b,a,d); line(a,d,c,d); line(c,d,c,b); line(c,b,a,b); Sleep(10); setcolor(RGB(0,0,0); line(a,b,a,d);

23、line(a,d,c,d); line(c,d,c,b); line(c,b,a,b); setcolor(RGB(255,255,255); line(25,25,25,50); line(25,50,60,50); line(60,50,60,25); line(60,25,25,25); setcolor(RGB(255,0,0); line( x1,y1,x2,y2); line( x2,y2,x3,y3); line( x3,y3,x4,y4); line( x4,y4,x1,y1); getch();/延时 closegraph();/函数用于关闭图形环境4.8 矩形进行比例变换v

24、oid bilitu() /矩形比例变换 int Sx,Sy; int x1,x2,x3,x4,y1,y2,y3,y4; x1=x2=x3=x4=y1=y2=y3=y4=0; printf(请输入比例的量为(Sx,Sy):); scanf(%d,%d,&Sx,&Sy); printf(即要按比例转换的量为:(%d,%d)n,Sx,Sy); x1=25*Sx;y1=25*Sy; x2=25*Sx;y2=50*Sy; x3=60*Sx;y3=50*Sy; x4=60*Sx;y4=25*Sy; initgraph(500,500);/初始化绘图环境 line(25,25,25,50); line(2

25、5,50,60,50); line(60,50,60,25); line(60,25,25,25); Sleep(1000); line( x1,y1,x2,y2); line( x1,y1,x4,y4); line( x2,y2,x3,y3); line( x3,y3,x4,y4); getch();/延时 closegraph();/函数用于关闭图形环境4.9 矩形进行旋转变换void xuanzhuantu() /矩形旋转变换 int a; int x1,x2,x3,y1,y2,y3,x4,y4; printf(请输入要旋转的弧度制:); scanf(%d,&a); x1=(int)(2

26、5*cos(a)-25*sin(a); y1=(int)(25*sin(a)+25*cos(a); x2=(int)(25*cos(a)-50*sin(a); y2=(int)(25*sin(a)+50*cos(a); x3=(int)(60*cos(a)-50*sin(a);y3=(int)(60*sin(a)+50*cos(a); x4=(int)(60*cos(a)-25*sin(a);y4=(int)(60*sin(a)+25*cos(a); initgraph(500,500);/初始化绘图环境 line(25,25,25,50); line(25,50,60,50); line(6

27、0,50,60,25); line(60,25,25,25); Sleep(1000); setcolor(RGB(255,0,0); line( x1,y1,x2,y2); line( x1,y1,x4,y4); line( x2,y2,x3,y3); line( x3,y3,x4,y4); getch();/延时 closegraph();/函数用于关闭图形环境4.10 圆对圆形进行变换选择void yuan() /画圆 initgraph(500,500); circle(250,250,50); getch(); closegraph();void yuanbianhuan() /圆变

28、换 int selsect; do printf(nn); printf( 1.平移转换n); printf( 2.比例变换n); printf( 0.退出n); printf(nn); printf( 请输入你的选择:); scanf(%d,&selsect); switch(selsect) case 0:break; case 1: yuanpingyi();break; case 2: yuanbili();break; while(selsect!=0); 4.11 画出的圆形进行平移void yuanpingyi() /圆平移 int Tx,Ty; int x,y; int i,j; printf(请输入平移的量(x,y):); scanf(

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2