《计算机图形学》直线生成算法在本科教学中的应用探讨.docx

《计算机图形学》直线生成算法在本科教学中的应用探讨.docx

  1. 1、本文档共3页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《计算机图形学》直线生成算法在本科教学中的应用探讨 摘要:《计算机图形学》是计算机科学与技术专业一门重要的专业课,其中直线生成算法是教学重点之一。该文通过分析几种直线生成算法的特点,阐述了理论教学和实践教学的重点和难点,总结了教学的体会和心得,对《计算机图形学》直线生成算法的本科教学有一定借鉴作用。 计算机图形学是计算机科学中一门重要的分支研究方向,主要研究将二维或三维的图形通过数学算法转换为计算机输出设备中的光栅形式。《计算机图形学》这门课程是计算机科学与技术、软件工程等相关专业在本科高年级教学中一门重要的专业课,在教学计划中占有重要地位和作用。学习本课程旨在使学生掌握基本二维、三维图形生成和变换技术算法、真实感图形生成算法、计算机动画技术的基本方法和原理,并通过编写计算机程序加深对图形学基本理论知识的理解,提高理论指导实践的动手能力,为学生今后学习其他相关课程和进行相关方面的研究夯实基础。 1 直线生成算法的教学重要性分析 计算机图形学中的图形可分为二维图形和三维图形,在坐标系中,三维图形可以通过一系列的投影变换得到二维的平面图形,所以说,二维图形的生成是三维图形生成的基础。 各种无论多么复杂的二维图形,实际上都是通过直线段和曲线段组成的。在理论上,绝对光滑的曲线是绘制不出来的,曲线段经过微分之后可以转换成细微的短直线段。例如,一个较复杂的曲面,可能是由成千上万条很短的直线组成的。所以,可以说所有图形都是以直线段的生成为基础的,而直线段生成质量的好坏和速度的快慢也直接决定整个图形生成的质量和速度 2 几种经典直线生成算法分析和回顾 由于显示设备的栅格性质,图形显示器是由一个个排列有序的像素点构成的,一条直线就是由一些像素点组成的。无论分辨率的大小,像素点之间还是存在一定距离的,而直线在图形学中是不存在厚度的,所以一条直线不可能刚好经过所有的像素点(平行于x轴、y轴以及斜率为45 度的直线除外)。直线生成算法是计算出与该直线靠近的像素点,并绘制出来的过程。在教学中,主要给学生们介绍以下几种直线生成算法: 1)中点生成算法:以第一象限为例,假设当前像素点P已经确定,那么下一个像素点只能是正右方的点P1 或者是右上方的点P2,另M为P1和P2的中点,若直线与P1P2所在垂直线的交点在M的上方,则P2 离直线比较近,应选为下一个像素点;否则应取P1位下一个像素点 2)逐点比较算法:逐点比较算法主要运用于绘图仪中,其主要思路为:在绘图的过程中,每绘制一个像素点,就与规定图形进行比较,然后决定下一个像素点的位置。同样以第一象限为例,如画的直线为OA,当前画笔的位置为M,以OM和OA之前的斜率之差来计算偏差δ,若δ0,则表示笔在直线OA的下方,应该往+y方向走一步;若δ0,则表示笔在直线OA的上方,应该往+x方向走一步 3)数值微分(DDA)算法:这是一种基于直线的微分方程来生成直线的方法。设(x1,y1)和(x2,y2)分别为直线的端点坐标,选定x2-x1 和y2-y1 中较大者作为步进方向,假设x2-x1 比较大,则取x方向每次的增量为1个像素点,通过直线的微分方程,求出相应的y值,并四舍五入取整之后作为下一个像素点输出 4)Bresenham算法:这种方法最初是为数字绘图仪设计的,但同样也适用于光栅图形显示器。其基本思想是:过各行各列的像素中线虚拟的栅格化出一组网格线,直线与网格线的生成一系列交点,通过计算与该列中像素点的偏差距离e,并判断偏差的符号来找到最近的像素点。以通过原点(0,0),且斜率k∈(0,1)的直线为例,则偏差e≥1/2的直线,下一个像素点应该x加1,y+1;偏差e1/2的直线,下一个像素点应该x加1,y不变 3 教学的开展和体会 1)教学思路和过程 笔者对于计算机图形学中直线生成算法的教学思路,总体分为四步走:首先,让学生了解直线生成算法的统一特点,即在图形输出设备所给定的有限个像素矩阵中,确定最佳逼近于该直线的一组像素,从直线的起点开始,通过判断寻找下一个最接近直线的像素点,一直到终点;第二步,让学生具体了解算法的基本思路及具体实现的数学推导过程,判别函数、误差项的生成过程;第三步,通过习题的演算和练习加深对算法的理解;最后,理论指导实践的过程,上机操作将算法形成代码,运行后得出结果。 2)教学重点和难点 在以上的教学过程中,第二步是教学的难点。因为这四种直线生成算法涉及大量的数学模型和算法实现,对于计算机专业的学生,数学基础相对薄弱,学生在理解算法的基本思路上掌握得还不错,但对于学习算法具体实现的数学推导过程就只能被动的听课,很难主动地去进行推导,尤其是为了判别函数或者误差项的计算简单,常常需要进行各种推导变换及除法消除等操作。 由于课时有限,以上的四种算法不可能面面俱到

文档评论(0)

xlwkyc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档