前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的计算机图形学技术主题范文,仅供参考,欢迎阅读并收藏。
中图分类号:G642.0 文献标识码:B
文章编号:1671-489X(2017)04-0091-02
Abstract In view of the teaching contents of computer graphics course lay behind in digital media technology specialty. Can’t keep pace with professional and technical development. Analyzed the characteristics of the students and teaching status, puts forward a reform plan. Verified by implementing, has a good effect.
Key words computer graphics; digital media technology; teaching reform
1 引言
算机图形学是计算机专业的传统课程,是研究怎样显示、生成和处理图形的一门学科[1],在传统计算机相关专业中占有重要的地位。数字媒体技术专业是近年来的一个新兴专业,其主要研究内容为使用数字技术,在各种不同媒体上生成显示、加工处理图形及图像。故此,计算机图形学可看作数字媒体技术专业的理论基础课程,是此专业发源于传统计算机相关专业的根基,应该占有相当重要的比重。但计算机图形学课程理论性强、算法多、难度大,而数字媒体专业更偏重于应用和实践性,该专业学生相比于传统计算机专业学生在专业背景和理论基础上有极大区别。要在数字媒体专业中更好地开展此课程,以达到更好的教学效果和质量,需要对传统的课程内容做出研究和调整。
2 教学现状及内容分析
数字媒体专业学生特点 数字媒体技术专业是融合了数字信息处理技术、计算机技术、数字艺术和网络技术等的交叉学科和技术领域,要求学生具备良好的数字媒体技术和艺术基础,能够进行数字媒体作品的设计,熟练掌握数字媒体的制作基础,同时具备坚实的数字媒体软件系统开发能力。技术与艺术并重,既有丰富的艺术细胞,又有坚实的技术支持[2]。
由于各个学校的招生条件和教学计划的不同,每个学校的学生素质及特点有一定的区别。但总体来看,此专业与其他传统计算机专业学生的区别是明显的,大体表现为:1)具有一定的艺术基础;2)编程能力较弱;3)数学知识和功底较弱;4)思维更跳脱,对理论算法提不起兴趣。
计算机图形学传统教学内容分析
1)绪论及图形处理设备:了解学习过程中涉及的相关概念和知识,理解数字图像的组成,了解图形图像在计算机中的表示方法,了解常用的颜色模型,了解图形设备的工作原理。
2)基本图形生成算法:直线、圆和椭圆的生成算法,区域填充的定义和算法,线型和线宽的处理方法,字符,反走样等基本技术。
3)自由曲线和曲面:生成曲线和曲面的参数表示方法,插值和样条,Bezier曲线和曲面,B-样条插值生成曲线和曲面,有理B-样条和NURBS曲线与曲面。
4)图形变换与裁剪:图形的平移、旋转和缩放等基本变换,理解投影变换、裁剪的算法。
5)实体几何造型:实体的定义和运算,实体的正则集合运算,实体的边界表示、分解表示、扫描表示等方法。
6)分形几何应用:分形图形的生成方法,Julia集与Mandelbrot集,复平面域的Newton-Raphson方法,自然景物模拟。
7)真实感图形显示:观察变换,消隐算法,整体和局部光照模型,多边形的明暗处理,纹理贴图,光线跟踪算法等。
在上述所述理论教学之外,现行的实验教学主要有两种:1)采用MFC应用程序用C++语言编程模拟相关算法;
2)采用openGL图形开发库来模拟图形学中算法的实现。
3 教学内容改革方案
可以看出传统的计算机图形学是一门理论性很强的课程,实验课的主要目的是配合理论教学,加深对算法的理解。但是数字媒体技术专业从一开始就不是以算法研究为目的,而是以实际应用为主。因此,把课程内容向实用性的方向转变就成为本次改革的重头戏。
改革主体思路:以openGL图形库为基础,将图形开发融合到本课程的教学中;提高实验教学所占比重;减少过偏过难的算法,减少算法程序描述的讲解;加强图形学绘制流水线的讲解。
理论教学改革方案具体如表1所示。理论内容若是没有实验内容来配合,不会有好的教学效果。本次实验教学方案改革具体如表2所示。理论和实验两个部分的学时比例变为1:1,大大加强了实验的比重。此种方案相当于把openGL编程的内容完全融入计算机图形学课程中,但又没有完全放弃图形学课程中的理论及算法部分,只是做了内容上的缩减,使教学内容更加实用化,应用性更强。
4 教学实施及其效果
教学改革不可能一蹴而就,在实际教学中总会有一些主观或客观的制约条件。实际执行时,将传统内容逐步转为如上改革之后的教学内容共用了3年时间,改革是一步步进行的,效果也是逐渐显现的。很明显,学生对于计算机图形学的兴趣越发浓厚,对此课程的评价也越来越高,课程考核的通过率也在逐年上涨。
5 结语
本文提出一种偏重于实际应用的数字媒体技术专业计算机图形学课程教学改革方案,经教学实施,提高了课程教学质量,提升了学生的学习热情,达到较好的效果。但在具体实施中也存在不完善之处,在下一步工作中需要完善教学案例,将此方案进一步细化,争取更好的效果。
参考文献
随着教育改革的日益深入,为满足社会对教育多样化、多选择的要求,南京市人民中学计划2015年恢复“南京市汇文女子中学”的校名,恢复女校模式,希望能充分利用学校女性教育的优良传统和办学特色,有效扩大优质资源,形成自己的办学风格,凸显个性,在推进普通高中多样化发展的道路上走出一条新路。
一、数学实验室项目的建设
早在2011年10月,南京市教育装备与勤工俭学办公室和相关学校装备建设人员在全市范围内对人民中学、第三中学、第十三中学、田家炳高级中学、雨花台中学等校的“数学实验室”专项工作展开了多方位、多层次的调研工作。建设之初,为了数学实验室建设的实用性与科学性,多个厂商在我校现场搭建真实环境,由师生及相关建设人员实地授课体验。参加体验的各校数学教师与信息中心人员开展了多次交流研讨会,最终确定了我校数学实验室的设备型号与建设方案。
2012年6月,经过南京市教育装备与勤工俭学办公室政府采购的公开招标,我校结合实际需求情况,确定了数学实验室技术、产品建设的厂商。陈仲翔校长亲自参与了数学实验室的建设,提出了很多独特的建设性指导意见。学校相关部门在建设过程中严把质量关,设计的实验桌使用方便,物品收纳柜美观大方;安装的计算机系统软件稳定先进。学校信息技术中心与技术公司密切配合,先后开展了图形计算器软硬件使用方法与技巧、数学实验室与课程整合案例分析、网络教室教学管理软件、交互式白板使用方法等方面的培训与研讨。
二、数学实验室应用的探索与拓展
我校数学实验室的计算机安装了几何画板、超级画板、三维立体几何模型、Microsoft Mathematice等数学学科学习辅助软件,还配备了数学立体几何模型教具,为学生提供了探究数学知识的环境。为了方便图形计算器走进课堂,实验室特采用无线网络教学,配备了无线路由器和接收器,打造出移动实验室。此外,为开发数学室的资源,构建多样化的实验室,我们还配备了物理温度敏感器,安装了Google Earth帮助学生学习地理知识。
1.普及使用
图形计算器是数学实验室的核心设备,为了建成后的数学实验室发挥最大功效,普及图形计算器的使用,我们邀请了科技公司工作人员分别对全体数学教师、学生进行了培训,除确保每位数学教师一台机器,还定期向学生开放机器,鼓励他们利用数学实验室的设备进行探究和学习。我们的理念是“宁愿用坏也不能摆坏”,尽可能提高机器的使用率,发挥它的教学作用。
2.加强教科研活动
实验室建设之初,笔者深入钻研,带领高二学生多次精心探究,谋求创新,首次尝试用图形计算器开设了关于三角函数的公开课。新颖的教学模式,活跃的课堂氛围,让各位教师体会到了图形计算器的优越性,对数学实验室的建设给予了大力支持。教研活动中,一些教师就数字数学实验室的探究方法、软件研发方向等提出了很多建设性的意见。为推动图形计算器的教学,提高教师的信息技术应用水平,更新教学观念,我校数学组教师还参加了全国课题“图形计算器与高中数学教学整合研究”。在课题研究过程中,组内教师通过网络学习和校际交流等各种形式积极参与到图形计算器的研究工作中,并取得了阶段性进展。我们希望数学实验教学能激发学生“学数学、用数学、感受数学、研究数学”的兴趣。
3.开展数学社团活动
本着以学生发展为本的思想,我校数学组利用数学实验室开展了形式多样的数学社团活动,如数学讲座、数学知识竞赛、图形计算器培训等。通过组织数学社团,激发了学生学习数学的兴趣,磨炼了他们的意志,增进了同学间的友谊,数学爱好者和特长生的队伍逐步扩大。经过多次图形计算器的培训,学生渐渐爱上了这个“口袋机”,图形计算器拉近了数学与学生的距离,让学生感受到数学的美和学数学的快乐。数学社团活动开展得有声有色,活动中涌现了不少高手,他们借助图形计算器创造了许多精美的图形作品(如图1所示)。值得一提的是我校陈舟同学在“卡西欧杯2013年全国高中数学图形计算器应用能力竞赛”中取得了第三名、南京市第二名的佳绩。
三、数学实验室的成效
抽象的数学符号,深奥的数学定理,常使学生对数学产生畏惧感。怎样才能让孩子们爱上数学呢?怎样才能让数学课堂独具魅力、充满生命活力呢?显然,传统的填鸭式教学模式已经不能适应教学的要求,我们需要探究新的教学模式。借助图形计算器开展的数学操作性实验给数学课堂带来了生机和活力。通过自我探究、亲自演示,学生见证的是数学这座大楼的建设过程而不是大楼本身,消除了学生对数学在认知上的神秘感和恐惧感。在实际使用过程中,我们深刻地体会到图形计算器的优势。
1.操作简单,功能多样,便捷可移动
图形计算器具有代数运算、函数作图和图像分析、数据统计等高级功能。特别是函数作图和图像分析功能非常强大,以往用几何画板绘制圆锥曲线非常麻烦,但是利用图形计算器只需输入圆锥曲线的方程就可以绘制图像,还可以分析圆锥曲线的焦点及其他基本性质。我校数学实验室采用的是无线网络教学,通过路由发射器和接收器可以将图形计算器带入课堂,提高了图形计算器的使用率。
2.有利于“数形结合思维”的训练
图形计算器具有将学科知识概念由“隐形”转向“显性”的功能,这有利于培养学生感受、收集和处理信息的能力。图形计算器有助于学生更好地理解函数的特性,理解图形与代数表示法之间的关系。经过一年的培训,学生基本熟练掌握了图形计算器的使用,图形计算器强大的功能让他们震惊,他们在不断发掘新功能,比如用机器画美丽的图案,绘制动态图像等。
3.图形计算器让数学课堂更生动
高中的数学课堂,许多内容比较抽象,很难让学生感受到数学在生活中的实用性。而图形计算器给了学生一种直观的新鲜感,大大刺激了学生的视觉感官,从而激发了学生的学习热情,也改变了以往教师教、学生听的教学模式,让学生自己动手参与到数学实验中,共同探究知识的由来,体会概念的本质。
图形计算器不仅走进了数学课堂,更走进了学生的生活。尝试图形计算器教学后,在课间,班里鲜有发现孩子玩手机了,他们更多的是在探讨图形计算器的使用,相互比拼,看谁绘制的图像更漂亮,看谁发现了新功能。更让我们意外的是,这个“小口袋机”竟然促进了后进生的转变,一些原本成绩不太理想的学生为了探究图形计算器的更多用途,发奋学习数学,并积极参加图形计算器的各种比赛,学习成绩和态度发生了很大的转变。
关键词:计算机 图形学 应用
中图分类号:TP391 文献标识码:A 文章编号:1672-3791(2014)04(c)-0020-01
计算机图形学(Computer Graphics,通常简称为CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。一般的图形可以由点、线、面、体等元素组成,还可以通过对图形的饱和度、色相、明暗对比度进行调整;如果把三维图形看成是由二维图形在多维空间中变换而来的,那么计算机图形学研究的就是这个变换过程是如何进行的;本文主要从计算机图形学的应用领域以及前景两方面进行简要的分析。
1 计算机图形学的应用领域
1.1 计算机辅助设计(CAD)领域
计算机辅助设计(CAD)是计算机图形学最为广泛的应用领域之一,它包括了土木工程、机械工业以及制造加工业等方面。概括起来总体分为以下几个方面。
(1)人机交互系统方面的应用;通过精确的产品设计、系统的框架设计,最终通过反复的修改设计,从而输出材质单以及加工流程和数据加工代码。
(2)电子工业方面的应用;在这个方面,计算机图形学具备了很大的优势,因为大型的电子电路板不可能由简单的人工手绘去完成,而计算机图形系统不仅能完成这项任务,还可以在很短的时间内完成。
(3)航天工业方面的应用;美国波音公司的777飞机利用计算机辅助设计对机身进行整体设计以及建立模型,最后包括机身各零部件的组装和模拟。
(4)三维建模方面的应用;通过计算机图形系统可以很简单的对二维信息向三维立体转变,不过对三维图形的重建主要是以多面体为主,任意曲面体的重建至今还是个难题。
1.2 科学计算的可视化应用
随着科学技术的迅速发展,人们对复杂数据的理解和研究变得更加困难,在传统不可见的方式下,很难对一些数据进行透彻的分析,在这个时候,计算机图形学可以实现对数据的可视化。目前科学计算的可视化在各个领域应用很广,尤其是在医学方面最为广泛;可视化技术让医用CT在扫描的时候,将对象数据转为三维立体的效果,让医生更加直观的看到患者的问题所在,还可以提供各项碰撞反馈,不过这项研究目前来讲还很不成熟。
1.3 图形的绘制与实物仿真
图形的绘制与实物仿真最主要体现在仿真两个字上,简单的来说,就是把周围事物、景观、人等等真实的模拟出来,但是难点在于如何形象真实的体现这些对象,因此真实感很重要。对一个物体的模拟,包括了对物体的形状,表面材质和纹理,光滑和粗糙程度等,这其中最难的是光照和材质纹理的模拟。经过计算机图形系统的模拟,可以奇妙的让原本毫无生机的对象瞬间变得栩栩如生,这方面的应用其未来可预见性的发展前景很好。
1.4 二维和三维动画
我们生活中的很多对象都在无时无刻的运动着,所以动画的制作可以给我们带来很多生活上的乐趣。而传统的二维动画似乎已经不能让人们为之一振,更具视觉冲击的三维动画在目前对我们来说,更加让人期待。不仅仅是工业的需要,还是3D人工智能系统,都需要三维动画的支持;如今的3D电影能够给人带来非常强烈的视觉冲击,它的技术核心就是我们的计算机图形软件,例如3ds max、maya等,在一部3D电影里大量的使用了计算机图形系统中的各种特效。除了电影还有电脑游戏里也大规模的采用了3D技术渲染,应用非常广泛。
2 计算机图形学的发展前景
由于图形硬件的飞速发展,计算机图形学也伴随着同步发展,如今不管是工业还是民用行业对图形系统的需求都非常高,而计算机图形技术不仅能够渲染出非常逼真的模拟对象,还能够与高精度的图形处理紧密结合,从而实现更加丰富的3D渲染世界。计算机图形学还可以跟视频处理软件结合,增加真实感,例如应用在虚拟博物馆中等。计算机图形学在其不同的应用领域中都表现的非常出色,未来的发展前景一片光明。计算机图形学如今已经成为演变成独立的一门学科,它的应用方面之广让人惊叹,例如:计算机辅助设计与工业制造;实物仿真以及3D动画。它在我们的身边处处可见,让我们因为它而生活的更加绚丽多彩;除了这些,它还把可视化应用于天气预报,更加准确的预报了天气气象;它还用于地质勘探,让我们能够挖掘更多的新能源;它还用于医学方面,给人类的身体健康创造了新的时代;总而言之,计算机图形学在应用方面给大家带来的好处数不胜数。它不仅促进了人类物质水平提高,还给人类带来了精神上的满足。不过,计算机图形学在一些方面的发展还并不成熟,更加迫切的需要图形学工作者继续努力,不断的改善它的不足。计算机图形学的发展前景非常广泛,并且将在人类的生活中起到不可忽视的作用。同时,如果深入研究图形学,需要很深奥的数学知识来辅助,而且每个细化的方向所需的知识也不一样。我相信图形学将来有非常好的前景。我曾经对第九届中国计算机图形学的大会做了些资料整理,观赏了大师发表的题目,例如,几何与工业建模、三维仿真与显示技术、可视化与交互技术,他们都研究的很深入,这些方向前景也非常好,同时还发掘了图形学某些方面算法的优化和研究,将更加利于图形学发展,新时代的计算机图形学将作为一门代表着核心科技的学科展示在我们眼前,它的发展不仅值得专业大师们的关注,更加值得我们所有图形学爱好者们关注,我作为其中一员,将一如既往的关注计算机图形学的发展。
3 结语
通过一段时间的学习,对计算机图形学所涉及的方方面面都有了初步的了解,深入研究计算机图形学,就会发现其所蕴含的知识点非常丰富,也很有深度,本文简要的探讨了下计算机图形学的一些应用范围以及发展前景,关于计算机图形学的未来发展,应该是值得所有计算机研究者重视的一个重要研究方向。
参考文献
关键词:系统案例;教学方法;计算机图形学
计算机图形学是近年来发展最快的计算机学科方向之一,是计算机应用专业的必修课程。但在实际的教学过程中,按照传统的教学方式,我们发现计算机图形学涉及到大量的数学知识,包括各种生成算法、处理技术和显示过程,涉及到数学模型和复杂的公式推导,在理解上要求具有比较强的空间想象力,学生理解上比较困难。本文结合二类本科院校培养具有一定创新能力的应用型人才的要求,根据十多年的教学实践,提出了图形系统案例教学方法,将计算机图形学知识和实现图形系统结合起来,从现有系统中找灵感,从计算机图形学课程中学理论,搭建自己的图形系统,使学生真正理解计算机图形学的本质,达到理论与实践双丰收,取得了比较明显的教学效果。
一、课程特点和教学模式
1.课程特点
(1) 计算机图形学不仅涉及到图形硬件、软件和大量的实现算法,而且与微电子学、信息科学、几何学、图论学等专业学科密切相关,并在发展中逐步与图像处理、模式识别、人工智能、计算机网络和计算机语音处理结合起来,要求授课教师具有比较全面的知识结构,讲解有所侧重,合理取舍。
(2) 计算机图形学需要用到大量的数学模型和算法。计算机图形学作为图形显示和处理的一门学科,具有很深的数学理论基础和实用技术。计算机图形学的基础是数学,任何图形的显示都必须首先构造出数学模型,然后再通过算法程序实现图形的显示和处理。另一方面,为了在计算机上显示和处理复杂的图形,要求人们不断地学习和研究数学,构造精巧的数学模型和实现算法,这就是计算机图形学的实质。但对于初学者来说,应当讲授较少的数学知识,或者直接采用数学结论,而简略中间繁琐的数学推导过程。在讲课过程中,如果过分注重图形学所涉及到的理论知识、数学模型和构造算法,学生就会感到比较抽象和难懂。
(3) 计算机图形学是一门实践性很强的课程,不仅要求学量的理论知识,而且更多的是要求算法的实现,要求程序的编写和调式能力,因此需要更加重视实验环节。学习计算机图形学的目的在于构建图形系统,包括计算机图形硬件的搭建和图形软件的编写。计算机图形学是设计AutoCAD、Photoshop、CoreDraw等图形系统软件的理论基础。
学习计算机图形学,要与使用图形系统软件区分开来。计算机图形学是设计图形系统软件的基础,而学习现有的图形软件则是为了进行计算机平面设计、动画设计、影视制作、CAD等具体的应用领域。反过来,参考和学习这些现有的图形系统软件可以帮助理解计算机图形学的知识和方法。
根据用户和计算机图形系统的关系,可以把利用计算机图形学的用户分为三类:一是图形理论研究,二是系统设计程序员,三是图形系统的操作员。
计算机图形学的目标在于培养前两种人才,即图形理论研究与图形系统实现者,研究图形学新的理论和技术,编写各种专业图形处理软件,品设计人员使用。
2.系统案例教学模式
案例教学作为一种教学手段已经得到广大师生的认可。该教学法是在教师的精心策划和指导下,根据教学目的和教学内容的要求,运用典型案例,将学生引入到特定实践环节情境中,并以学生为中心对案例进行交互式讨论和探索的过程。案例教学具有下面四个共同的特点:一是真实性,案例必须是真实可靠的事件;二是典型性,必须是包括特殊情境和具有代表性的问题;三是浓缩性,必须多角度地呈现问题,提供足够的信息;四是启发性,必须是经过研究,能够引起讨论,提供分析和反思。
系统案例教学法是以设计实际的系统为目标,制定系统总体框架,结合理论教学,布置相关实验任务和实践环节,最后将各个独立的实验程序整合在一起,搭建起一个小型实用系统。系统案例教学法要求学习目标要明确,方案设计要合理,理论与实践要一致。针对计算机图形学课程,采用系统案例教学法还要注意以下事项:
(1) 以学生为中心,充分发挥学生能动性。由于所定目标软件系统功能复杂,而课堂教学时间有限,不可能面面俱到。因此,要充分调动学生学习兴趣,发挥主观能动性。学生是案例教学的主角,老师在讲授理论基础上,更重要的是启发和辅导。
(2) 系统案例教学法是一种模拟系统实践的教学过程。虽然类似的软件系统市面上已经有很多,但我们的目的是学生模仿实现,所用到的理论知识在课堂上同步学习,加强学生对理论课程学习兴趣,并结合学生自己的理解和体会,亲自动手实现自己的系统。
(3) 系统案例教学又是一种动态的、开放的教学方式。课堂上讲授的系统理论相同,但系统实现的方法可以不同,在系统实现的过程中锻炼学生运用各种理论知识、综合分析和解决实际问题的能力。
(4) 系统案例教学注重的是系统实现的过程,要的是结果,但这样的要求也反过来促进学生对理论知识的学习,同时也锻炼了学生实际动手能力。
二、系统案例教学方案实施
计算机图形学课程内容包括了图形学的基本概念、图形系统和图形标准、基本图形生成技术、图形几何变换、曲线和曲面、真实图形和计算机动画等,这些内容是设计一个图形系统必备的理论体系。为了实现系统案例教学,实施方案如下:
第一步:明确目标、搭建平台。计算机图形学第一章概述部分主要讲解课程目标和目的、国内外的发展状况和应用领域,加深学生对课程的认识。图形系统和图形标准则是实现图形系统所用到的硬件设备和软件系统,以及图形系统的国际标准。这两部分为学生明确学习目标、搭建系统平台奠定了基础。为了编写图形系统,在第三部分讲解了Visual C++图形程序设计,主要介绍Visual C++集成编成环境的使用、图形设备接口、图形程序设计方法、鼠标编程以及菜单设计等基础,目的是通过对Visual C++的学习,掌握Visual C++图形程序设计的方法,为计算机图形学原理部分的算法实现提供程序工具和方法。
第二步:系统设计、分步实施。按照课程体系和实际图形系统的要求,我们精心设计10个实验项目,覆盖了计算机图形学大部分的知识点,包括:
(1) Visual C++图形程序设计。主要学习Visual C++图形程序设计的方法,掌握Visual C++集成编成环境的使用、图形设备接口和常用图形程序设计、鼠标编程、橡皮筋交互技术、画刷与画笔以及菜单设计等,使学生能够熟练掌握Visual C++图形程序设计。
(2) 直线的生成。理解直线生成算法思想,写出实现程序;添加鼠标功能,实现交互式画直线程序;将10个像素作为步距单位,编出Bresenham算法的示例。
(3) 圆与椭圆的生成。编写中点画圆法的扫描转换程序,考虑原点在(x0,y0)处程序的改动;添加鼠标程序,实现交互式画圆;编写中点画椭圆法的扫描转换程序;添加鼠标程序,实现交互式画椭圆;
(4) 区域填充算法。多边形有序边表算法程序设计;边填充算法和边标志填充算法;简单的种子填充算法和扫描线填充算法;区域填充图案程序设计;要求实现种子填充算法、扫描线填充算法和图案填充算法。
(5) 裁剪算法。编码裁剪算法程序设计;要求用鼠标画线技术,实现交互式裁剪效果;
(6) 交互式技术和用户接口。学习VC++菜单资源编辑器,菜单程序设计举例;学习Autocad绘图的基本方法,了解常用的交互式技术;
(7) 曲线与曲面;抛物线程序设计;Hermite曲线程序设计;Bezier曲线的算法实现;B样条曲线的程序设计。要求加入鼠标和橡皮筋技术,实现交互式生成曲线,并且可以通过调整控制点来随意修改曲线的形状。
(8) 二维几何变换。通过二维几何变换的数学模型,编写平移、旋转、放缩、对称变换;加入鼠标功能,实现交互式移动图形;
(9) 真实图形技术。实现一种消隐技术和光照模型。
(10) 计算机动画。利用一种动画技术,实现一个小型动画。
每个实验都详细地列出了实验目的、实验任务、实验步骤、实验结果分析和实验总结和思考,通过改进程序和算法,提高学生的思考问题和编程动手能力。
第三步:系统整合、实现系统。利用Visual C++菜单编程、工具栏和图标技术,选择实用的绘图实验程序,挂在累累菜单上,并设计出工具栏,就可以进行简易的图形绘制。
第四步:综合评价,创新考核。我们学校开设的计算机图形学是考查课(必修课),主讲教师可以比较方便的安排最后的考核方式。按照系统案例法的思想,我们注重理论结合实践,看重的是系统设计的过程和最后的结果,不能采用一张试卷定成绩的方式,而是采用了50+30+20的考核方式,即最后的系统设计技术报告和系统软件演示占50分,要求技术报告撰写规范,总体设计和分步实施详细,总结部分包括理论学习的知识点、系统实现的优缺点以及系统的扩展和展望等。平时的分步实验结果和实验报告占30分,督促学生课下及时预习和准备实验,并写好实验报告。平时上课考核和作业占20分。这种考核方式可以将学生的考试压力分散到平时,也可以保证系统案例教学的效果。
三、效果分析
经过三年系统案例教学方法的实践,明显地达到了以下教学效果:
(1) 提高了学生学习兴趣。兴趣是最好的老师,通过课程讲解和引导、系统目标设计、分步实验实施、学生小组研讨等方式,激发学生对该门课程的学习兴趣,进而引导学生积极主动的学习。
关键词:计算机图形学 实验 教学改革 VC
中图分类号:G420 文献标识码:A 文章编号:1672-3791(2014)10(c)-0155-02
计算机图形学是研究通过计算机将数据转换为图形,并在专门的显示设备上显示的原理、方法和技术学科[1]。目前,计算机图形学技术已经深入到人们生活的各个领域,例如:飞机、汽车外形设计、电影、电视广告、游戏制作、天气预报、医药医疗以及地质勘探等。因此,很多高校都越来越重视该门课,并把其列在教学计划中。但是该门课程原理深、算法抽象、实践性强。大部分学生在课程开始时抱着极大的兴趣学习,但随着算法的深入,虽然上课能听懂算法,但是课后实现算法却很困难,这样一来,理论与实践不能很好结合,而使学生觉得枯燥单调,学习的积极性与主动性逐渐下降,教学效果不理想。
1 教学中存在的问题
图形学教学中会存在如下问题:一是实验教材选择不恰当;二是很多高校图形学实验都是基于Turbo C环境下的编程,因编程界面不够友好,使用不方便,多数学生对它不感兴趣。三是过分注重理论教学,实践教学的时间远比理论教学时间少;四是过分强调图形学的数学基础;五是实践课程设置合理,但是实验内容有的过于简单,而有的又太难。以上五方面都会导致学生学习兴趣不浓或厌学。针对此,对实验课程进行改革是非常必要的。
2 图形学教学改革措施
如何针对本校学生实际制定适合其学习的实验方案尤其重要。通过笔者多年的教学实践,我们可以通过计算机图形学实验的演示、验证和开发,来巩固学生对计算机图形学所学知识的理解,同时加强学生的动手操作能力。可以从以下几方面进行改革。
2.1 教材选取
目前,图形学教材非常的多,大部分的经典教材中讲解的知识较多、难度较大,学生学习较吃力。如何选用教材,使学生学到更多知识很重要。在教学的过程中,针对地方高校的特点,学生的基础较差。笔者在教学中,把教学重点定位为二维知识的掌握;三维知识只作简单的了解和介绍,以此来降低学生学习难度,提高学习兴趣,为以后的三维知识的学习打好基础。因此,在选择教材时,尽量考虑偏重二维知识的、包括程序代码的,利于学生上机实验的教材。
2.2 编程环境选择
针对Turbo C编程环境存在的问题,我们在实验过程中可以基于Visual C++的MFC编程。因为VC开发环境是可视化的,编写的程序执行结果明显,学生有成就感,对完成实验更有自信[2-3]。通过实验,学生不但可以学习实用的编程语言,而且也促进其对新知识的学习。
2.3 实验教学改革
目前,课程开展了九个实验,实验内容如表1所示,其中实验类型有验证性、设计性和综合性三种。验证性实验是让学生对理论课程学习的图形学基本算法进行编程验证;设计性实验是一种探索性的实验,不但要求学生综合多种知识来设计实验方案,而且要求学生能充分运用已学到的知识,去发现问题、解决问题,实验中,学生自己选题、自己设计,在教师的指导下进行,以最大限度发挥学生学习的主动性;综合性实验是通过学生一段时间的学习,具有一定的图形学综合知识和技能,且实验内容涉及到这些知识和技能的实验[4]。
2.4 实验项目说明
实验1中,关键是熟悉VC的MFC编程环境,了解如何创建工程及添加消息以及 MFC绘图函数的使用。
实验2中将验证直线生成算法。通过理论分析直接直线生成算法、DDA算法、Bresenham算法、中点画线算法等,找到各算法的优缺点,对比各种算法运行的速度;然后通过上机实现上述算法,并比较各算法在生成同一直线时的效率。
实验3中对比中点画圆算法与Bresenham画圆算法的实现机制及运行效率。
实验4中主要是验证课本中内点表示、边界表示的4连通或8连通种子填充算法填充规则图形(矩形、圆等)及不规则图形(任意形状各异的图形)。实验中,对于基础好的同学,还可试着采用扫描线多边形填充算法(选做)来填充一个简单的图形内部。
实验5中主要是运用已学过的各种图形学的知识来填充圆的内部。A.点到圆心的距离小于等于半径;B.种子填充法;C.Bresenham画圆法;D.用改进的Bresenham画圆算法;E.中点画圆算法;F.改进的中点画圆算法等。并对比各种算法在填充圆的内部时的差异。(见表2)
实验6主要是验证Cohen-Sutherland直线裁剪算法。实验主要是基于矩形窗口的直线裁剪,对于三类型直线裁剪的正确性进行验证:一是直线完全在矩形窗口内;二是直线完全在矩形窗口外;三是直线与矩形窗口有交。其他直线裁剪算法的验证可选做。
实验7中,可针对生成的一个简单图形实现其二维变换。例如三角形的比例、平移、旋转变换等。
实验8中,主要是实现课本中的Bezier曲线生成算法。若能正确生成Bezier曲线,可以结合图形变换知识和平面曲线知识实现的正叶线、正叶线蝴蝶结等图形的生成。
实验9中,可以结合本学期的学习情况,利用所学的图形学知识,发挥想象力,设计一个图形学作品。例如:雪人,火车等。
3 结语
从文中的实验教材、实验教学环境以及实验教学内容的选取以及多年的教学经验,可以看出在计算机图形学实验课程教学中,首先要加强理论与实践相结合,要进行培养方案修改,加大实验课的比例;其次要针对学生的特点,找到适合当前学生学习的方法和实验内容进行教学。经过改革后,教学效果较好。
参考文献
[1] 伏玉琛,周洞汝.计算机图形学――原理、方法与应用[M].武汉:华中科技大学出版社,2003.
[2] 廖方茵,丁凰.计算机图形学实验教学的改进[J].北京电力高等专科学校学报,2009(5):2-3.
【关键词】图形图像;处理技术
中图分类号:TP39文献标识码:A文章编号:1006-0278(2012)01-094-01
图形图像处理技术课程在图形图像制作专业课程体系中,既是一门基础课,也是一门专业课。计算机图形学是借助计算机来研究图形表达、处理图像、显示生成的学科。历经30多年的发展,计算机图形学成为现代应用科学中最活跃的分支之一,并得到广泛的运用。
一、计算机图形图像处理的基本概念
计算机图形图像处理是指把由概念或数学描述所表示物体的几何数据或几何模型,用计算机进行显示、存储、修改、完善及进行相关有关操作的过程。图形图像处理包括的主要内容有:1.几何变换,如平移、旋转、缩放、透视和投影等;2.图像数字化、图像编码、图像增强、图像复原、图像分割和图像分析等;3.曲线和曲面拟合;4.建模或造型设计;5.隐线、隐面消除;6.明暗处理;7.贴图纹理;8.色彩设计。
二、计算机图形系统的组成与功能
(一)计算机图形系统的组成
计算机图形系统由硬件设备和相应的图形图像软件系统两部分组成。高质量的计算机图形离不开高性能的计算机图形硬件设备。图形系统硬件通常由图形处理器,图形输出设备和输入设备组成。图形处理器是图形系统结构的重要部件,是连接计算机和显示终端的纽带。图形处理器具有存储和处理图形的功能,而且能完成大部分的图形函数计算,这大大减轻了CPU负担,提高了系统的显示能力和速度。随着计算机系统、图形输入输出设备的发展,计算机图形软件也不断地更新和完善,目前有许多支持计算机图形技术的软件系统。如各种子程序包、图形函数库、甚至是专用的图形系统。随着图形系统的发展,提出了图形软件标准化的问题。为实现程序的可移植性,开发出了面向设备的驱动程序包或面向用户的图形生成及管理程序包。
(二)图形系统的功能
图形系统的设计和研制是计算机科学和工程领域的重要内容。作为一个图形系统,至少应具有计算、存储、输入、输出、对话等五个方面的基本功能。计算功能:实现设计过程中所需的计算、变换、分析等。存储功能:存放(形体的)几何数据、形体间的关系,并可对数据实时检索、维护。输入功能:输入形体的几何参数及各种命令。输出功能:可显示过程中的状态,修改后的结果,并可硬拷贝及输出。对话功能:通过图形显示器及相应人―机交互设备直接进行人―机通信。用户通过显示器观察设计结果和图形,通过选择拾取设备,对不满意部分作修改。系统还可追溯以前的工作步骤,对用户操作执行的错误给予必要的提示和跟踪以上五种功能是一个图形系统所具备的基本功能,至于每种功能中有哪些能力,则因不同系统而异。
三、计算机图形学的发展与应用
(一)计算机图形学的发展
计算机图形学的研究起源于美国麻省理工学院, 20世纪50年代初到60年代中期,麻省理工学院积极从事计算机辅助设计和制造技术研究。它证明了交互式计算机图形学是一个可行的、有用的研究领域,从而确立了计算机图形学作为一个崭新的学科分支的独立地位1964年,孔斯提出了用小块曲面片组合表示自由曲面,使曲面片边界上达到任意高阶连续的理论方法,称孔斯曲面。此方法受到工业界和学术界极大重视。
(二)计算机图形学的应用领域
1.计算机辅助设计与制造是计算机图形学在现代工业界应用最为广泛和流行的工具。计算机图形学被广泛应用于建筑设计、室内施工图设计、机械产品设计。包括飞机、动车、汽车、船舶的外形设计和发电厂、模具厂等的功能布局。在电子工业设计中,计算机图形学应用到大规模集成电路、印刷电路板、电子线路和网络分析等方面发挥的优势十分明显。
2.计算机图形化的用户接口。一个好的图形化用户界面能大大提高软件的易用性,随着Apple公司图形界面操作系统的推出,特别是微软windows应用操作系统的普及,标志着图形学已经融入到计算机的各个领域。
3.地形地貌和自然资源图。国土基础信息是国家经济系统的重要组成部分。利用这些存储的信息可绘制平面图、生成三维地形地貌图,为高层次的国土整治进行预测和提供决策,为综合治理和资源利用开发研究提供科学依据,在军事方面也体现着重要价值。
4.计算机动画和艺术设计。用于艺术创意和设计的软件很多,如二维平面的应用程序CorelDraw, Photoshop, Paintshop,三维动画建模和渲染软件3D MAX, Maya等口在现代各行各业中应用广泛,发挥着重要作用。
四、图形与图像的区别与联系
(一)数据来源不同:图像数据来自客观世界:图形数据来自主观世界。
(二)处理方法不同:图像处理方法包括几何修正、图像变换、图像增强、图像分割、图像理解、图像识别等:图形处理方法包括几何变换、开窗和裁剪、隐藏线和隐藏面消除、曲线和曲面拟合、明暗处理、纹理产生等。
关键词计算机图形学调查法案例教学法教学改革中图分类号:G424文献标识码:A
信息与计算科学专业作为理学的一个热门专业,其培养目标是培养具有良好的数学知识,掌握信息科学和计算科学的基本理论和方法,受到科学研究的初步训练,能运用所学知识和熟练的计算机技能解决实际问题,能在科技、教育和经济部门从事研究、教学和应用开发和管理工作的高级专门人才。这就需要学生具有较强的综合素质。①②与其他专业相比,信算专业具有一定的数学基础和计算机知识,善于发现问题,具备一定的创新意识,但是动手能力较弱,创新性不强,综合运用所熟悉的数学知识和信息知识的能力不高。计算机图形学(以下简称图形学)作为信算专业的一门选修课,是一门理论、技术与应用相结合的技术应用性课程。该课程是2001年美国计算机学科教程和2002年中国计算机科学与技术学科教程的核心课程之一。③④⑤对于提高学生的动手能力,培养学生的综合素质大有裨益。
1 计算机图形学所存在的问题
信算专业的大多数学生具有学习图形学的动机和欲望,但目前对于图形学实验课程所能提供的具有动手、创新的环境有限,学生无法充分发挥自己的学习潜力,同时难以提高自己的创新能力。同时学生也不善于利用现有的资源和条件,更不能创造出自己所需要的资源和条件。具体表现为:
(1)传统的教学内容。目前的图形学课程教学主要以课堂讲解、传授知识为主。在教学过程中学生的个性,一直沿用相同的的大纲、教材和考试方式,在这种情况下,学生的知识结构和思维方式也很容易与老师相同,缺乏创新、缺乏创见。同时,对于学生的积极性有很大影响。
(2)实验教学模式比较单一,教学效果不够理想。传统的实验教学侧重于验证性的实验教学,从实验的思想到实验算法的确定,基本上都是由教师事先讲解好,学生只是被动的接受和模仿,让学生自己思考的东西较少,很多学生只是盲目敲击代码,并不了解为什么这么做,不利于学生创新能力和综合素质的培养。
(3)对学生评价考核机制还不够科学完善。目前评价学生的标准主要是考试成绩,因而在一定程度上导致学生片面追求考试成绩,忽视其它能力尤其是实验动手能力和创新能力的培养。
2 教学改革的主要内容
2.1 改革课堂教学模式
课堂教学是教学的基本组成形式,学生能力的培养也必须渗透到图形学的教学过程中。教师既要传授知识,又要培养学生的动手能力、创新能力、实验能力等等。同时以此为基础,要结合学生不同的认知水平和生活体验,创设新的教学情景导入新课,激发学生学习的欲望。在教学中,营造一个鼓励学生发言的课堂氛围。采用多种多样的课堂教学形式,鼓励学生提出自己的看法,让学生自觉、主动地学习,以提高学生的创新能力。加强图形学与微分几何、数据结构、概率论与数理统计等各学科之间的交叉综合,有利于学生综合素质的提高;同时融合学科前沿知识,增大课堂信息量,激发学生的创新精神。
2.2 改革实验课教学模式
针对目前《计算机图形学》实验中内容比较单一、编程环境比较旧的问题,使得多数学生为了验证理论教学中学到的算法,刚实验成功一个算法会比较有成就感,但是对后面的实验会在某种程度上失去兴趣,感觉枯燥无趣,对它不感兴趣。充分利用理学院实验室的仪器设备和师资力量,探索和完善实施新的实验教学的方法。
2.3 改革和完善学生的考核体系
评价是教育管理中实施控制的特殊手段,是教育管理的重要环节。传统的培养模式并不利于培养学生的动手能力,主要原因是学生考核过程中采用统一的闭卷考试方式,不能反映出学生的真实的水平和能力,尤其是创新能力和实验能力很难在一张试卷中进行全面考察。因此我们可以采用多样化的考试方式,以及相对比较自由的考试时间,或不采用考试形式考评学生,如通过独立撰写专题报告、课堂演讲、撰写相关的学术性文章、参与相关的科研项目以及相关的程序设计大赛等多种形式进行评价。
3 实施的步骤与方案
(1)通过对2007级、2008级学生进行调查,了解学生为什么选修图形学这门课程?希望通过该课程学到什么?以及学生比较擅长的编程语言,给学生创造良好的编程环境,使得学生先利用自己熟悉的语言实现结果。
(2)通过网上查询及实地考察,借鉴国内外著名大学的经验,结合理学院信算专业的专业特色对教学内容进行改革,使得教学内容与时俱进,与当前的SIGGRAPH中的热门图形学专题相结合,开阔学生的视野。
(3)完善网络课程以期协调好“教师教”与“学生学”的关系。采用多样化的教学方法,从图示内容的渐进性到图形的欣赏性,再到图形的交互性循序渐进,同时将多媒体教学与程序现场演示相结合。
(4)通过课堂实践完成将传授知识与培养能力相结合,采用“以点带面”的方法,每个算法在班内选择1~2个代表学生,讲述自己的算法,修正其编程过程中遇到的问题,以及其他同学有可能遇到的问题,将该过程集结成录像上传到网上共享。
4 教学效果
通过对于2007级、2008级信算专业的学生进行教学改革,我们发现与2006级相比,学生对于实验算法的理解更加深入,成绩优秀的学生比例提高了15%,考试中对于考察算法的题目学生的得分率比较高,多数学生对于计算机图形学的认识有了进一步的提高。
注释
①陈国军.工科《 计算机图形学》 教学改革探索[J].中国石油大学胜利学院学报,2009.23(2):81-83.
②张荣华.高校“计算机图形学”实验教学改革探析[J].中国电力教育,2007(3):134-136.
③张瑞秋等.计算机图形学发展现状与教育改革[J].机械管理开发,2007(4):6-8.
关键词:计算机图形学;直线生成算法;DDA算法;Bresenham算法
中图分类号:G642 文献标识码:A 文章编号:1009-3044(2015)23-0072-02
Teaching Experience of the Straight Line Generation Algorithm in Computer Graphics
JI Jie
(College of Computer and Electronic Engineering, Hunan University of Commerce, Changsha 410205, China)
Abstract:"Computer graphics" is an important course in the major of computer science and technology, and the straight line generation algorithm is one of the key points in teaching of this course. In this paper, we analyse the characteristics of several line generating algorithm, describe the key and difficult points of theory teaching and practice teaching,summarize the teaching experience.It has some reference for the teaching of the straight line generating algorithm in computer graphics.
Key words: Computer graphics; straight line generating algorithm;DDAalgorithm; Bresenham algorithm
计算机图形学是计算机科学中一门重要的分支研究方向,主要研究将二维或三维的图形通过数学算法转换为计算机输出设备中的光栅形式。《计算机图形学》这门课程是计算机科学与技术、软件工程等相关专业在本科高年级教学中一门重要的专业课,在教学计划中占有重要地位和作用。学习本课程旨在使学生掌握基本二维、三维图形生成和变换技术算法、真实感图形生成算法、计算机动画技术的基本方法和原理,并通过编写计算机程序加深对图形学基本理论知识的理解,提高理论指导实践的动手能力,为学生今后学习其他相关课程和进行相关方面的研究夯实基础。
1 直线生成算法的教学重要性分析
计算机图形学中的图形可分为二维图形和三维图形,在坐标系中,三维图形可以通过一系列的投影变换得到二维的平面图形,所以说,二维图形的生成是三维图形生成的基础。
各种无论多么复杂的二维图形,实际上都是通过直线段和曲线段组成的。在理论上,绝对光滑的曲线是绘制不出来的,曲线段经过微分之后可以转换成细微的短直线段。例如,一个较复杂的曲面,可能是由成千上万条很短的直线组成的。所以,可以说所有图形都是以直线段的生成为基础的,而直线段生成质量的好坏和速度的快慢也直接决定整个图形生成的质量和速度[1],所以直线生成算法的学习显得尤为重要。因此,在《计算机图形学》的教学中,直线生成算法是教学重点之一,并且是学生们接触到的第一类图形生成算法。
2 几种经典直线生成算法分析和回顾
由于显示设备的栅格性质,图形显示器是由一个个排列有序的像素点构成的,一条直线就是由一些像素点组成的。无论分辨率的大小,像素点之间还是存在一定距离的,而直线在图形学中是不存在厚度的,所以一条直线不可能刚好经过所有的像素点(平行于x轴、y轴以及斜率为45度的直线除外)。直线生成算法是计算出与该直线靠近的像素点,并绘制出来的过程。在教学中,主要给学生们介绍以下几种直线生成算法:
1)中点生成算法:以第一象限为例,假设当前像素点P已经确定,那么下一个像素点只能是正右方的点P1或者是右上方的点P2,另M为P1和P2的中点,若直线与P1P2所在垂直线的交点在M的上方,则P2离直线比较近,应选为下一个像素点;否则应取P1位下一个像素点[2]。
2)逐点比较算法:逐点比较算法主要运用于绘图仪中,其主要思路为:在绘图的过程中,每绘制一个像素点,就与规定图形进行比较,然后决定下一个像素点的位置。同样以第一象限为例,如画的直线为OA,当前画笔的位置为M,以OM和OA之前的斜率之差来计算偏差δ,若δ0,则表示笔在直线OA的上方,应该往+x方向走一步[1]。
3)数值微分(DDA)算法:这是一种基于直线的微分方程来生成直线的方法。设(x1,y1)和(x2,y2)分别为直线的端点坐标,选定x2-x1和y2-y1中较大者作为步进方向,假设x2-x1比较大,则取x方向每次的增量为1个像素点,通过直线的微分方程,求出相应的y值,并四舍五入取整之后作为下一个像素点输出[1]。
4)Bresenham算法:这种方法最初是为数字绘图仪设计的,但同样也适用于光栅图形显示器。其基本思想是:过各行各列的像素中线虚拟的栅格化出一组网格线,直线与网格线的生成一系列交点,通过计算与该列中像素点的偏差距离e,并判断偏差的符号来找到最近的像素点。以通过原点(0,0),且斜率k∈(0,1)的直线为例,则偏差e≥1/2的直线,下一个像素点应该x加1,y+1;偏差e
3 教学的开展和体会
1)教学思路和过程
笔者对于计算机图形学中直线生成算法的教学思路,总体分为四步走:首先,让学生了解直线生成算法的统一特点,即在图形输出设备所给定的有限个像素矩阵中,确定最佳逼近于该直线的一组像素,从直线的起点开始,通过判断寻找下一个最接近直线的像素点,一直到终点;第二步,让学生具体了解算法的基本思路及具体实现的数学推导过程,判别函数、误差项的生成过程;第三步,通过习题的演算和练习加深对算法的理解;最后,理论指导实践的过程,上机操作将算法形成代码,运行后得出结果。
2)教学重点和难点
在以上的教学过程中,第二步是教学的难点。因为这四种直线生成算法涉及大量的数学模型和算法实现,对于计算机专业的学生,数学基础相对薄弱,学生在理解算法的基本思路上掌握得还不错,但对于学习算法具体实现的数学推导过程就只能被动的听课,很难主动地去进行推导,尤其是为了判别函数或者误差项的计算简单,常常需要进行各种推导变换及除法消除等操作。
由于课时有限,以上的四种算法不可能面面俱到,因此在教学安排中,中点生成法和逐点比较法做简单阐述,DDA法和Bresenham法则作为重点讲述。DDA法虽然效率不高,但比较直观,方便通过实例让学生了解每一步分解过程,通过改进之后使得算法中只包含加法和取整,适合硬件实现。Bresenham法是计算机图形学领域使用最广泛的直线生成算法,且算法很简单,速度也相当快。认真掌握这两种算法能帮助学生后续学习圆和曲线生成的算法奠定基础。
3)实验课程的内容安排
计算机图形学中涉及理论知识、数学模型和构造算法,一般比较抽象和难懂。为了加深对书本理论知识的理解,加强本科学生动手能力的培养,从而突出实践性和实用性,计算机图形学重点的算法都安排了上机实验。实验平台环境为Visual C++,因为Visual C++是集编辑、编译、运行、调试于一体功能强大的集成编程环境。且MFC将图形设备接口(GDI)的设备描述表(DC)封装在C++类中,程序员可以通过调用专门的GDI函数来进行图形程序设计。
直线生成算法的实验任务安排了实现DDA画线程序和Bresenham画线程序。DDA算法程序逻辑简单,学生理解较为轻松,原本DDA算法中含有浮点运算和取整运算,不利于硬件实现,但改进后的DDA算法只含有加法运算和取整运算,虽然效率不高,但硬件实现起来变得方便。通过分支语句结构可以实现判断x和y方向增量较大者作为步进方向,通过语句int(x+0.5)或者int(y+0.5)可以实现四舍五入取整的操作,通过循环语句可以实现从起点到终点像素点的绘制。Bresenham算法程序相对复杂,关键点在于区分直线位于不同的象限,判断条件有所不同,具体用程序实现的时候,会需要进行直线区域的变换。大部分的学生能够在课程规定的时间内完成DDA算法和Bresenham算法的程序实现,基础较好的同学还能完成中点生成算法及逐点比较法的程序实现。
之后的教学中圆弧、椭圆、曲线的生成都牵涉到用短的直线段来逼近曲线,实践证明,学生较好掌握了直线生成算法后,对后续的学习奠定了良好的基础。
4 结束语
本文主要总结了在计算机科学与技术、软件工程等相关专业《计算机图形学》课程本科教学中直线生成算法的教学体会。基于直线生成算法在本课程中的重要性,通过阐述和对比四种直线生成算法的异同,设计出了适合计算机科学与技术、软件工程等相关专业《计算机图形学》课程本科生教学的思路,并给出了相关实验课程开展的良好建议。对于《计算机图形学》课程本科教学有一定的借鉴作用。
参考文献:
摘要:本文介绍了笔者针对“计算机图形学”课程教学中存在的问题所进行的“14+4”教学改革的实践。
关键词:计算机图形学;教学研究;计算机图形生成系统;OpenGL
中图分类号:G642
文献标识码:B
“计算机图形学”课程传统教学模式的重点是基本理论和算法的讲解,学生在学习本课程过程中只是了解了基本图形的生成,而对于三维图形的生成和几何变换、曲面的生成、消隐算法、光照模型的模拟等理论不知如何去实现,针对这一现象,笔者提出以下几点改革,供大家共同探讨。
1计算机图形生成系统
结合本课程教学内容,我们开发了计算机图形生成系统,该系统除了实现课本中讲解的基本算法外,还可实现三维图形的生成与几何变换、曲面的生成、消隐算法、光照模型的模拟等。使学生在学了本课程以后,不仅能实现简单图形的生成,还可以实现复杂的图形。
此系统可实现教材中的基本算法,如DDA和Bresenham的直线生成算法、圆的Bresenham和中点生成算法、椭圆的生成、任一多边形的生成、种子填充算法、扫描线填充算法、直线的Cohen_surtherland裁剪算法、曲线曲面的生成等。
对于比较抽象的算法,采取先讲理论,再讲程序,使学生能理解这些理论用计算机言怎样去实现,从而加深理解。
另外本系统对各个部分进行了归类讲解:
(1) 系统可生成基本三维图形,如球体、椭球体、圆柱、圆锥、任意多面体等,在讲解相关理论后,再演示和详细讲解程序,可以使学生比较容易理解。例如可以把球体、椭球体、圆柱、圆锥归为一类讲解。先讲解一个球体的生成程序,程序用球体的参数表达式去实现,其中用到了投影变换、三维形体的几何变换、屏幕坐标系的变换、简单的反向面消隐算法,学生理解后,再把锥体、椭球体的参数表达式告诉学生,让学生试图生成锥体、椭球体或与球体相近的其他形体。对于多面体的生成,利用边界模型和表面模型分别表示一个四面体,把理论与程序中的数据结构相结合,比较具体,学生易于接受,这样学生就可以对任意多面体怎样利用实体构造方法去实现了。
(2) 对于三维形体的几何变换上,可以用两种方法来实现:物体不变,视点位置变换;视点位置不变,物体发生几何变换。在教学过程中,应用一种三维形体,如任一四棱锥来用两种方法实现这种变换效果,并讲解两种算法的实现程序,给学生布置一道相似的作业,让学生尝试实现。
(3) 在消隐算法的讲解和实现上,因为在三维图形的生成程序中已经让学生了解了简单的反向面消隐法,所以在这部分内容把Z-buffer算法和扫描线算法的理论讲解结合实现程序讲解,学生比较容易理解。
(4) 自由曲面的生成,利用Bézier曲面的DeCasteljau生成算法生成双三次曲面,利用B样条曲面的Deboor算法,生成双三次B样条曲面,并生成NURBS曲面,对之进行几何变换。
(5) 简单模拟光的反射、环境光的漫射效果,以及对二维、三维图形的纹理映射技术。
(6) 对于几何造型方面,造型方法结合程序讲解,效果较好。比如分形造型、边界模型、表面模型等,结合理论,讲一个实现程序,学生不仅可以更容易理解,还可以过到触类旁通的教学效果。
2基于OpenGL的课件
目前本课程的实验只是使用某种高级语言环境(如Turbo C ++)作为上机实习的平台,而当前比较流行OpenGL、Direct等开发工具,学生并不能够在Turbo C ++试验中获得未来就业环境下真实需要掌握的编程知识。OpenGL的这些能力为实现逼真的三维渲染效果、建立交互的三维景观提供了优秀的软件工具。OpenGL集成在Windows的内核中,VB、VC ++均可直接调用,初学的学生也能利用OpenGL的图形处理能力设计出高质量的三维图形以及三维交互软件。所以,笔者在本课程的课件中,每一部分的章节后面,都要讲解在OpenGL中怎样实现,如画线、几何变换、消隐、纹理映射、曲线和曲面的生成等,展示相应的程序并讲解程序。这样可以拓宽学生的知识面,提高学生的就业机会。例如(1)图形生成算法,OpenGL提供了定义点的函数,利用这个函数可以方便地向学生演示基本图形生成算法的基本原理。(2)几何变换。调用OpenGL的三个变换函数glTranslate3( )、glRotate3( )和glScale3( ),实质上相当于产生了一个近似的平移、旋转和比例矩阵。(3)投影变换。OpenGL中只提供了两种投影方式,一种是平行投影,另一种是透视投影。OpenGL平行投影函数共有两个:一个是void glOrtho(GLdou2ble
left, GLdouble right, GLdouble bottom, GLdouble top, GLdou2ble near,GLdouble far),另一个函数是void gluOrtho2D (GL2double left, GLdouble right, GLdouble
bottom, GLdouble top)。OpenGL透视投影函数也有两个:一个是void glFrustum(GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble near, GLdouble far),另一个函数是void gluPerspective(GLdouble fovy, GLdou2ble aspect, GLdouble zNear, GLdoube zFar),利用这些函数就可以容易地实现透视投影的效果。(4)曲线曲面的生成。计算机图形学中,所有的光滑曲线都采用线段逼近来模拟,而许多有用的曲线在数学上只用少数几个参数(如控制点等)来描述。OpenGL提供生成Bezier、B样条、NURBS曲线和曲面的函数。OpenGL曲线坐标计算采用的是void glEvalCoord1{fd} [v] (TYPE u),如果是二维曲面的话,上述的函数名改变为对应的二维版本就可以了。(5)真实感图形生成。真实感图形绘制是计算机图形学的一个重要组成部分,在OpenGL中设置光源颜色和对象本身颜色的函数为glLightfv()、glMaterialfv(),调用这些函数举一些案例,使学生不仅能学到基本的图形理论,还能自行开发基于OpenGL的几何变换、投影、曲线曲面生成、光照明模型的建立、纹理映射技术等图形,大大提高了学生的动手能力,使学生消除计算机三维图形编程的神秘感,激发了学习的兴趣。
3“14+4“的课程改革方案
由于本课程是一门实践性比较强的课程,同时也为了使学生具有图形开发的创造能力,本课程在教学过程中更适合“14+4”教学模式,即在教学计划中,14周用于理论教学,4周用于做课程设计。学生可以运用自己所学图形学知识设计一些大的绘图程序,例如二维图形几何变换系统、三维图形几何变换系统、实体的几何造型、二维或三维纹理映射技术的实现、面消隐算法的实现、分形图形技术、应用OPENGL生成一三维形体或实现图形学中相关算法、数字图像处理技术等。学生在课程设计过程中加深了对图形学这门课的理论知识,锻炼了算法实现技巧、提高了编程能力,教学效果良好,甚至有些学生也能开发出效果较好的图形系统。
4后续建设的设想:
针对当前计算机图形学的发展以及市场上流行的许多图形图像处理软件,如Flash、3Dmax、Maya、Authorware、Dreamweaver等,可以在几何造型或光照模型、纹理映射等理论的讲解上结合这些软件的实现过程来讲解,一方面可以满足学生渴望掌握这些软件的心理,另一方面可以使本课程的讲解更加形象、生动和易于理解,也拓宽了本课程的应用范围。
参考文献
[1] 孙家广. 计算机图形学[M]. 北京:清华大学出版社,1998.
[2] 吴涛. 计算机图形学教学改革探讨[J]. 福建电脑,2007,(5):199-201.