您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > Matlab+在“计算机图形学”教学中的应用
*2014年9月第20卷第3期安庆师范学院学报(自然科学版)JournalofAnqingTeachersCollege(NaturalScienceEdition)Sept.2014Vol.20No.3Matlab在“计算机图形学”教学中的应用陈素根(安庆师范学院数学与计算科学学院,安徽安庆246133)摘要:结合Matlab在图形表示、图形绘制方面的功能和信息与计算科学专业的培养目标及教学实际情况,将Mat-lab引入到计算机图形学教学中,通过在计算机图形学课堂教学、实验教学及学生实验设计等环节中引入Matlab,学生更易理解并掌握图形学基本理论和原理,学生实验设计成果表明教学效果良好。关键词:Matlab;计算机图形学;教学设计;可视化中图分类号:TP317文献标识码:A文章编号:1007-4260(2014)03-0131-04计算机图形学是研究怎样利用计算机来显示、生成和处理图形的原理、方法和技术的一门学科,也是计算机及相关专业的一门重要的专业选修课[1-2]。该课程开设的目的在于使学生掌握计算机图形生成与处理技术的基础知识、基本原理和方法。在计算机图形学教学过程中发现,该课程理论难度大、实践性强,极易造成教学低效、学生厌学的不良现象,如何激发学生学习的热情和提高教学效率是值得思考的问题。VisualC++和OpenGL是目前国内高校计算机图形学实验教学使用的主要编程工具[3-4],然而,在讲授计算机图形学课程的过程中发现,虽然信息与计算科学专业的学生普遍具有一定的数学知识和简单的编程基础,但对VisualC++和OpenGL程序设计掌握的不是很好。所以,要想在有限的教学实验时间内利用这么复杂的编程工具,无论对学生还是教师都是很大的挑战。庆幸的是,Matlab作为当前应用最广泛的科学与工程计算软件之一,它提供了基于矩阵的三维绘制函数,在图形窗口上和语言中都提供了变换视点等功能,可以直观地从各个角度观察绘制出三维物体,其在计算机图形图像处理上已显示出了强大的计算及可视化功能[5-6],近年来,关于计算机图形学教学改革和Matlab在图形学中的应用的研究也有很多[7-8]。因此,将Matlab引入到信息与计算科学专业“计算机图形学”课程教学中,有利于学生掌握基本的图形生成原理及算法,提高教学效果。1基于Matlab的图形表示与绘制1.1基本图形的表示在二维图形系统中将基本图形元素称为图素或图元,在三维图形系统中称为体素,常见的基本图形元素包括点、线、面、体等。二维图形绘制:line函数在当前坐标系中绘制直线段,rectangle函数绘制矩形、椭圆与圆,patch函数绘制多边形,plot函数与fplot函数绘制平面曲线;三维图形的绘制:plot3函数绘制三维空间中的点和曲线,patch函数绘制网格图形和表面图形,mesh函数绘制网格曲面,surf函数绘制表面曲面。1.2非规则对象的表示非规则对象是指不能用欧氏几何加以描述的对象,如山、水、树、草、云等自然界丰富多彩的对象,其中分形几何方法是描述自然景物和自然现象的重要方法之一。通过简单迭代编程,即可绘制各种分形图形,如雪花曲线、分形树等。*收稿日期:2013-02-17基金项目:安庆师范学院教学研究项目资助。作者简介:陈素根,男,安徽当涂人,硕士,在读博士,安庆师范学院数学与计算科学学院讲师,研究方向为CAGD&CG,从事数学分析与计算机图形学教学。1.3曲线曲面的绘制曲线与曲面是计算机图形学中重要的研究对象,是计算机绘图与动画技术的核心要素。曲线绘制:(1)interpl函数实现一维数据插值,interp2函数实现二维数据插值,interp3函数实现三维数据插值,ployfit函数实现最小二乘多项式曲线拟合,spline函数实现三次样条插值。(2)常见曲线有Hermite曲线、Bézier曲线、B样条曲线。曲面绘制有:cylinder函数绘制柱体或台体,sphere函数生成球体,ellipsoid函数绘制椭球体。常见曲面有Bézier曲面、B样条曲面、NURBS曲面。1.4真实感图形的绘制真实感图形绘制是指通过综合利用数学、物理学、计算机以及心理学等知识在计算机图形输出设备上绘制出能够以假乱真的美丽景象。Mat-lab提供了关于光照模型、纹理映射、实时消隐等技术支持,很方便用于真实感图形的绘制。2Matlab应用于计算机图形学教学通过将Matlab引入到计算机图形学的教学中,学生可以很直观地理解图形学中图形生成的基本原理和算法。在课堂教学过程中,注重理论原理讲述并利用Matlab及时显示效果;在实验教学过程中,注重基本命令和编程思想的讲述,让理论与实际完美结合;在课程教学之余,鼓励学生发挥个人能力,动手编程与设计。以曲线曲面造型为例,从课堂教学设计、实验教学设计和学生实验设计三个方面举例说明。2.1课堂教学设计课堂教学对于任何一门课程来说都是非常重要的,只有设计好课堂教学,才能让学生深刻理解图形学的基本概念、基本原理和理论。曲线曲面造型是计算机图形学中重要内容之一,Bézier曲线和B样条曲线由于结构简单直观而成为曲线设计常用方法之一。定义1给定4个控制顶点P0,P1,P2,P3和3次Bernstein基函数Bi,3(t),t∈[0,1],i=0,1,2,3,则3次Bézier曲线定义为p(t)=P0•B03(t)+P1•B13(t)+P2•B23(t)+P3•B33(t),其中,B03(t)=(1-t)3,B13(t)=3t(1-t)2,B23(t)=3t2(1-t),B33(t)=t3。定义2给定4个控制顶点Q0,Q1,Q2,Q3和3次均匀B样条基函数bi,3(t),t∈[0,1],i=0,1,2,3,则3次B样条曲线定义为q(t)=Q0•b03(t)+Q1•b13(t)+Q2•b23(t)+Q3•b33(t),其中,b03(t)=(1-t)3/6,b13(t)=(3t3-6t2+4)/6,b23(t)=(-3t3+3t2+3t+1)/6,b33(t)=t3/6。从定义1和定义2不难发现,3次Bézier曲线和3次均匀B样条曲线的定义在形式上是非常相似的,主要差别体现在基函数的不同。所以,为了研究曲线的性质,首先要弄清楚基函数的性质。然而,对于复杂的数学推导以及抽象的性质直接理解是比较困难的,可以借助Matlab画出基函数图形,直接从图形观察,学生可以轻松的理解Bernstein基函数的很多性质,如非负性、规范性、对称性等,进而可以理解曲线的相关性质,图1给出了3次Bernstein基函数图形。下面简单给出Bernstein基函数绘制代码:Cleart=0:0.01:1;B03=(1-t).^3;B13=3*t.*(1-t).^2;B23=3*t.^2.*(1-t);B33=t.^3;%基函数plot(t,B03,t,B13,t,B23,t,B33,'Line-Width',2);holdon%绘制3次Bernstein基函数在教学过程中,结合上述代码介绍线型、线宽和颜色的使用,如曲线的线型有实线(-)、虚线(--)、点划线(-.)和点线(:)等;曲线颜色有红色(r)、绿色(g)、蓝色(b)和黑色(k)等。类似地可以绘制3次均匀B样条基函数,图2给出了3次均匀B样条基函数图形。在此基础上,再给出详细的数学推导过程和其他性质,如端点性质、凸包性等。再利用Matlab画出曲线图形,观察图形加深对曲线性质的理解,图3给出了3次Bézier曲线的图形,图4给出了3次均匀B样条曲线的图形。2.2实验教学设计实验教学对于计算机图形学来说也是非常重要的,它是课堂教学的延续,更是对基本概念、基本原理和理论深入理解的过程,所以设计好实验教学,才能让学生深刻理解图形学的基本概念、基•231•安庆师范学院学报(自然科学版)2014年本原理和理论。在实验教学中,可以通过控制顶点对曲线的形状进行调节以及通过曲线拼接实现图形的设计,真正做到理论联系实际,学生才可以对学习感兴趣,主动动手实践,提高编程能力。为了更好地理解控制顶点对曲线形状的调节作用,图5给出了控制顶点对Bézier曲线形状的影响,在此介绍plot函数作图时标记参数的使用。下面简单给出3次Bézier曲线及控制多边形绘制代码:图13次Bernstein基函数图形图23次均匀B样条基函数图形图33次Bézier曲线图形图43次均匀B样条曲线图形图5控制顶点对Bézier曲线形状调节图6Bézier曲线拼接效果图Cleart=0:0.01:1;B03=(1-t).^3;B13=3*t.*(1-t).^2;B23=3*t.^2.*(1-t);B33=t.^3;%基函数P=[1234;1332];%控制顶点x=P(1,1)*B03+P(1,2)*B13+P(1,3)*B23+P(1,4)*B33;y=P(2,1)*B03+P(2,2)*B13+P(2,3)*B23+P(2,4)*B33;plot(P(1,:),P(2,:),'o',P(1,:),P(2,:),'k-','LineWidth',1);holdon%绘制控制顶点和控制多边形plot(x,y,'k-','LineWidth',2);holdon%绘制3次Bézier曲线然后通过不断修改控制顶点P,并利用线型和标记进行区分,很容易看出控制顶点对曲线形状的调控作用(见图5)。同时,稍微修改上述代码即可绘制3次均匀B样条曲线图形(见图4)。在学生可以顺利绘制基本曲线图形以后,对上述代码进行修改,并结合曲线拼接连续性条件就可以曲线拼接作图了,图6给出了Bézier曲线拼接的效果图。通过这样的设计进行讲解,可以帮助•331•第3期陈素根:Matlab在“计算机图形学”教学中的应用学生进一步理解曲线的性质,也有利于学生根据自己的兴趣设计出各种图形。2.3学生实验设计经过良好的课堂教学与实验教学设计,学生可以更好的理解和掌握计算机图形学的原理与算法,鼓励学生充分发挥个人的能力,让他们动手编程设计自己感兴趣的图形,并安排时间集中点评与讨论。图7给出了学生设计的部分作品,图7(a)为一个卡通人物头像,图7(b)为一把雨伞实物图,图7(c)为一把吉他实物图。对于图7(a),利用曲线绘制头型、发型、脸型、眉毛等,再利用画点、填充等进行点缀,这样使图像显得可爱;对于图7(b),利用线型、线宽作图绘制伞柄,利用曲面绘制伞面,再简单地进行光照处理,这样图形更具有真实感;对于图7(c),利用曲线绘制吉他外形,再利用颜色、线宽等进行局部绘制,这样使图形与实物更神似。从这些作品可以看出,学生的想象力是丰富多彩的,通过集中交流与讨论,鼓励每一个学生参与到亲自动手设计活动中来,这样不仅可以与他们个人兴趣爱好相结合,还可以让他们更加留意身边的实物,更好地发挥主观能动性,在愉悦的心情中学习知识和提高能力。图7学生设计部分作品3结束语本文针对将Matlab应用到计算机图形学课堂教学与实验教学进行了讨论,以曲线曲面为例介绍了Matlab在计算机图形学中的应用。从中可以看出,采用Matlab作为计算机图形学课堂教学和实验教学的程序设计工具,具有程序简单、显示方便等优点,有利于学生更好的理解算法原理和激发学生的学习兴趣,提高教学质量和水平。如何设计好课堂教学与实验教学过程,充分利用Matlab非常强大的功能来帮助学生更好的学习计算机图形学,是值得思考与探索的问题。参考文献:[1]DonaldHearnM,PaulineBaker著.蔡士杰,宋继强,蔡敏译.计算机图形学[M].北京:电子工业出版社,2005:1-63.[2]陆枫,何云峰.计算机图形学基础(第2版)[M].北京:电子工业出版社,2008:1-316.[3]周进,朱训林,张宏林.VisualC++实用教程[M].北京:人民邮电出版社,2008:1-280.[4]李军,许波.OpenGL编程指南[M].北京:机械工业出版社,2010:1-519.[5]于万波.基于MATLAB的计算机图形学与动画技术[M].北京:清华大学出版社,2007:1-151.[
本文标题:Matlab+在“计算机图形学”教学中的应用
链接地址:https://www.777doc.com/doc-1798587 .html