• mathematica7教程 > SRT项目结项书
  • SRT项目结项书

    免费下载 下载该文档 文档格式:DOC   更新时间:2014-04-08   下载次数:0   点击次数:1
    SRT项目结项书 项目名称:解析几何图形库 指导教师:李乃华(教授) 结项时间:2007年5月 解析几何图形库结题报告 摘要: 本项目开发的解析几何图形库是针对大学数学教学中解析几何课程的.应用Visual Basic及Mathematica等软件,编写程序,将解析几何中的一些图形进行整合,并能根据参数的变化及时、恰当、形象地显示其形态的变化.在解析几何的课堂教学中,通过多媒体将其生动、形象、直观快速地展现出来,这样,能够有效地提高教学效率和教学质量. 本报告的内容包括了解析几何图形库的开发软件的学习及开发过程,还有本图形库最终所使用的相关细节. 关键词:平面几何图形 立体几何图形 Visual Basic Mathematica Abstract: The project development analytic geometry graphics library is a university mathematics teaching analytic geometry curriculum. Using Visual Basic and Mathematica software, programming, Analytic Geometry of the integrated graphics, and change the parameters of timely and appropriate, image shows the morphological changes. Analytic geometry in the classroom teaching, multimedia through its lively, vivid, visual quickly emerged, so that can effectively improve teaching efficiency and the quality of teaching. The contents of the report include analytic geometry graphics software for the development of the learning and development process. there is the ultimate graphics library used by the relevant details Keywords: plane geometric figure solid geometric figure Visual Basic Mathematica 目录 项目背景及总体方案…3 概述…3 1.2 解析几何图形库的总体介绍…3 资料的收集和整理…4 2.1 解析几何图形的整合…4 2.2 相关软件的有关命令…7 图形库的程序设计…8 平面图形的设计…8 3.1.1 平面基本图形的设计…8 3.1.2 平面特殊曲线的设计…9 3.2 空间图形的设计…9 3.2.1 空间解析几何图形的显示……………………9 3.2.2 几种特殊曲面的动态演示……………………13 解析几何图形库…14 4.1 图形库的总体界面…14 4.2 图形库的使用…16 第五章 研究体会及一些构想…16 参考文献…16 第一章 项目背景及总体方案 1.1概述 解析几何是数形结合的典型学科,其特点是用代数的方法研究几何问题.这一学科,多年来仅仅教授一些规律与步骤,从而既忽略了数学本身,也忽略了数学的价值,传统的教材与教学注重数学的抽象定义、定理、证明,而与现实结合很少,造成相当多的学生觉得数学抽象、深奥、枯燥.对数学课是学之无味,对数学敬而远之. 解析几何课程中,由于"图形"是主要对象,因此"绘制图形"成为教学过程中不可避免的环节.传统的教学模式中,黑板上"粉笔作图"费时费力,并且不能根据参数的变化及时、恰当、形象地显示其形态的变化,故而对课程的教学效果、学生对内容的理解都会产生不同程度的影响. 因此,利用先进的计算机技术,使科学的教育理念和先进的教学手段相结合,将解析几何课程教学过程中涉及的图形进行整合,通过多媒体将其生动、形象、直观快速地展现成为必然!这也是开展解析几何图形库研究项目的意义所在.该项目的研究成果能够有效地提高教学效率和教学质量,调动学生学习的积极性,同时也为课程建设服务. 蔡元培先生曾说:"数学仿佛是枯燥不过了,但是美术上的比例、节奏,全是数的关系;数学的游戏,可以引起滑稽;几何的形式,是图案美术所应有的."数学是人类文明的结晶,数学的结构、图形、布局和形式无不体现数学中美的因素.因此,我们在图形库的设计时:为了使上述设计思想得到充分体现,并激发学生的学习情趣,变枯燥为有味,启发思维寓学于乐,我们SRT研究小组根据所学知识设计并制作了解析几何图形库. 因此,基于以上实际问题及相关背景,我们对解析几何图形库进行开发.这一项目的实施不仅能丰富我们的教学手段,而且也具有一定的推广意义! 解析几何图形库的总体介绍 基于"生动、形象、直观"的设计理念,我们对解析几何图形库进行了开发设计. 图形库的总体设计分为三部分:平面图形、空间图形、典型曲面交线.平面图形部分包括:一般的平面图形和特殊的平面曲线. 空间图形包括:球面、柱面、锥面、旋转曲面、椭球面、双曲面、抛物面等.典型曲面交线包括:马鞍面、圆柱面及平面所围部分及其表面,柱面与锥面的截平面,椭球和椭圆抛物面,柱面与球面的截平面,球体与圆柱的截面等. 第二章 资料的收集和整理 2.1解析几何图形的整合 解析几何中的图形繁多而且复杂,这需要我们对其进行整合与分类.经过查阅相关文献资料,我们将其整理如下: 平面图形: 直线: Ax+By+C=0 参数形式: 二次曲线: 椭圆:参数形式: (-π<=θ<=π) 虚椭圆: 双曲线: 参数形式:(-π<=θ<=π,θ≠π/2) 点: (0,0) 两相交直线: 抛物线:参数形式:(-∞< t <∞) 两平行共轭虚直线: 两重合直线: 特殊平面曲线 等速螺线(或称阿基米德螺线): ,其中:ρ=vt, =ωt, 双曲螺线: 对数螺线: 抛物螺线: 平方倒数螺线: 帕斯卡蜗线: 心脏线: 三叶玫瑰线: 四叶玫瑰线: 八瓣玫瑰线: 十六瓣玫瑰线: 圆的渐开线: (为参数) 摆线(旋轮线) 四尖点星形线: 笛卡尔叶形线: 环索形: 蛇形曲线: 四叶形: 皮利福梅曲线: 双纽线: 空间图形 空间直线: 参数方程: 空间曲面: (1)椭圆柱面: (2)双曲柱面: (3)抛物柱面: (4)长形椭球面: (5)扁形椭球面: (6)单叶旋转双曲面: (7)双叶旋转双曲面: (8)双叶双曲面: (9)单叶双曲面: (10)椭圆抛物面: (11)双曲抛物面(马鞍面): 以上就是我们对解析几何中的部分图形作了简单的汇总,我们图形库的设计将按照以上的整合进行. 2.2相关软件的有关命令 该图形库的设计主要是应用Mathematica软件进行画图,将画好的图形,通过Visual Basic 软件将其生动、形象的展现出来. Mathematica 软件中应用画图的相关命令如下: (1) Plot[f[x],{x,min,max},选项] 功能:画出函数 随从min 到max间的图形,选项可缺省. (2) ParametricPlot[{x[t],y[t]},{t,min,max},选项] 功能:画出参数方程, 当从min 到max间的图形,选项可缺省. (3) Plot3D[f[x,y],{x,x0,x1},{y,y0,y1}] 功能:作出函数在区域上的图形. ParametricPlot3D[{x[t],y[t],z[t]},{t,t0,t1}] 功能:作出参量方程表示的曲线. ParametricPlot3D[{x[u,v],y[u,v],z[u,v]},{u,u0,u1},{v,v0,v1}] 功能:作出参量方程表示的曲面. (6) SurfaceOfRevolution[f(x),{ x,x0,x1}] 功能:作出函数沿轴旋转所得旋转面图形 (7) Animate[含t的作图表达式或程序段,{t,t0,t1,step}] 功能:制作简单的动画. 该图形库的主要设计语言为Visual Basic,整个图形库建立在Visual Basic 平台上. Visual Basic 软件中的相关命令主要是对控件的各属性值进行设置,以及循环语句的使用,具体程序设计语言见第三章的图形库的程序设计. 第三章 图形库的程序设计 3.1平面图形的设计 平面图形的设计我们主要分为两部分:平面基本图形和平面特殊曲线. 3.1.1平面基本图形的设计 平面基本图形主要设计了几何图形的最基本元素:直线、椭圆、双曲线、抛物线.通过Visual Basic中的画图命令:Pset,将图形以动态形式展现在读者面前.下面以椭圆为例,来简要说明图形的生成过程. 首先:给图形的显示一个平台,即建立一个坐标系,程序如下: Private Sub Draw_Axis() Picture1.AutoRedraw = True Picture1.Cls Dim j As Integer Dim k As Double Picture1.Scale (-10, 10)-(10, -10) Picture1.Line (-8, 0)-(8, 0) Picture1.Line (0, -8)-(0, 8) Picture1.Line (-0.2, 7.5)-(0, 8) Picture1.Line (0.2, 7.5)-(0, 8) Picture1.Line (7.5, 0.2)-(8, 0) Picture1.Line (7.5, -0.2)-(8, 0) Picture1.CurrentX = 8 Picture1.CurrentY = -1 Picture1.Print "X" Picture1.CurrentX = 1 Picture1.CurrentY = 8 Picture1.Print "Y" Picture1.CurrentX = 0.5 Picture1.CurrentY = -0.5 Picture1.Print "0" For j = -7 To 7 Step 2 Picture1.Line (j, 0.2)-(j, 0) Picture1.Line (0.2, j)-(0, j) Picture1.CurrentX = j Picture1.CurrentY = -1 Picture1.Print j Picture1.CurrentY = j Picture1.CurrentX = -1 Picture1.Print j Next j Picture1.AutoRedraw = False End Sub 其次,就是图形的生成过程,程序如下: Private Sub Command1_Click() Draw_Axis Dim i, m, pi As Double, x%, y% pi = 3.1415926 x = Val(Text1.Text) y = Val(Text2.Text) Picture1.Scale (-9, 9)-(9, -9) For i = -pi To pi Step pi / 180 Picture1.PSet (x * Cos(i), y * Sin(i)), RGB(255, 0, 200) For m = 0 To 100000 Next m Next i End Sub 作图的原理,是通过椭圆方程的参数方程形式进行的. 3.1.2 平面特殊曲线的设计 这里,我们主要对解析几何中比较典型的几种特殊曲线进行动态显示,使读者能直观生动地了解图形,其中主要有:玫瑰线,螺线,帕斯卡蜗线,心脏线,四尖点星形线,笛卡尔叶形线,蛇形曲线,双纽线,皮利福梅曲线等.同样,在这些图形的生成过程中,使用的思想都是通过曲线的参数方程来作图. 3.2 空间图形的设计 3.2.1 空间解析几何图形的显示 空间几何图形中基本包含了解析几何中所有的空间图形:球面,柱面,双曲面,抛物面.其中球面又分为:长形椭球面,扁形椭球面.柱面分为:椭圆柱面、双曲柱面、抛物柱面.双曲面分为:单叶双曲面、双叶双曲面、单叶旋转双曲面、双叶旋转双曲面.抛物面分为:椭圆抛物面、双曲抛物面. 其中大部分图片,我们是通过数学软件Mathematica编制程序将其图形显示出来,并保存为图片格式,然后在Visual Basic中通过picture控件将其显示出来.同时我们也尝试用Visual Basic对个别图形(柱面,圆环)直接编程进行显示.我们以柱面为例,来说明在程序编写过程中的一些思想与方法. 首先,我们还是要给图形的显示一个平台,即在一图片框中建立坐标系,命令如下: Private Sub Command2_Click() Draw_Axis Picture12.AutoRedraw = True Picture12.DrawWidth = 1 Picture12.Scale (-7, 13)-(7, -13) Picture12.Line (0, 0)-(7, 0), RGB(255, 0, 200) Picture12.Line (0, 0)-(0, 15), RGB(255, 0, 200) Picture12.Line (0, 0)-(-Cos(60 / 180 * 3.141592) * (13), -Sin(60 / 180 * 3.141592) * (13)), RGB(255, 0, 200) Picture12.Line (6.3, 0.2)-(6.5, 0), RGB(255, 0, 200) Picture12.Line (6.3, -0.2)-(6.5, 0), RGB(255, 0, 200) Picture12.Line (-0.05, 13.5)-(0, 14), RGB(255, 0, 200) Picture12.Line (0.05, 13.5)-(0, 14), RGB(255, 0, 200) Picture12.CurrentX = 0.05 Picture12.CurrentY = -0.2 Picture12.Print "0" Picture12.CurrentX = 6.3 Picture12.CurrentY = -0.2 Picture12.Print "y" Picture12.CurrentX = -0.2 Picture12.CurrentY = 14 Picture12.Print "x" Picture12.CurrentX = -Cos(60 / 180 * 3.141592) * 13 + 0.5 Picture12.CurrentY = -Sin(60 / 180 * 3.141592) * 13 Picture12.Print "z" For i = 0 To 6.4 Step 0.5 Picture12.Line (i, 0)-(i, 0.2), RGB(255, 0, 200) Next i For i = 0 To 13 Step 0.5 Picture12.Line (0, i)-(0.15, i), RGB(255, 0, 200) Next i For i = 0 To 13 Step 0.5 Picture12.Line (-Cos(60 / 180 * 3.141592) * i, -i * Sin(60 / 180 * 3.141592))-(-Cos(60 / 180 * 3.141592) * i, -i * Sin(60 / 180 * 3.141592) - 0.3), RGB(255, 0, 200) Next i End Sub 通过以上程序,我们建立了空间直角坐标系(三维坐标系). 在这里,我们要说明一点:三维空间直角坐标系的中心思想是:坐标变换.通过计算,将平面坐标转换为空间三维坐标,这在我们整个空间几何图形库设计过程中是重要的思想指导. 第二:编制柱面的显示程序:如下: Private Sub Command3_Click() Dim l, j, R1, x, y, a, R2, pi As Single pi = 3.1415926 R1 = 3 '半径' R2 = 0.1 l = 1 m = pi / 360 For j = -3 To 3 Step 2 For a = 0 To 2 * 3.141592 Step 4 * m Picture12.Line (j * Cos(a), j * Sin(a) - j)-(j * Cos(a + R2), j * Sin(a + R2)), RGB(20, 20, 200) Next a Next j End Sub 通过以上两步,我们可以完成柱面在平面视角下的三维效果显示. 在Visual Basic中一个重要的方法是,循环的思想.通过循环,我们可以实现,图形的动态显示. 在圆环的作图过程中,我们用到的主要思想是:通过对感光点的不同以及观察点的不同来尝试用VB语言编写程序,把三维坐标通过坐标轴旋转的思想转化为二维作图,而且根据一个特定的观察点来处理图形颜色的显示,不仅降低了编程难度,而且使我们从视觉效果上,能够较为真实的感受空间立体图形的形成与显示,其中主要程序如下: Dim i As Integer, k As Integer, m As Integer Dim km As Single, kj As Single, i0 As Single, ig As Single, v1x As Single, v2x As Single, v1y As Single, v2y As Single, v1z As Single, v2z As Single, gx As Single, gy As Single, gz As Single, cos1 As Single, cos2 As Single, col As Single, ymin As Single, ymax As Single, h As Single, dx As Integer, dy As Integer, d As Single, du As Single, dv As Single, xp As Single, r As Single, u As Single, v As Single, cx As Single, cy As Single, a As Single, b As Single, c As Single, nn As Single Dim xjd(3) As Single, x(3) As Single, y(3) As Single, z(3) As Single, xd(4) As Single, yd(4) As Single, zd(3) As Single km = 0.5: kj = 0.5: i0 = 100: ig = 255: du = 0.2999999: dv = 0.02 For u = 0# To 6.28 Step du For v = 0# To 6.28 Step dv Call sphere(u, v, 500#, x(0), y(0), z(0)) Call sphere(u, v + dv, 500#, x(1), y(1), z(1)) Call sphere(u + du, v + dv, 500#, x(2), y(2), z(2)) Call sphere(u + du, v, 500#, x(3), y(3), z(3)) For i = 0 To 3 Call revolve(0.02, 0.01, x(i), y(i), z(i), 150, 200, xd(i), yd(i), zd(i) Next i Call vector(xd, yd, zd, a, b, c) If (-c < 0) Then d = -(a * xd(0) + b * yd(0) + c * zd(0)) v1x = gx - xd(0): v1y = gy - yd(0) v1z = gz - zd(0) nn = Sqr(v1x * v1x + v1y * v1y + v1z * v1z) cos1 = (v1x * a + v1y * b + v1z * c) / nn v2x = (0 + gx) / 2 - xd(0) v2y = (0 + gy) / 2 - yd(0) v2z = (1 + gz) / 2 - zd(0) nn = Sqr(v2x * v2x + v2y * v2y + v2z * v2z) cos2 = (v2x * a + v2y * b + v2z * c) / nn col = ig * km * cos1 + ig * kj * cos2 * cos2 * cos2 + i0 If col < 0 Then col = 0 xd(4) = xd(0): yd(4) = yd(0) ymin = yd(0): ymax = yd(0) For i = 0 To 3 If (yd(i) < ymin) Then ymin = yd(i) End If If (yd(i) > ymax) Then ymax = yd(i) End If Next i For h = ymin To ymax k = 0 For m = 0 To 3 If ((h - yd(m)) * (h - yd(m + 1)) < 0) Then xjd(k) = xd(m) + (xd(m) - xd(m + 1)) * (h - yd(m)) / (yd(m) - yd(m + 1)) k = k + 1 End If Next m If k > 0 Then If (xjd(0) > xjd(1)) Then t = xjd(1): xjd(1) = xjd(0): xjd(0) = t End If For xp = xjd(0) To xjd(1) Picture17.PSet (xp, h), RGB(col + 50, col, col) Next xp End If Next h End If Next v Next u 3.2.2 几种特殊曲面的动态演示 在这里,我们主要通过几个特殊空间曲面的相交的截面图让同学们更直观地看到空间几何图形的截面的形状.这部分也是我们图形库的一个重要亮点,其中我们有通过Mathematica将一些空间图形的截面做出来,然后通过在Visual Basic中Picture的控件使其显示出来.还有一部分,我们通过一些特殊的控件使其动态的显现出来.这部分中,我们用到的主要控件是:Gif89.dll,它属于Visual Basic外的独立控件,它的主要功能是通过Gif89a2.FileName = App.Path & "\文件名.gif"命令实现对动态Gif图形的调用,来实现Visual Basic中图形的动态显示. 第四章解析几何图形库 图形库的总体界面 图形库总体界面 平面几何图形库界面 空间几何图形库界面 典型曲面相交显示界面 4.2 图形库的使用 我们在制作过程中,将此图形库制作为一个可执行程序软件,使用者只需打开安装包,选择安装程序进行安装即可使用. 第五章 研究体会及一些构想 总的来说,这个SRT项目做下来,不知不觉中,我们的独立工作能力和能动性,独立思考能力得到了比较全面的锻炼,感觉收获很大: 一、加深了对Visual Basic和Mathematica软件的应用.做这个SRT项目过程中,我们已经学过这两个软件的一些基础应用,但是,对于在解析几何图形库的开发设计上,还是有一些难度的.很多知识,如果没有这样一次实际动手机会,是很难熟练掌握的.而且很多内容,作为普通的课程学习,也许就放过去了,但实际动手就不同了,一点一滴都要实实在在. 二、培养了带着问题去主动学习的方式.完成这样一个SRT项目,极大地开拓了我们的视野.在做的过程中,我们遇到了许多困难.比如,如何动态地展现某些图形,如何做成更具人性化的人机对话平台.这些内容,在我们所学的课本上是找不到的,我们查阅了相关文献,以及在互联网上检索到一些有用的信息.这些工作,虽然繁琐,但是对我们的项目能顺利完成,起了很大的作用.在主动追求知识的道路上,我们收获到了成功,体会到了乐趣. 三、在做这个项目过程中,我们感受到了一个优秀团队的重要性.我们五名成员,按照自己的专长,负责完成相应的板块,在遇到程序设计难题时,大家互相讨论,互相研究,查阅资料,攻克了一个又一个难题. 最后我们还要谈一下这个项目的构想,我们虽然基本上完成了解析几何图形库的开发设计,但是由于能力有限,在空间图形的处理上不够理想,也许需要更加专业的软件来处理,使空间曲面能展现的更加淋漓尽致. 最后,我们要对我们的指导老师—李乃华教授表示深深的谢意,这个SRT项目能够顺利地完成,与她耐心的指导、无微不至的帮助是分不开的,谢谢! 参考文献: [1] 魏贵民 理工数学实验 2004 北京 高等教育出版社 [2] Visual Basic 程序设计简明教程 2003 北京 高等教育出版社 [3] 潘云鹤 计算机图形学 2003 北京 高等教育出版社 [4] 陆玲 计算机图形学 2006 北京 科学出版社 [5] 《电脑编程技巧与维护》杂志社 Visual Basic编程精选集锦 2003 北京 科学出版社 [6] 范幸义 计算机图形学 1997 重庆 重庆大学出版社
  • 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
  • 免费下载 DOC格式下载
  • 您可能感兴趣的
  • mathematica教程  mathematica视频教程  mathematica安装教程  mathematica教程pdf  mathematica教程下载  mathematica7注册机  mathematica9.0教程  mathematica9破解教程  mathematica教程全美  mathematica7软件下载