计算机图形学大作业4540_第1页
计算机图形学大作业4540_第2页
计算机图形学大作业4540_第3页
计算机图形学大作业4540_第4页
计算机图形学大作业4540_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

《计算机图形学》期末论文学院:计算机科学与工程专业:计算机科学与技术班级:学号姓名:成绩:一.问题描述1.1基本要求:了解计算机图形学中的基本原理和方法,并能利用程序设计语言实现。1.2实验内容:(1)利用程序设计语言,进行二维及三维图元的几何变换过程。(2)利用程序设计语言,实现直线段与圆弧等基本图元的像素生成。二.需求分析2.1基本功能:缩放1.对二维图元实现平移变换、旋转变换,。2.对三维图元实现平移变换。3.用DDA算法生成直线与圆弧。2.2输入输出数据:输入数据:图形界面无需输入数据,只要点击相应得按钮即可。输出数据:在每个界面上会输出相应的选项信息。当在最后选择操作的信息后,会输出相应的图形。三.概要设计3.1结构体及函数:结构体:(1)classCTransMatrix{public:

CTransMatrix();virtual~CTransMatrix();voidIdentityMatrix(floatm[3][2]);voidScaleMatrix(floatSx,floatSy,floatm[3][2]);voidTranslateMatrix(floatTx,floatTy,floatm[3][2]);voidRotateMatrix(floatS,floatC,floatm[3][2]);voidTransPoint(int*X,int*Y,floatm[3][2]);voidTransPoints(intn,int*X,int*Y,floatm[3][2]);};功能:实现二维变换的矩阵。(2)typedefstructIpoint{intx,y;}Ipoint_t,*Ipoint_p;typedefstructGpoint{floatx,y,z;}Gpoint_t,*Gpoint_p;typedefstructpoly{intclipCount;intpolyCount;polyLight[10];polyVisible;floatBOOLGpoint_tpolyObject[5];Gpoint_tclipObject[10];Gpoint_ttransObject[5];//OriginalObject//ClipObject//TransformObjectGpoint_tprojectObject[10];//ProjectClipObjectIpoint_tzBufferObject[10];//ProjectObjectTranstoProjectPlane}Poly_t,*Poly_p;typedefstructobject{intpolyCount;BOOLobjectVisible;

Poly_tobjectSpace[600];}Object_t,*Object_p;功能:实现三维变换的定义。四.详细设计4.1变换矩阵及DDA算法:三维变换矩阵三维变换矩阵的一般形式为:aaap123b1b2b3qc1c2c3rddds123我们可以把该三维变换矩阵中的各元素按功能分为四部分,该四部分的功能分别为:(1)a1a2a3b1b2b3c1c2c3可以实现比例、对称、错切和旋转等基本变换。(2)[d1d2d3]:实现三(3)[pqr]:可以实现(4)[s]:可以实现DDA算法:个轴向的平移变换;透视变换;全比例变换;(1)直线:当直线的斜率在(-1,1)之间时,即每次都应该让x增加一出y的值,直线斜率绝对值大于1时,y为准。坐标求出增量和斜率,然后用for循环语句和画点函数putpixel(intx,inty,intcolor)实现。(2)圆弧:一段一段的直线,然后用画线函数来实现而已。在程序中,用始和角终求角出划分的段数,然后在改变x与y的值,最后在用lineto(x,y)函数画线。它的增量应该以x为准,个像素,然后计算最终得到实际点的像素。当增量应该以在程序中,用始点与终点的与直线的原理是相同,只是这里的增量为角度。即把圆弧划分成for循环中利用三角函数五.测试结果二维平移及旋转和缩放三维平移变换生成直线生成圆六.实验心得体会通过这次实验,了解了计算机图形学中的基本原理和方法,并能利用程序设计语言实现,也接触到了很多绘制图形的函数及算法,也

温馨提示

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

评论

0/150

提交评论