1、2.2 平移功能设计与实现 42.2.1理论基础 42.2.2程序设计 52.2.3运行结果与截图 52.3 旋转功能设计与实现 72.3.1理论基础 72.3.2程序设计 82.3.3运行结果与截图 82.4 比例变换功能设计与实现 102.4.1理论基础 102.4.2程序设计 102.4.3运行结果与截图 112.5 错切功能设计与实现 122.5.1理论基础 122.5.2程序设计 132.5.3运行结果与截图 132.6 对称功能设计与实现 152.6.1理论基础 152.6.2程序设计 162.6.3运行结果与截图 16第三章 总结 19第一章 概述计算机图形学(Computer
2、Graphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。二维变换:二维指长和宽,即平面。二维几何变换就是平面几何的几种变换。如平移,旋转,翻折等的变换。系统功能: 1)平移;2)旋转;3)比例;4)错切;5)对称第二章 系统设计与实现2.1 系统框架总体设计系统框架如下图所示,有平移、旋转、缩放、错切、对称、复原等功能。2.2 平移功能设计与实现2.2.1理论基础平移是不穿生变形而移动物体的变换,物体的每一个点移动相同的一个坐标
3、。原三角形到平移后的三角形满足P=P+T的形式,T为平移变换矩阵。所以满足下面的关系式:平移变换如下:(TYPE x, TYPE y);二个函数参数就是目标分别沿二个轴向平移的偏移量。这个函数表示用于这二个偏移量生成的矩阵乘以当前矩阵2.2.2程序设计void CCase9View:Tmove(double Tx,double Ty) ClearMatrix(TM); RedrawWindow(); TM00=1; TM11=1; TM20=Tx; TM21=Ty; TM22=1; Calculate(P,TM); AfxGetMainWnd()-SetWindowText(平移变换); Dr
4、aw(P,ntype);2.2.3运行结果与截图原图:沿X轴平移:沿Y轴平移:2.3 旋转功能设计与实现2.3.1理论基础二维旋转变换是将物体沿xy平面内的圆弧路径重定位的过程。为了实现旋转,需要先指定旋转的角度和物体选绕旋转的旋转点,并以逆时针方向旋转为正角度,对应图元点的坐标值满足关系式:x=xcos-ysin y=xsin+ycos 将该方程组用矩阵形式表示成:P=PR,R为旋转变换矩阵,其中满足矩阵。旋转变换函数如下:(TYPEangle,TYPEx,y);函数中第一个参数是表示目标沿从点(x,y)到原点的方向逆时针旋转的角度,二个参数是旋转的方向点坐标。这个函数表示用这三个参数生成的
5、矩阵乘以当前矩阵。2.3.2程序设计Trotate(double thta) ClearMatrix(TR); TR00=cos(thta*PI/180); TR01=sin(thta*PI/180); TR10=-sin(thta*PI/180); TR11=cos(thta*PI/180); TR22=1; Calculate(P,TR);旋转变换2.3.3运行结果与截图旋转变换后:2.4 比例变换功能设计与实现2.4.1理论基础它改变显示图形的比例。新图形p的每个图元点的坐标值是原图形p中每个图元点的坐标值分别乘以比例常数Sx和Sy,所以对应点之间的坐标值满足关系式:=xSxy=ySy将
6、方程写成矩阵的形式表示成:S,S为比例变换的变换矩阵,其中满足矩阵比例变换函数如下:二个函数参数值就是目标分别沿二个轴向缩放的比例因子。这个函数表示用这二个比例因子生成的矩形乘以当前矩阵。这个函数能完成沿相应的轴对目标进行拉伸、压缩和反射三项功能。以参数x为例,若当x大于1.0时,表示沿x轴方向拉伸目标;若x小于1.0时,表示沿x轴方向收缩目标;若x=-1.0表示沿x轴反射目标。2.4.2程序设计Tscale(double Sx,double Sy) ClearMatrix(TS); TS00=Sx; TS11=Sy; TS22=1; Calculate(P,TS);比例变换2.4.3运行结果
7、与截图等比例放大:等比例缩小:2.5 错切功能设计与实现2.5.1理论基础错切会使物体形状发生变化的变换,经过错切的物体好像是由已经相互滑动的内部夹层组成,错切变换是将左边点p(x,y)沿x轴和y轴发生不等量的变换,得到p(x,y)的过程。沿X轴错切:=x+x =y 矩阵如图所示:其中SHx=x。沿Y轴错切与沿x轴错切相反,保持x轴不变,y轴改变。=x =y+y 实现图像错切变换时,必须考虑图像将目标像素点坐标变为源相点坐标时小数部分对像素值的影响,由于错切以后图像会在宽或者高上比原图像大,多出来的这些背景像素默认填充颜色为黑色。根据目标像素计算源像素的公式可以根据上面的数学公式运算以后分别求
8、的x1,y1的值。2.5.2程序设计Treform(double b,double c) ClearMatrix(TC); TC00=1; TC01=b; TC10=c; TC11=1; TC22=1; Calculate(P,TC);错切变换2.5.3运行结果与截图沿X轴正向错切:沿Y轴正方向错切:2.6 对称功能设计与实现2.6.1理论基础二维反射变换的形式为:=axxx+axyy+bx=ayxx+ayyy+by变换的坐标x和y都是原始坐标x和y的线性函数。参数aij和bk是由变换类型确定的常数。反射射变换具有平行线转换成平行线和有限点映射到有限点的一般特性。2.6.2程序设计Trefle
9、ct(double Fx,double Fy) ClearMatrix(TF); TF00=Fx; TF11=Fy; TF22=1; Calculate(P,TF);对称变换2.6.3运行结果与截图沿x轴对称:沿y轴对称:沿原点对称:第3章总结计算机图形学技术是随着计算机技术在图形学处理领域中的应用而发展起来的,是伴随着电子计算机及外围设备的发展而产生和发展起来的,它是计算机应用学科的一个重要分支。在设计过程中,运用到了书本上所学的知识,比如说图形的平移、旋转、对称、错切、比例变换等,通过本次课程设计 ,对图形学的知识有了更深的了解,了解到在图形模式下各个点坐标能确定的图形的位置和大小。在设计时,刚开始对整体位置坐标很盲目,不知道该从那里开始计算,后来通过同学的提示及老师的讲解,最后成功的计算了出来.在编译及运行代码时也出现了很多的错误,比如说图形不能初始化,填充时打不到自己想要的结果等,通过自己细心的检查及改正,最终能够运行成功并显示在屏幕上,这次的课程设计不仅让我丰富了计算机图形学的理论知识而且还学到了很到书本以外的知识,让我学会无论干任何事都应沉着,冷静,善于思考,善于发现,善于改正。在以后的学习中我会更加细心,更加努力,学好理论知识的同时也要注重实践。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1