计算机图形学期末论文

上传人:豆浆 文档编号:31453128 上传时间:2018-02-07 格式:DOC 页数:7 大小:726.50KB
返回 下载 相关 举报
计算机图形学期末论文_第1页
第1页 / 共7页
计算机图形学期末论文_第2页
第2页 / 共7页
计算机图形学期末论文_第3页
第3页 / 共7页
计算机图形学期末论文_第4页
第4页 / 共7页
计算机图形学期末论文_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《计算机图形学期末论文》由会员分享,可在线阅读,更多相关《计算机图形学期末论文(7页珍藏版)》请在金锄头文库上搜索。

1、大连民族学院计算机图形学期末论文学 院: 计算机科学与工程 专 业: 计算机科学与技术 班 级: 2005 2 班 学号姓名: 46451554 安 成 绩: 一.问题描述1.1 基本要求:了解计算机图形学中的基本原理和方法,并能利用程序设计语言实现。1.2 实验内容:(1)利用程序设计语言,进行二维及三维图元的几何变换过程。(2)利用程序设计语言,实现直线段与圆弧等基本图元的像素生成。二.需求分析2.1 基本功能:1.对二维图元实现平移变换、旋转变换,缩放。2.对三维图元实现平移变换。3.用 DDA 算法生成直线与圆弧。2.2 输入输出数据:输入数据:图形界面无需输入数据,只要点击相应得按钮

2、即可。输出数据:在每个界面上会输出相应的选项信息。当在最后选择操作的信息后,会输出相应的图形。三.概要设计3.1 结构体及函数:结构体:(1)class CTransMatrix public:CTransMatrix();virtual CTransMatrix();void IdentityMatrix(float m32);void ScaleMatrix(float Sx, float Sy, float m32);void TranslateMatrix(float Tx, float Ty, float m32);void RotateMatrix(float S, float C

3、, float m32);void TransPoint(int *X, int *Y, float m32);void TransPoints(int n, int *X, int *Y, float m32);功能:实现二维变换的矩阵。(2)typedef struct Ipoint int x,y; Ipoint_t, *Ipoint_p;typedef struct Gpoint float x,y,z; Gpoint_t, *Gpoint_p;typedef struct poly int clipCount;int polyCount;float polyLight10;BOOL

4、polyVisible;Gpoint_t polyObject5; / Original ObjectGpoint_t clipObject10; / Clip ObjectGpoint_t transObject5; / Transform ObjectGpoint_t projectObject10; / Project Clip ObjectIpoint_t zBufferObject10; / Project Object Trans to Project Plane Poly_t, *Poly_p;typedef struct object int polyCount;BOOL ob

5、jectVisible; Poly_t objectSpace600; Object_t, *Object_p;功能:实现三维变换的定义。四.详细设计4.1 变换矩阵及 DDA 算法:三维变换矩阵三维变换矩阵的一般形式为:我们可以把该三维变换矩阵中的各元素按功能分为四部分,该四部分的功能分别为:(1)a1 a2 a3b1 b2 b3c1 c2 c3可以实现比例、对称、错切和旋转等基本变换。(2)d1 d2 d3 : 实现三个轴向的平移变换;(3)p q r:可以实现透视变换;(4)s :可以实现全比例变换;DDA 算法:(1)直线:当直线的斜率在(-1,1)之间时,它的增量应该以 x 为准,即

6、每次都应该让 x 增加一个像素,然后计算出 y 的值,最终得到实际点的像素。当直线斜率绝对值大于 1 时,增量应该以 y 为准。在程序中,用始点与终点的坐标求出增量和斜率,然后用 for 循环语句和画点函数 putpixel(int x, int y, int color)实现。(2)圆弧:与直线的原理是相同,只是这里的增量为角度。即把圆弧划分成一段一段的直线,然后用画线函数来实现而已。在程序中,用始角和终角求出划分的段数,然后在 for 循环中利用三角函数改变 x 与 y 的值,最后在用 lineto(x,y)函数画线。sdrcqbpa321五.测试结果二维平移及旋转和缩放三维平移变换 生成直线 生成圆六.实验心得体会通过这次实验,了解了计算机图形学中的基本原理和方法,并能利用程序设计语言实现,也接触到了很多绘制图形的函数及算法,也大致明白了计算机图形学的内容,也感受到这门科学学科的强大力量。初步理解了绘制一些基本图形的原理及方法,感觉把这门课学透了,都不用愁就业了,并掌握了一些绘制图形的函数,巩固了 C 语言的基础,对以后的程序设计大有帮助。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号