前言:中文期刊网精心挑选了计算机图形学课程范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。
计算机图形学课程范文1
关键词:计算机图形学;实验;教学研讨
中图分类号:G642 文献标识码:B
计算机图形学是一门理论与实验并重的学科。从理论方面看,该学科主要涉及与图形相关的概念和算法,和数
学、物理等相关学科的关系紧密,学起来有一定的难度。而实验是理论教学的深化与补充,是抽象转化为具体的方式,是晦涩难懂的公式变为活生生画面的过程。通过实验,不仅可以培养学生综合运用所学知识解决实际问题的能力,而且对于建立学生自信心、培养学生兴趣也起至关重要的作用。学生对该课程是既喜欢又担心学起来难度太大,如何上好第一次课,改变学生的态度,如何安排教学内容和实验环节,使学生既易于接受又能反映计算机图形学的基础知识和最新知识。本文针对这些问题,结合教学中的实际情况浅谈一下自己的看法和体会。
1课程内容介绍
在多数人的印象中,计算机图形学和其它专业课相比较,数学公式太多,难以学习和理解。但是由于它的诸多应用非常具有吸引力,尤其它是大家所感兴趣的游戏和动画的基础,很多学生又想接触它。如何加强学生的这个念
头,第一次课非常关键,它在很大程度上决定了学生是否选学这门课。图形学的理论虽然抽象,但是所表示的内容却形象,可以以此作为突破口。我们知道被称为“图形学之父”的Sutherland博士论文答辩时,将所研究的内容制作一部电影,边放映边讲解,大获成功。所以我觉得可以从一个动画短片或游戏片段出发,将所涉及的图形学知识融会贯通起来。因为在没学习图形学之前,学生很难建立图形学知识和游戏动画之间的联系。他们只知道图形学理论很抽象,游戏动画很容易吸引学生眼球,而且也知道它们之间的关系很紧密,但具体有什么联系却不是很清楚。我们可以从此出发,引出图形学的相关知识,让学生在不知不觉中了解图形学,接受图形学。这样轻松建立了相关知识点与实际应用的联系,也解答了学生学有何用的疑问。
现以动画短片《棋逢敌手》(Geri's Game)为例来说明如何引出图形学内容。该短片讲述的是Geri老头在公园跟自己下棋的事,故事情节生动,动画效果惟妙惟肖,很具吸引力。学生非常感兴趣,这是怎么做的,采用什么技术,Geri老头是怎么得到的等等一系列问题。我们便可以问题为导向一一解释给学生。Geri老头采用的是一种称为Catmull-Clark的细分曲面造型技术,在造型之前需要准备数据,所谓巧妇难为无米之炊,一般这样的数据是先建立一个实物的模型,然后通过三维激光扫描仪获取的。三维扫描仪扫描实物的表面数据,其数据量大,而且带有噪音,所以需要做去噪,简化等处理。简化后得到Geri老头的表面骨架,然后再采用细分曲面造型技术获取光滑逼真的模型。细分造型是一种逐层加细技术,如图1所示,图1(a)-(c)是不同层次的效果。从中可以看出图(c)图形的光滑效果最好,而图(a)最差。但是图(c)的数据量最大,这就需要根据不同情况选择不同的图形,如图2所示,当图形距离我们较远时可以选择精度不高的(a)图形,而较近时选择(c)图形。在游戏动画方面,对速度要求高,而对图形逼真性的要求相对低,这时可以选择数据量小的图形。这样通过图形展示给学生以感性的认识,一方面易于接受,易于理解,另一方面也能增加学习的兴趣。另外,形象逼真的图形采用真实感绘制技术,场景远近变化利用了图形变换的知识等等。一个短篇,基本上把图形学的相关内容都包括了,我们还可以再结合其它一些具体生动的图形动画介绍给学生。实际上,在图形学授课的各个环节,为了调节枯燥的数学公式,都可以演示一些相关内容的图形,也所谓的多媒体教学,在这方面,图形学应该更有优势。
2理论与实践并重
对计算机图形学这样的专业课而言,理论的学习离不开实践,实验是非常重要的一个环节。抽象的理论,乏味的数学公式,如果不和实验结合,学生是体会不到学习乐趣的。通过实验,所学的知识得以巩固,枯燥的算法与生动的图形之间建立联系。学生的兴趣也是通过实验建立起来的。每次实验报告,我都会要求学生写下心得体会,从报告可以看出,多数学生能够在实验中找到快乐,能够通过实验建立自信心,成就感。他们说做实验很受锻炼,知识掌握的也更牢固。当然有的学生也提到,做实验是一件非常辛苦的事情,特别是没有思路或者找不到错误时,真的很痛苦。但是成功后的满足,特别是做出来的那一瞬间,那种心境别人无法体会。
由于计算机图形学是专业限选课,学时不多。我们一般安排32个上课学时和16个实验学时。为了增加学生的知识面,我们的实验是在Sun工作站Solaris操作系统下采用gcc编译器进行,编程时调用OpenGL库中的图形函数。通常安排4个学时熟悉这些内容。这样根据剩余学时安排五个小实验:直线生成、裁剪、几何变换、曲线生成以及真实感图形绘制,还有一个综合性实验:做一个简单的图形系统。题目的要求随着难易程度变化。直线生成算法比较简单,学生编写的程序应具有通用性,适用于任何直线。裁剪算法是为了确定显示区域内的图形,实验一般要求实现线段裁剪算法,算法易于实现,考虑到易操作性,采用交互式的画线方式,即以鼠标点击绘图区的位置确定线段的起点和终点,其中涉及消息映射和屏幕坐标到世界坐标转化等相关知识。几何变换几乎在每个图形系统或图形应用软件都有使用,其主要包括旋转、平移、缩放以及复合变换等内容。学生对三维图形更感兴趣,尤其是较复杂的图形。在做该实验时,通常先介绍一些三维图形的相关知识,包括几何图形表示、存储形式以及读文件操作等,一般以简单的OBJ数据文件为例。然后让学生实现三维图形的几何变换。另外,考虑到该实验包括几个操作,增加了菜单选择功能。曲线曲面也是图形学的核心内容,生成方法有两种:一种是逐层递推的方法,另一种是根据参数曲线定义。学生根据自己的理解选择不同的方法实现。在曲线生成的基础上,增加鼠标拖动控制点改变曲线曲面形状的功能。真实感实验是为了增加学生学习的兴趣,通过调用OpenGL的库函数做出一些漂亮的效果,让学生感觉到图形学功能很强大,一些看似复杂的效果实现起来也简单,只需调用OpenGL中现成的库函数。综合性实验报告我也鼓励学生做一些自己感兴趣的东西,比如有的学生对游戏很感兴趣,基础也较好,想做一个小游戏,我是完全许可的。应该来说,安排的实验任务重,覆盖内容多,在有限学时内完成这些实验是不可能的,需要学生在课外做许多准备工作。而且,有些知识点较难,学生难以消化。针对这种情况,实验部分也分了解和掌握两种情况,这样做的一个目的就是想增加学生的知识面。
3教学内容安排
计算机图形学知识更新快,内容深而广,如何在有限的学时内安排教学内容,使讲解的知识难度适中,既兼顾基础知识又可以反映计算机图形学的最新成果和技术,同时,既兼顾理论又兼顾实验。另外,在学生可以接受的情况下尽可能介绍三维知识。
我们的教学内容主要分这几部分内容:光栅图形学,图形变换,几何造型,真实感图形绘制。而且,各部分内容贯穿OpenGL的相关知识。前两部分比较基础,内容相对简单,课时尽可能安排紧凑,理论讲的相对深入。但是对于几何造型,尤其是曲线曲面造型部分,内容的深浅需要根据学生情况来把握。曲面难度较大,一般只介绍大致的思路及做一些演示。对于曲线,如果讲得比较深入,对于基础不好的学生来说也难以接受。我曾尝试采用分段多项式的形式推导B样条基函数,不少同学听得很费力,甚至影响后面知识的学习。现在讲这部分内容时,我只是介绍基函数的由来,告诉学生基函数是根据曲线的性质和定义推导出来的,不是随随便便指定的,这样学生比较容易接受。实际上,无论Bezier曲线或B样条曲线,都是曲线造型技术中的经典算法,但也存在缺点。目前比较流行的曲线造型技术是细分算法,它有很多很好的性质,如多分辨率,应用简单等。由于其比较新,很多教科书中尚未介绍。一般我从应用层的角度将三次B样条细分和四点插值细分等典型算法介绍给学生,介绍他们的特点以及实现技术。真实感图形绘制部分,涉及数学、物理、心理学等方面的知识,理论较深,不太适合本科生学习。但由于其做出来的图形太漂亮,很具吸引力。而且,用OpenGL的库函数实现并不难,所以这部分内容我一般是介绍一些基本概念,然后做一些程序演示。一方面增加学习的兴趣,另一方面让他们意识到,有些知识尽管理论比较深,但由于有现成的类似OpenGL库函数这样的技术支撑,也容易实现。很多东西并不是想象的那么神秘,那么可怕。
4结语
计算机图形学是一门理论内容深,应用范围广的课程。本文就如何组织教学内容谈了自己的见解和体会,目的在于提高学生学习兴趣,让学生在易于接受的情况下学到更多有用的知识。实践表明方法具有一定的可行性,普遍学生反映,通过课程的学习体会到了图形学的博大精深,增加了图形学的学习兴趣。但也有部分同学感觉有些内容讲解不够深入,难以理解。所以,如何在有限的学时内更好地组织教学,还有待进一步探讨。相信通过学习、思考和实践可以做得更好。
参考文献:
[1] 唐荣锡,汪嘉业,彭群生. 计算机图形学教程(修订版)[M]. 北京:科学出版社,2000.
[2] 周开进,王志刚. 计算机学科与数学的强相关性及其对专业教育的影响[J]. 中山大学学报论丛,2002,(6).
计算机图形学课程范文2
>> “计算机图形学”教改研究与实践 “计算机图形学”课程教与学 计算机图形学实验课程改革探讨 “计算机图形学”课程建设探究 计算机图形学课程教学思考 论“计算机图形学”课程的学习 “计算机图形学”课程教学探讨 计算机图形学课程双语教学感想 计算机图形学的发展及应用 《计算机图形学》教学探索与实践 计算机图形学教学与实践 浅析计算机图形学、计算机视觉与可视化技术 计算机图形学与图形图像处理技术探讨 计算机图形学与图形图像处理技术浅析 计算机图形学与图形图像处理技术 信息与计算科学专业计算机图形学课程教学改革实践 面向游戏开发方向的“计算机图形学”课程建设探讨 信息与计算科学专业《计算机图形学》教学之探讨 系统案例教学方法在计算机图形学课程中的应用 《计算机图形学》课程双语教学实施的研究 常见问题解答 当前所在位置:.
[3] 孙迪,余胜泉. 建构基于学习对象的网络课程教学设计模板[J]. 开放教育研究,2005,11(2):71-77.
The Exploitation and Application Research of Web-based Course of Computer Graphics
DU Hui, SHU Lian-qing
(ZheJiang institute of media and communication, Hangzhou 310018, China)
计算机图形学课程范文3
关键词 计算机图形学;图形学理论教学;图形学实践教学
中图分类号:G642.44 文献标识码:B
文章编号:1671-489X(2016)04-0162-03
Teaching Research of Theory and Practice in Course of Com-puter Graphics//LIAO Bin, HU Jinlong
Abstract Through analyzing the main problems in the course of computer graphics, the teaching reform of the computer graphics course is proposed about theoretical teaching and practical teaching. We divide the course of computer graphics into theory course and practice course, and make the theory course of computer graphics become the pre-course for the practice course of computer graphics. Students’ learning interest is stimulated and their ability to contact the theory with practice is improved through integration the theory and practice of the computer graphics course.
Key words computer graphics; graphics theoretical teaching; graphics practical teaching
1 引言
计算机图形学是研究如何利用计算机生成、处理和显示图形的原理、方法与技术的一门学科[1]。它以图形用户界面和可视化技术为典型应用,是信息技术中不可缺少的部分。近年来,国内外大学逐渐将其列为计算机应用类课程中的专业课。现在,计算机图形学已经在诸如影视动漫、军事仿真、医学图像处理、气象等科学可视化领域获得成功运用,在带来经济效益的同时,也给计算机图形学的发展提供了机遇与挑战。
本文通过分析计算机图形学传统教学中存在的问题,提出改革思路。在教学中,将课程设置为理论教学与实践教学两门独立课程,针对理论教学与实践教学分别进行教学设计,转变传统教学中实验教学的附属性质,使理论知识为实践教学铺路,增强教学效果,促使学生积极动手操作、思考,促进新旧知识的结合,通过教学过程的探索与总结,增强计算机图形学的教学效果。
2 计算机图形学课程教学中存在的问题
传统的计算机图形学教学重点一般侧重于考核学生对知识点的掌握[2],课程实践所占比例较低。然而计算机图形学课程本身的特点不适于传统的教学模式,若仍采用传统教学模式,不仅不利于维持学生的学习兴趣,更不利于学生发现问题、解决问题能力以及创新能力的培养。
计算机图形学教学内容与学生的学习兴趣 传统的计算机图形学内容主要有[3]计算机图形系统概述、二维图形生成和变换技术、三维图形生成和变换技术、真实感图形生成技术、计算机动画技术与实践。该课程入门阶段需要的数学知识主要涉及代数、三角学和线性代数,数学原理与图形的结合在理论教学中占据了一定比重。
传统的计算机图形学教学目标侧重于培养学生对计算机图形学理论知识的了解与掌握,在教学内容的设置上主要强调图形学知识、概念的系统性与整体性,重点是概念解释与原理讲解,体现为大量的公式推导。
未进入图形学教学前,学生对该课程的理解主要分为两类:一类认为该课程主要讲述游戏开发,学完本课程后就可立即完成诸如游戏编程、动画设计、特效处理等任务;另一类认为是艺术设计,主要为广告传媒等行业服务。实际上,在本科阶段开设的计算机图形学课程,通常立足于计算机图形学科的入门,教学内容主要是理解与掌握基本的图形绘制原理及其实现算法,能进行基本图形的程序设计。由此,图形学课程认知的不全面将导致学生学习兴趣的下降。学习内容的枯燥、教学内容与现实应用的巨大落差会导致部分学生的学习兴趣随课程的深入而进一步下降。
计算机图形学课程实验的设置 计算机图形学的实验内容主要集中于基本图形算法的实现,需要学生运用高级程序语言进行编程,然而作为专业基础课程学习的此类高级程序设计课程,往往以基本知识、程序设计、数据组织三方面为主要内容,一般不涉及图形库编程接口(API)。这导致在本课程的实验教学时,需要针对授课学生原先所学的高级程序语言,补充对应的图形库编程知识,这使得实际的有效实验学时被缩减,而且增大了学生实现算法的难度,以至于进一步加剧了理论与实践脱节的现象。
3 理论教学与实践教学的改革方法与目标
在大学本科第7学期开设计算机图形学课程,并将其分为理论课与实验课两门课程,两门课程单独核算成绩。其中,理论课为32学时,2.0学分;实验课为16学时,0.5学分。在理论课程完成后开始实验课程,计算机图形学的实验不再是传统教学中对理论课上知识点的简单重复与验证,而是对所学知识的综合运用与深化。由此,需要合理选择理论课教学内容,以完成与实验课程的衔接。同时,设计合适的实验项目使学生掌握课程基础知识,提高学生的动手能力,以提升计算机图形学的教学质量。
理论课教学内容设计 计算机图形学技术在快速发展,与之相适应,图形学课程的教学也发生变化[4]。现阶段,在计算机图形学教学中主要有3种教学体系,大致分为理论为主、编程为主、问题为主。
1)理论为主是传统的教学体系,强调对计算机图形学理论的理解与掌握,以公式推导为主要呈现方式,国内外此类教材有Floey的《计算机图形学原理及实践――C语言描述》(原书第2版)、孙家广的《计算机图形学》等。
2)编程为主的教学体系侧重于培养学生初步掌握一种典型的图形学API,以图形学使用者的角度讲授计算机图形学所需的理论与概念,去除非必需的数学原理与公式推导。国内外此类教材有Donald的《计算机图形学》(第四版)、徐文鹏的《计算机图形学基础(OpenGL版)》等。
3)问题为主的教学体系的教学目标着重于培养利用计算机图形学知识建立与用户交流的能力,从而实现问题的图形化建模并解决问题。相应的教学内容既涵盖了图形学中的基本概念和技术,也涉及了实现这些概念和技术的图形学工具,然而重点在于介绍如何使用计算机图形学知识来解决实际问题以及如何有效地进行结果展示。Steve Cunningham的《计算机图形学》是此类教学体系的典型教材。此类问题为主的教学体系近年来在美国兴起。
在本科教学中,考虑到学生前期课程的设置与掌握情况,采用结合OpenGL实现算法的编程为主的教学体系。在实际教学中,既要保证计算机图形学基本概念、理论的完整讲述,也为后续的实践课程做铺垫,有针对性地介绍图形支撑软件,使学生在掌握图形学基本知识的同时,能够在一定程度上自主实践,保持与激发学生的学习兴趣。
实验课教学内容的设计 计算机图形学传统教学中的实践一般使用C++来实现相关算法[5],实现难度过大,导致学生没有时间和兴趣去完成[6]。实践教学的本意是对理论教学的巩固、完善与提高,为实现理论与实践教学的平稳衔接,在实践教学环节中采用OpenGL作为图形算法接口,让学生有针对性地完成若干实验项目。
OpenGL是一个工业标准的三维计算机图形接口软件,其具有的功能基本上涵盖了图形系统要求提供的所有功能。此外,OpenGL具有的跨平台性、可扩展性、绘制专一性、网络透明性等特点使其应用广泛,降低了对学生编程能力的要求,且由于其开源的特性,使得学生可通过参考其中的算法实现获得编程能力的提高。
结合图形学的实际应用与学生的实践能力,设置如表1所示的实践项目。
4 小结
计算机图形学随着计算机理论与技术的进步、社会应用的需要而有了迅速发展,是理论与实践并重的学科,对教学有较高要求。本文从计算机图形学的学科特点出发,分析了计算机图形学传统教学中存在的问题,提出将理论与实验相融合的教学思路,改变传统教学中实验教学的附属地位,从实践的角度出发,在理论教学中进行概念、理论向实践的平稳过渡,一定程度上降低了学生完成课程实验的难度,激发了学生的学习兴趣。从教学效果来看,本文提出的教学方法取得较好的成效,同时对计算机专业的类似课程也具有一定的参考意义。
参考文献
[1]徐文鹏,王玉琨.计算机图形学基础(OPENGL版)[M].北京:清华大学出版社,2014.
[2]杜利峰,李竹林.基于OpenGL的计算机图形学教学改革探索[J].电子设计工程,2012(13):6-8.
[3]王汝传,黄海平,林巧民,等.计算机图形学教程[M].3版.北京:人民邮电出版社,2014.
[4]刘贵松,房秀芬,陈文宇.基于计算思维能力培养的计算机图形学知识体系[J].实验科学与技术,2015,13(2):
160-162.
计算机图形学课程范文4
摘要:本文分析了“计算机图形学”课程的学科特点和当前的教学形式,指出了当前教学过程中所面临的问题,从而提出了一些新的教学思路和方法。实践表明,这些方法对提高课程的易理解性、学习趣味性和教学质量有明显的作用。
关键词:计算机图形学;教学改革;教学实践
中图分类号:G642 文献标识码:A
“计算机图形学”是大部分院校计算机专业或相关专业中的一门重要课程。本课程的教学目的是使学生掌握计算机图形系统软硬件技术以及图形生成、处理、输出的基本原理和方法,培养学生利用计算机解决图形问题的程序设计能力,为开发图形软件打下必要的基础。
1计算机图形学的教学现状
计算机图形学是建立在传统的图学理论、现代数学和计算机科学基础上的一门新兴学科。该学科综合了计算机科学、数学、物理学等其它相关学科的知识,而且学科发展日新月异,新的应用领域不断拓展,这使计算机图形学具有学科内容丰富、理论性强、算法众多、实践性强这几方面特点。
学科内容丰富和理论性强造成该课程讲授起来比较枯燥;同时,传统地讲授教材上的理论将使学生感到该课程难于理解、难学、学习积极性和主动性受到影响,整个学习过程基本是被动接受。
目前,国内的计算机图形学课程教学基本取材于几本经典的教科书,这些教科书重点讲述计算机图形学的算法。许多算法为了追求高效率从而精益求精,算法本身构思独特且实现精巧,但也导致了算法本身及其实现都难于理解;而且传统的授课方案侧重于强调算法实现的数学基础。这种强调图形算法基础的教学方案适合于数学基础优秀的学生,但对本校这样的工科类院校,学生往往被一些必须掌握的算法所困扰,从而对该课程产生畏难心理。
计算机图形学这门课程实践性强的特点则要求学生具有较强的动手操作能力和编程能力,从另外一个方面来说,要求老师有更强的实践能力。如果理论与实践互动性不够,容易造成学生实践动手能力薄弱。
通过以上分析,可以看出在计算机图形学中采用传统的课堂上讲授理论,课下让学生去做实验的教学方式很难达到预期的教学效果,急切需要探讨新的教学思路和教学方法。
2计算机图形学课程的教学改革
本校针对现有教学中的不足,在总结多所知名大学在该门课程教学经验基础上,制定了计算机图形学的教改目标和教改方案,具体认识和做法如下。
2.1教学内容的组织
以教学大纲为依据,从学生的实际情况出发,以课堂讲授为主,上机实验为辅的方式组织教学内容。其中课堂讲授48学时,上机实验16学时。以讲清基本原理和概念为第一目标,以培养学生图形学算法的设计能力、图形软件的开发能力为原则,合理安排课堂教学内容。
根据学生的接受程度,教学内容首先注重基础,强调基本概念、基本原理;其次突出重点,对一些要求掌握的算法,要仔细分析,强调其基本思想。只要算法的基本思想掌握了,算法的实现就容易理解,对相关算法就可举一反三、触类旁通;再者教学内容中应该介绍一些当前的研究热点,使学生了解学科发展情况,也同时增加课堂教学的趣味性;最后在教学内容中应该注意理论与实用软件之间的关系,适当介绍计算机图形学理论、算法在流行的图形设计和动画制作软件(如AutoCAD、3DMAX等)中的应用,促进理论学习和实用软件使用之间形成互动。
根据以上原则,本校在2005届计算机专业本科生中,采用了清华大学出版社出版,孙家广主编的《计算机图形学》作为基本教材。同时引进国外一流大学的先进教材Donald Hearn, M. Pauline Baker编写的Computer Graphics(C Version)作为教辅资料,其中引用了一些最新的图形学研究成果,在彩页中体现了几乎乱真的图形效果。
2.2教学方法的选择
在讲授必须掌握的基础算法之前,强调启发式教学,提出课前思考题。这些思考题可以引导学生预习和自学,减轻课堂负担,使课堂教学目标清晰,任务简化。如在讲授多边形裁剪算法之前,应思考多边形由线段构成,是否可用已学过的二维线段裁剪算法逐边裁剪多边形?如果不能,原因如何?应如何解决?
在讲授同类算法之后,对解决同一问题的算法进行比较,强调对比性学习。如区域填充中,应对漫水法填充、边界填充算法、扫描线种子算法进行比较,说明其相同之处皆为在填充过程中搜索新种子点,不同之处在于搜索新种子点的方法不同。通过对比学习,学生在学习过程中不再孤立学习一种算法,而是同时掌握一类算法,为后续的扫描转换填充算法打下基础。
2.3教学手段的应用
在计算机图形学课堂教学过程中,本校采用多媒体教学与传统教学方式相结合。为了充分发挥图形图示、动画演示的作用,主讲教师精心制作了计算机图形学多媒体教学课件。在该多媒体教学课件中,对教学内容的各个知识点间用超链接进行链接,引入音频、视频等媒体信息,既增加了教学内容的连贯性,又使课堂教学变得生动有趣。
为了合理利用网络,拓展教学空间,主讲教师开设了自己的个人博客,在网上列出与课程相关的权威网络资源。在保留传统的面对面交流的基础上,学生可以通过网络与教师、同学讨论问题;教师则可以根据学生的反馈意见,及时了解学生的学习现状,调整下一步的教学方式。
除了网上讨论答疑外,教师根据学生的意见还采取了MSN、QQ 等学生喜爱的交流方式。通过这种网上交流,一方面使同学们不知不觉中利用课余实践学习巩固了图形学知识,扩展了知识面;另一方面也兼顾了图形学的教学大纲和同学们的兴趣。一般说来,教学大纲强调基本的概念算法,而学生则对如何生成各种漂亮的图形效果感兴趣,将如何基于图形学算法使用工具软件生成图形效果的资料放在网上,在课堂上就可以集中精力讲授算法理论。通过网上交流,给学生提供了一种获取知识的新渠道,这对于刚读完两年大学,已初步具备自学能力的大三学生而言,效果较好。
2.4上机实验的分配
计算机图形学涉及大量图形造形、图形生成和变换的算法,上机实验必不可少,应该结合课程特点设计实验内容,强调学习、研究和实验的有机结合,鼓励创新性。通过实验,发现问题,解决问题。
本校根据学生的实际情况,把实验环节分为必做的课内验证性实验、课内设计性实验、选做的课外创新性实验,并且要求学生将自己实现的各类图形算法统一到一个整体框架中。到课程结束时,每个学生都完成了一个具有自己特点的小型交互型计算机图形系统。在这个过程中,学生不仅学习了计算机图形学的各种算法,而且培养了学生的学习兴趣。
在上机实验过程中,由于本校学生在开设计算机图形学这门课程之前并没有学习过GUI编程,往届学生的上机实验都是基于Turbo C环境下的编程练习。由于TC的陈旧性和古板性,多数学生对它并不感兴趣,因此在2005届学生上机实验之前,本校教师将计算机图形学中的上机实验移植到VC、VB、C++ Builder等可视化的编程环境上来。这一方面让同学们学习编程时有与时俱进的感觉,另一方面又能学到新的内容。
2.5算法演示系统的设计
计算机图形学算法中涉及到较复杂的公式推导,在理解算法时要求有比较强的空间想像能力。为了帮助同学们更好地理解算法,本校组织毕业生在主讲教师的帮助下制作了“计算机图形学算法演示系统”,该系统利用Visual C++ 6.0结合OpenGL进行开发。
由于该系统主要用来进行辅助教学,而一般程序实现速度快,且操作的像素人眼看不见,这样的程序用于课堂讲解,虽然可以提高同学们的学习兴趣,但同学们看不到算法的具体实现过程。为了解决这个问题,本系统以放大的可见点模拟人眼看不见的屏幕像素,并且以动画的形式完成计算机图形学中各种算法的实现过程。系统中每一种算法都被设计为一个独立的类,各种算法根据其分类被组织在相应的菜单下,通过菜单调出设置参数和控制程序的对话框。采用该算法演示系统后,在学习相关算法时,同学们可以清楚地看到算法的分步执行结果,帮助同学从直观角度理解各种抽象算法,极大地提高了学生的学习兴趣,增强教学效果。
2.6课后习题的安排
课后习题对于帮助学生预习和自学, 激发学生兴趣等方面有重要作用。由于计算机图形学这门课程的特殊性,课后习题较少,因此根据课程教学需要,在参阅著名计算机图形学教材的基础上,本校教师经过收集整理,设计编写了教学辅助材料《计算机图形学习题集》,目前已基本成型,并在2005届学生中试用。
在设计习题的时候要精心设计和选择,特别避免作业形式单一、难度较大,否则就会使学生产生畏难情绪。注意循序渐进、难易适度。注重基础,注意多层次(如基础知识、算法设计和综合应用题等)、多形式(如判断题、选择题、填空题、简答题、算法设计题和综合应用题等),使学生得到全面的训练。习题应注意启迪学生的思维, 培养独立思考的能力。
在每章习题的最后,都是这章内容的学习小结,要求学生回答:通过这一章的学习,掌握了哪些知识?哪些没有听懂?对老师有没有更好的建议等等。字数不限,但必须回答。从教师的角度出发,这种小结有利于了解学生的心理动态,了解自己的授课得失,有利于进一步改进教学质量;从学生的角度出发,这种小结客观上促进了学生进行课后复习,巩固了课堂效果,而且内容灵活,可长可短。
2.7教学过程的考核
重视教学的过程化管理与考核是保证教学质量的重要手段。对课堂、作业、实验等环节进行有效的管理,及时发现和纠正每一环节中存在的问题。应该在过程中解决教学中的问题,不能让其积累起来,避免学生感到课程的难学,以致学习积极性下降。
过程化管理和考核体现在评定学生的课程成绩时,全面考核各重要教学环节(如上课、作业、上机实验、期末考试等)的学习情况,应充分重视平时的学习情况,鼓励在平时作业、上机实践中独立思考,并有所创新的学生。对于平时作业,上机实验中存在的抄袭现象,教师要求学生用电子邮箱提交作业,两份完全雷同的作业,按照提交时间先后次序判断抄袭者。对于上机过程中,第一个完成的同学或者实现方法有所改进的同学都给予加分奖励。每次作业、上机实验都要给出等级,各环节的学习情况都有逐一的评定成绩,并按比例记入到课程的总成绩中。
3小结
通过本校2005届教学效果和往届学生教学效果的对比分析,在试卷难度相同的情况下,2005届计算机本科生图形学考核平均成绩提高5%,且成绩分布更趋向正态分布;网上评教系统表明,在2005届本科生中,学生对计算机图形学的畏难心理有较大的降低,仅有一人反映学习过程中听不懂,难度很大,这说明学生的学习兴趣和学习信心有一定的提高。从对比结果可看出本文所提出的方法有一定的实效,同时对其他课程也有一些参考意义。
参考文献
[1] 唐泽圣. 计算机图形学基础[M]. 北京:清华大学出版社,2003.
[2] 吴元斌. “计算机图形学”教学的几点体会[J]. 安康师专学报,2004,(16):119-121.
[3] 孙家广. 计算机图形学[M]. 北京:清华大学出版社,1998.
[4] 杨长强. “计算机图形学教学演示系统”的设计与实现[J]. 教育信息化,2006,(3):41-43.
Research and Practice of Teaching Reformation of Computer Graphics
Duan Jiang
(College of Information Science and Engineering, Nanjing University of Technology, Nanjing 210009, China)
计算机图形学课程范文5
摘要:“计算机图形学”是计算机专业的一门非常重要的基础课程,但在教学中存在很多问题,本文总结了两种结合方式的教学方法,分析和探讨了其在教学中的应用。
关键词:计算机图形学;教学方法;教学与实验
中图分类号:G642
文献标识码:A
1引言
“计算机图形学”在计算机科学与技术专业的一门基础课,其课程涉及图形硬件设备、图形系统、交互技术、基本图形生成算法、几何变换、真实感图形生成等内容。在笔者的教学实践当中发现教学过程中普遍存在以下两个问题。
1.1理论知识掌握方面
由于“计算机图形学”具有较强理论性,部分算法比较抽象不易理解。所以学生在学习的时候很难将抽象算法与具体的三维图像结合起来,经常表现出畏难情绪。
1.2实践能力培养方面
由于“计算机图形学”课程的教学主要精力放在了图形的基本概念和算法原理的讲解上,上机实践环节滞后;另外,现在大部分的教材中仍然是以Turbo C作为上机实习的平台,但是由于Turbo C再实际应用中早已不作为开发工具使用,学生并不能够在实验中获得未来就业环境下真是需要掌握的编程知识,需要二次学习才能适应社会的需求。
针对以上问题,给出以下解决方案。
2理论讲解与具体开发工具的使用相结合
图形通常由点、线、面、体等几何元素和灰度、色彩、线型、线宽等非几何属性组成。如何在计算机中表示图形以及利用计算机进行图形的计算、处理和显示的相关原理与算法,构成了计算机图形学的主要研究内容。目前,大部分《计算机图形学》教材都是以计算机图形学的基本概念、基本理论、基本原理及经典算法作为主要内容,以丰富学生的基础知识,培养学生的独立研究能力。然而,在微型计算机日益普及的今天,随着计算机科学及技术的发展,出现了很多功能完善的图形软件标准和图形软件,如何利用他们培养学生的学习兴趣,提高实际应用的能力,则是当今教学的重点。
为了能够更加广泛地接触和学习图形软件,笔者在以Turbo C语言作为开发工具来介绍基本图元的经典画法的同时,将OpenGL引入到计算机图形学的学习中。
OpenGL是近10年来发展起来的一个性能卓越的、通用共享的三维图形标准,已得到广泛应用。OpenGL提供十分清晰明了的图形函数,所以图形绘制可以通过它的各种函数来实现。OpenGL具有标准型、稳定性、可扩展性、可缩放性、易用性、可靠性和可移植性等特点。与其他图形程序包相比,OpenGL应用程序代码行数少,又封装了有关基本硬件的信息,因此在很多领域都得到广泛的应用。
在教学过程中,为了让学生对“计算机图形学”中所讲解的知识能够更好的理解和掌握,可以从三个步骤来进行讲解:
2.1理论讲解――基本概念、原理及算法
理论讲解过程中,我们可以把OpenGL与之结合起来。例如:我们在讲解直线的扫描算法时,首先介绍经典的中点绘制直线算法和Bressman算法,通过这两个算法的原理的介绍可以使学生了解到在计算机中怎样以像素作为处理单位来实现直线的绘制。然后,我们可以介绍一下OpenGL中对直线进行绘制的方法,从而体会两种开发工具的相同和不同之处:
(1) Turbo C:Bressman算法实现直线的绘制
voidBresenham_Line (int x1, int y1, int x2, int y2,int color)
{
intx, y, dx, dy, dk, i;
dx = x2 C x1;dy = y2Cy1;dk = dy C dx;
x = x1;y = y1;
for (i = 0; i
{ putpixel (x, y, color);
x=x + 1;
if(dk
dk=dk+2*dy;
else
{y = y + 1; dk = dk +2*dyC 2 * dx; }
}
}
(2)OpenGL实现
glBegin ( GL_LINES );
glColor3f(1.0,1.0,0.0);
glVertex2f(-11.0,8.0);
glVertex2f(-7.0,7.0);
glEnd();
在Turbo C中需要具体的算法和参数实现对像素逐个处理从而形成一条直线;在OpenGL中我们只需要给出直线的坐标、属性的数据就可以得到一条直线了。这样学生就可以了解到直线的绘制原理,以及在实际开发中具体实现发法,有效地把理论知识与实际应用结合起来,达到了较好的教学效果。
2.2多媒体演示――各种图元、概念、算法的实现和变化过程
由于“计算机图形学”这门课程中的很多理论知识比较抽象不容易理解,特别是需要学生具有较好的三维空间的立体感,才能更好的理解所学的知识,例如对坐标变换、投影变换等部分的概念的理解,对很多学生来讲都很难理解,为了达到更好的教学效果,可以将OpenGL引入到课程学习中,通过OpenGL的对应函数的多媒体演示,帮助学生更好地掌握这部分知识。在介绍了基本的变换中的平移变换、缩放变换和旋转变换的概念时,在计算机图形学中我们一般是通过二维的图形来帮助学生理解,如图1~3。
OpenGL多媒体演示见图4。
在OpenGL中分别使用glTranslatef()来表示平移变换,三个参数分别表示在三个坐标平移的距离;glRotatef()用来表示旋转变换,一个参数表示旋转地角度,另外一个参数表示旋转轴的坐标;glScalef()表示缩放变换,三个参数表示在三个坐标轴方向的缩放比例。这里,通过多媒体可是课件,通过鼠标来控制参数的值,根据参数值的变化,显示效果也会随之变化。通过这种三维的动态多媒体课件的演示,可以使学生更好的理解三种变换,同时对OpenGL中对应的函数及其参数的具体含义有了更好的掌握。
2.3具体应用――原理算法的具体应用
在完成前两个步骤的基础上,可以通过一些小的应用程序或游戏程序的演示,将其中对应的图形绘制方法的应用提炼分析出来,这样可以使学生对所学知识的具体应用有较直观的认识,为其将来的进一步学习和实践打下基础。
3教学与实验相结合
“计算机图形学”是一门实践性很强的课程,但在目前,普遍存在的现象是“计算机图形学”课程的理论教学内容存在着一定孤立性,与上机实践联系并不紧密;因此,有必要加强学生动手能力的培养。为了确保计算机图形学课程的教学质量,应该选用目前市场上比较流行的图形开发环境作为学生的实践环境,同时也要注重课堂知识的消化,因此理论知识的对应实验也不能轻视。笔者认为应将两者有效地结合起来才能达到更好的效果。
为了能够帮助学生更好地理解理论知识,更好地提高动手能力,实验部分可以分三部分进行:
(1) 基础实验:主要完成各种理论讲解过程中学习的代码实现,编程环境为Turbo C。
(2) 提高实验:以Visual C++ 和OpenGL作为开发环境,进行实践动手能力的培养和训练。
(3) 体验实验:以3D Max作为开发环境,进行图形图像软件开发的体验实验。
基础实验可以帮助学生更好地理解基本的理论和各种基本图元的经典算法。
提高实验可以提高学生理论联系实际的能力,能够使学生更多地接触实际开发中所使用的工具和开发环境,为将来的工作打好基础。
体验实验中的3DMax是图形开发的具体产品,通过对其的使用和接触,可以让学生感知到计算机图形学的应用情况。
通过基础实验、提高实验和体验实验的结合练习,不但可以提高学生的编程能力,而且加深了学生对所学知识的了解和认识,使学生对“计算机图形学”的实际应用有了感性的认识。
4结语
“计算机图形学”是计算机学科的主要基础课程之一,但由于各种原因,学生学起来有一定的难度,这给授课的教师带来相当大的挑战。“计算机图形学”的教学是一个复杂的系统工程,它会涉及到诸多方面的问题,以上所述仅仅是笔者授课过程中得粗略总结,有不妥或不足之处,敬请大家批评指正。
参考文献:
[1] 张曦煌,杜俊俐. 计算机图形学[M]. 北京邮电大学出版社,2006,8.
[2] OpenGL体系结构审核委员会等. OpenGL编程指南(第4版)[M]. 人民邮电出版社,2005,4.
[3] 陈元琰, 张睿哲, 吴东. 计算机图形学实用技术(第2版)[M]. 清华大学出版社,2007,3.
Teaching method discussion of Computer Graphics
XUE Chun-yan
( XiamenUniversity Tan Kah Kee college)
计算机图形学课程范文6
关键词:计算机图形学;直线生成算法;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 结束语
本文主要总结了在计算机科学与技术、软件工程等相关专业《计算机图形学》课程本科教学中直线生成算法的教学体会。基于直线生成算法在本课程中的重要性,通过阐述和对比四种直线生成算法的异同,设计出了适合计算机科学与技术、软件工程等相关专业《计算机图形学》课程本科生教学的思路,并给出了相关实验课程开展的良好建议。对于《计算机图形学》课程本科教学有一定的借鉴作用。
参考文献: