欢迎来到天天文库
浏览记录
ID:35625311
大小:215.50 KB
页数:20页
时间:2019-04-03
《计算机图形学课程设计--计算机图形学基本算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、河南理工大学万方科技学院课程设计报告2011—2012学年第二学期课程名称计算机图形学设计题目计算机图形学基本算法演示系统设计学生姓名学号专业班级指导教师2012年5月28日18目录目录目录I第1章设计内容与要求11.1总体目标和要求11.2内容与要求1第2章总体设计32.1用Bresenham算法画直线32.1.1基本原理32.1.2算法32.1.3思想42.2用Bresenham算法画圆42.2.1基本原理42.2.2算法52.2.3思想62.3用梁友栋-Barsky算法进行线段裁剪72.3.1基本原理72.3.2算法实现82
2、.4用Sutherland-Hodgman算法进行多边形裁剪92.4.1基本原理92.4.2算法92.4.3思想10第3章详细设计113.1用Bresenham算法画直线113.2用Bresenham算法画圆113.3用梁友栋-Barsky算法进行线段裁剪133.4用Sutherland-Hodgman算法进行多边形裁剪13第4章功能实现144.1用Bresenham算法画直线144.2用Bresenham算法画圆144.3用梁友栋-Barsky算法进行线段裁剪154.4用Sutherland-Hodgman算法进行多边形裁剪15
3、第5章总结17参考文献1818第1章基础知识第1章设计内容与要求1.1总体目标和要求目标:以图形学算法为目标,深入研究。继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到:1)巩固和实践计算机图形学课程中的理论和算法;2)学习表现计算机图形学算法的技巧;3)培养认真学习、积极探索的精神。总体要求:策划、设计并实现一个能够充分表现图形学算法的演示系统,界面要求美观大方,能清楚地演示算法执行的每一个步骤。
4、开发环境:ViusalC++6.0,VC2005或其他你认为比较熟悉的环境。1.2内容与要求实验分为五项内容。1.直线的生成内容:用Bresenham算法画直线要求:1)鼠标移动时,显示鼠标当前位置2)显示判别式的计算过程和下一点的选择策略3)记录生成点的坐标4)图形生成过程可以重复进行2.圆弧的生成内容:用Bresenham算法画圆要求:1)鼠标移动时,显示鼠标当前位置2)显示判别式的计算过程和下一点的选择策略3)记录生成点的坐标4)图形生成过程可以重复进行5)橡皮筋技术实现3.线段裁剪18第1章基础知识内容:用梁友栋-Bars
5、ky算法进行线段裁剪要求:1)对于线段裁剪,线段被窗口的四条边裁剪的过程要显示出来2)用橡皮筋的形式输入剪裁线段1.多边形裁剪内容:用Sutherland-Hodgman算法进行多边形裁剪要求:1)裁剪过程需先输入一多边形,然后用窗口四边裁剪的过程中要显示顶点增删过程。2)用橡皮筋的形式输入剪裁线段18第2章总体设计第2章总体设计2.1用Bresenham算法画直线2.1.1基本原理过各行各列像素中心构造一组虚拟网格线,按直线从起点到终点的顺序计算直线与各垂直网格线的交点,然后确定该列像素中与此交点最近的像素。2.1.2算法Bre
6、senham直线算法是用来描绘由两点所决定的直线的算法,它会算出一条线段在n维光栅上最接近的点。这个算法只会用到较为快速的整数加法、减法和位元移位,常用于绘制电脑画面中的直线。是计算机图形学中最先发展出来的算法。流程图如下:18第2章总体设计输入直线的两个端点:(x1,y1)(x2,y2)假设斜率r在0^1之间,且x17、间的直线,也就是与x轴夹角在0度到45度的直线。只要解决了这类直线的画法,其它角度的直线的绘制全部可以通过简单的坐标变换来实现。2.2用Bresenham算法画圆2.2.1基本原理与Bresenham18第2章总体设计直线算法一样,其基本的方法是利用判别变量来判断选择最近的像素点,判别变量的数值仅仅用一些加、减和移位运算就可以计算出来。为了简便起见,考虑一个圆心在坐标原点的圆,而且只计算八分圆周上的点,其余圆周上的点利用对称性就可得到。Y为什么只计算八分圆周上的点就可以了呢?和上面的直线算法类似,圆也有一个“八对称性”,如下图所示8、。(y,-x)(-y,-x)X(x,y)(x,y)(-y,x)(-x,-y)(-x,y)(-x,y)显然,我们只需要知道了圆上的一个点的坐标(x,y),利用八对称性,我们马上就能得到另外七个对称点的坐标。2.2.2算法和直线算法类似,Bresenh
7、间的直线,也就是与x轴夹角在0度到45度的直线。只要解决了这类直线的画法,其它角度的直线的绘制全部可以通过简单的坐标变换来实现。2.2用Bresenham算法画圆2.2.1基本原理与Bresenham18第2章总体设计直线算法一样,其基本的方法是利用判别变量来判断选择最近的像素点,判别变量的数值仅仅用一些加、减和移位运算就可以计算出来。为了简便起见,考虑一个圆心在坐标原点的圆,而且只计算八分圆周上的点,其余圆周上的点利用对称性就可得到。Y为什么只计算八分圆周上的点就可以了呢?和上面的直线算法类似,圆也有一个“八对称性”,如下图所示
8、。(y,-x)(-y,-x)X(x,y)(x,y)(-y,x)(-x,-y)(-x,y)(-x,y)显然,我们只需要知道了圆上的一个点的坐标(x,y),利用八对称性,我们马上就能得到另外七个对称点的坐标。2.2.2算法和直线算法类似,Bresenh
此文档下载收益归作者所有