编程在数学教学中的应用椭圆.docx

上传人:b****7 文档编号:24004821 上传时间:2023-05-23 格式:DOCX 页数:15 大小:265.27KB
下载 相关 举报
编程在数学教学中的应用椭圆.docx_第1页
第1页 / 共15页
编程在数学教学中的应用椭圆.docx_第2页
第2页 / 共15页
编程在数学教学中的应用椭圆.docx_第3页
第3页 / 共15页
编程在数学教学中的应用椭圆.docx_第4页
第4页 / 共15页
编程在数学教学中的应用椭圆.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

编程在数学教学中的应用椭圆.docx

《编程在数学教学中的应用椭圆.docx》由会员分享,可在线阅读,更多相关《编程在数学教学中的应用椭圆.docx(15页珍藏版)》请在冰豆网上搜索。

编程在数学教学中的应用椭圆.docx

编程在数学教学中的应用椭圆

编程在数学教学中的应用

----用Authorware制作椭圆曲线动画

鸡西矿业集团师范学校殷光临

作为一门基础教育主要学科--数学,教学手段似乎就是那么单调,黑板加粉笔,偶尔加一些模型。

由于学科自身的特点,的确不如某些学科形象、生动、具体,难怪学生们学起来有点枯燥无味,从而直接影响学生学习积极性。

为此数学老师也不得不苦思冥想,不断探索行之有效的教学方法,然而往往是美中不足,事与愿违。

通过计算机辅助教学的实践,深深体会到多媒体技术给数学教学带来了一片生机,值得数学教师积极推广。

在讲授圆锥曲线这部分内容时,如果像课本介绍的那样用一段细绳来演示椭圆的形成过程或用一条拉链来演示双曲线的形成过程,不但操作起来很困难,而且效果不理想。

如果采用多媒体辅助教学,比如用某一语言如VB、Authorware、C语言等来编程制作动画,可以生动、形象、直观地演示椭圆与双曲线等的形成过程,可以大大激发学生的学习兴趣,调动学生的积极性。

下面就以用Authorware编程制作椭圆形成过程动画为例,说明用编程来制作曲线动画的思路和方法。

一.设计思路

图1,F1(-c,0)、F2(c,0)是平面直角坐标系Oxy中的两个定点,即椭圆的焦点,坐标原点O是线段|F1F2|的中点,M(x,y)为椭圆上一动点。

以F2为圆心做一半径等于|MF1|+|MF2|=|F2P|(即定长2a)图1

的固定不动的圆F2,圆M是以动点M为圆心、|MF1|为半径并且总是与圆F2相内切(切点为P(m,n))的动圆。

这样可直观地观察到动点M在运动过程中,始终有|MF1|+|MF2|=|F2P|,既生动又直观地演示出了椭圆的形成过程。

二.编程前的准备工作

在编程前,我们首先来了解计算机屏幕绘图坐标情况。

由于计算机屏幕或程序运行窗口的左上角为坐标原点,水平向右为X轴正向,垂直向下为Y轴正向,这样就需要在编程作图时要进行坐标平移和方向调整,否则所做图形无法正常显示。

其次,我们要把编程时用到的一些参数:

长半轴a与短半轴b的值、焦点F1与F2、动点M与动点P的坐标及圆M的半径或它们的表达式准备好。

其中长半轴a与短半轴b的值可以自己确定一组数值,这样就可得到c的值;又可知自变量x的值在区间[-a,a]内变化,于是可由椭圆的标准方程得到y=SQRT((1-x*x/a/a)*b*b);这里SQRT()是求算术平方根的函数。

点P的坐标可由圆F2的方程与直线F2P的方程列方程组解出:

解得m=c+2*a*(x-c)/(SQRT((x-c)*(x-c)+y*y)),直接由直线F2P的方程变化得到n=y*(m-c)/(x-c),不需要再把m的值代入,中间的计算都由计算机自动完成;圆M的半径r=|MF1|=SQRT((x+c)*(x+c)+y*y)。

三.程序设计流程

1.显示图标的设置

现在我们就可以编写程序了,如右图,在一级流程线(即层1)上分别拖入显示图标xoy、显示图标mp、计算图标init、计算图标line&circle、等待图标、擦除图标erase和三个群组。

在显示图标xoy内输入x轴、y轴、坐标原点O、焦点F1与F2的名称,并调整好它们相应的位置,最好在程序调试运行时调整;在显示图标mp内输入动点和切点的名称,并调整好它们的位置。

2.变量初始化与绘制平面直角坐标系

双击打开计算图标init,输入如图3所示的内容:

ox:

=256与oy:

=160

图3

是平移坐标原点,这个点由程序运行(即演示)窗口中心位置确定,可通过菜单“修改—文件—属性—大小”来调整程序运行窗口的大小;setline

(2)用来设置画线的箭头方向,从起点指向终点;line(2,ox-200,oy,ox+250,oy)与Line(2,ox,oy+150,ox,oy-160)是以( ox,oy)为原点画出x轴与y轴。

函数Line(pensize,x1,y1,x2,y2)的作用是画直线,pensize为线粗细,自(x1,y1)画至(x2,y2);a:

=75与b:

=40是由自己确定的长半轴与短半轴的值,可根据需要调整a与b的大小。

c的值就可由c:

=SQRT(a*a-b*b)得出;dt=0.4是用来设置循环控制变量x的增量的,改变dt的值可调节点M移动的速度;SetFrame(1,RGB(255,0,0))用来设置画线的颜色为红色。

SetFrame(flag[,color])为绘图函数,设置画线的颜色或图形边框的颜色,flag为TRUE(或非0)时填充,为FALSE(或0)时不填充。

RGB(R,G,B)函数将红(red)绿(green)蓝(blue)三色值合成为某一颜色,R、G、B的色值范围为0到255;Circle(4,-c+4+ox,4+oy,-c-4+ox,-4+oy)与Circle(4,c+4+ox,4+oy,c-4+ox,-4+oy)的作用是画出两个焦点,且为红色。

横坐标与纵坐标分别加上ox与oy是为了把坐标平移。

Circle(pensize,x1,y1,x2,y2)为画圆函数,在左上角坐标(x1,y1)与右下角坐标(x2,y2)所构成的方框内画内切圆(或椭圆),参数pensize为线的粗细;函数SetFrame(1,RGB(0,0,0))的作用是把画线颜色再设置为黑色;Circle(1,c+2*a+ox,2*a+oy,c-2*a+ox,-2*a+oy)的作用是画出以F2为圆心以2a为半径的定圆。

3.线段|MF1|及|F2P|与动圆M的绘制

双击打开计算图标line&circle,输入如图4所示内容,x:

=a-40(可根

图4

据自己需要设定)给出了自变量x的一个初始值;因为我们习惯取垂直向上方向为平面直角坐标系xoy的y轴的正向,跟编程作图的y轴正向相反,所以y:

=-SQRT((1-x*x/a/a)*b*b)才能使得点M(x,y)在平面直角坐标系xoy的一、二象限内或在(0,b)处。

要使得点M(x,y)在三、四象限内或在(0,-b)处,就得使y:

=SQRT((1-x*x/a/a)*b*b);r:

=SQRT((x+c)*(x+c)+y*y)计算的是动圆M的半径|MF1|;Circle(1,x+r+ox,y+r+oy,x-r+ox,y-r+oy)是以M(x,y)为圆心、r为半径画圆;m:

=c+2*a*(x-c)/(SQRT((x-c)*(x-c)+y*y))与n:

=y*(m-c)/(x-c)求的是点P(m,n)的坐标;SetLine(0)设置画线为无箭头方式;SetFrame(1,RGB(0,0,255))设置画线为蓝色;Line(2,m+ox,n+oy,c+ox,oy)用来画出线段|F2P|;Line(2,x+ox,y+oy,-c+ox,oy)用来画出线段|MF1|;SetFrame(1,RGB(255,0,0))设置画线颜色为红色;图5Circle(4,x+4+ox,y+4+oy,x-4+ox,y-4+oy)画出点M;SetFrame(1,RGB(0,0,0))设置画线为黑色。

至此,程序的运行结果如图5所示。

4.等待图标与擦除图标的设置

双击打开等待图标wait,如图6,出现等待图标的属性对话框。

把“事件”选项中的“单击鼠标”与“按任意键”选中。

此项设置的作用是:

程序先运行流程线上等待图标前面的内容,直到单击鼠标或按任意键后程序继续运行。

图6

双击擦除图标erase,出现如图7所示的属性对话框,在“图标”选项的列表中列有计算图标line&circle和显示图标mp,表示擦除计算图标line&circle中所画的线段|F2P|、|MF1|与圆M和显示图标mp中点M与点P的名称。

图7

5.椭圆上半部分在x∈[-a,a-40]区间上的动画制作

群组up1的作用是画出椭圆上半部分在x∈[-a,a-40]区间上的一段弧线。

双击打开群组up1,出现二级流程设计窗口(层2),在up1的二级流程线上拖入计算图标x=a-40,再拖入判断图标up1,在它的图8

右下方下挂计算图标upellipse1、计算图标upline1、显示图标upm1和显示图标upp1,如图8。

图9

在计算图标x=a-40内输入“x:

=a-40”,给出循环控制变量x的初值,如图9。

双击打开判断图标up1的属性对话框,如图10,在“重复”选项的下

图10

拉列表中选择“直到判断为真”,并在文本输入区内输入循环结束的条件“x<-a”。

双击打开判断图标up1的下挂计算图标upellipse1,输入如图11所示

图11

的内容:

每次运行这个分支,x都被减去一次dt,y就得到相对应的一个值,Circle(1,x+1+ox,y+1+oy,x-1+ox,y-1+oy)函数就会在(x,y)平移后的位置(x+ox,y+oy)处画出一个点。

要把这些点保留形成x在[-a,a-40]区间上椭圆上半部分的一段弧线,就需要设置下挂计算图标upellipse1判断路径属性对话框,图12

如图12,双击鼠标所指位置,打开upellipse1判断路径属性对话框,在“删除内容”下拉列表中选择“不擦除”,如图13。

最终总会有x<-a为真,循

图13

环结束。

双击打开判断图标up1的下挂计算图标upline1,输入如图14所示内

图14

容。

其中变量x、y的值由内存中获得,实际上是本次循环在计算图标upellipse1中所确定的x、y的值。

在[-a,a-40]区间内,每一个不同的x的值,都有与之相对应的动圆M的半径r的一个值,这样就可以由Circle(1,x+r+ox,y+r+oy,x-r+ox,y-r+oy)画出一个与x相对应的以r为半径、以(x+ox,y+oy)为圆心的圆。

每一次执行循环,显示一个圆M,在当前循环之前的圆M应该被擦除,就需要设置下挂计算图标upline1判断路径属性对话框,在“删除内容”下拉列表中选择“在下个选择之前”;同样,在[-a,a-40]区间内,对于不同的x,都有相对应的点P(m,n),就可由函数Line(2,m+ox,n+oy,c+ox,oy)画出线段|F2P|,由Line(2,x+ox,y+oy,-c+ox,oy)画出线段|MF1|;函数Circle(4,x+4+ox,y+4+oy,x-4+ox,y-4+oy)是为了画出红色的动点M。

点M在运动的同时,还需要标记它的名称,就得在判断图标up1下挂的显示图标upm1内输入“M”,并在显示图标upm1上点击右键选择弹出菜单中的“属性”选项,出现如图16所示显示图标属性对话框。

“版面布局”选项卡中,在“位置”选项的下拉列表中选择“在某个区域中”,

图16

“可移动性”选项的下拉列表中选择“在屏幕上”;选中“出发点”,默认的x、y的值均为0,不需改变,然后在演示窗口中把“M”拖到演示窗口的左上角;选中“结束点”,把x、y的值分别改为自己所设演示窗口分辨率的大小,然后在演示窗口内把M拖到演示窗口的右下角。

这时我们可看到与演示窗口大小相当的一个矩形,这个矩形就是动点的名称“M”的可移动区域;选中“初始值”,在横坐标的文本输入框内输入“x+ox”,在纵坐标的文本输入框内输入“y+oy-5”,-5是为了使动点与名称不重合;打开判断图标up1的下挂显示图标upm1判断路径属性对话框,如图17,在“删除内容”的下拉列表中选择“在退出之前”,经过以上的设置之后,动点的名称“M”就紧随动点运动。

图17

判断图标up1下挂的显示图标upp1内输入的是动圆与定圆切点的名称“P”,它与动点的名称“M”设置方法与同,只不过切点的坐标是(m,n),需要在“初始值”的横坐标文本输入框内输入“m+ox”,纵坐标的文本输入框内输入“n+oy-5”,如图18。

图18

6.椭圆下半部分在x∈[-a,a]区间上的动画制作

图19,群组down要完成的是画出椭圆的下半部分弧线,即在区间[-a,a]上的一段弧线。

群组down与群组up1具有相同的程序结构,除各图标的

图19

名称有别外,其中只有三处设置不同:

其一,循环控制变量x的初值不同,群组down中循环控制变量x的初值是-a,如图20,即计算图标“x=-a”

图20

内所输入的内容“x:

=-a”;其二,循环的结束条件不同,群组down的循环结束条件是“x>a”,如图21,亦即判断图标down的属性对话框中“重

图21

复”选项的文本输入区内所输入的“x>a”;其三,因为群组down所画的是椭圆下半部分弧线,如图22,所以在计算图标downellipse中输入的y值应是“y:

=SQRT((1-x*x/a/a)*b*b)”,而不能在函数SQRT()前面加“-”号;x的值要从-a逐渐增加到a,所以应该有“x:

=x+dt”,而不是“x:

=x-dt”。

图22

7.椭圆上半部分在x∈[a-40,a]区间上的动画制作

图23,群组up2要完成的是画椭圆在x∈[a-40,a]区间上的一段弧线。

图23

群组up2的程序结构除了比群组up1多出流程线上的最后三个图标外,其余的程序结构完全相同,只是各图标的名称有别。

在相同的这部分结构当中,只有两处的设置有差别:

其一,循环控制变量x的初值不同,也就是

图24

在计算图标x=a中输入的是“x:

=a”;其二,循环结束的条件不同,也就是在判断图标up2的的属性对话框中“重复”选项的文本输入区输入的是“x

如果程序运行到群组up2中的计算图标endline之前停止,结束了判断图标up2的循环,那么程序运行所显示的效果如图25所示,这时如果我们还希望显示出红色的点M、点P、线段|MF1|、线段|F2P|和圆M,那么就要在群组up2的二级流程线上拖入计算图标endline,显示图标endm和显示图标endp。

图25

双击打开计算图标endline,输入如图26所内容。

计算图标endline中

图26

的内容实际上和计算图标upline2中的内容一样,只不过是去掉了计算图标upline2中不必保留的计算圆M半径和P(m,n)坐标的部分。

显示图标endm和显示图标endp中显示的是点M与点P的名称,实

际上可以直接把判断图标up2的下挂显示图标upm2与显示图标upp2分别复制然后粘帖到计算图标endline下方的流程线上即可。

这样程序运行结束就会出现图1所示的效果。

实际上,我们用两个循环就可以画出一个完整的椭圆,而为什么把画上半部分椭圆弧线的循环拆分成了两个群组up1和up2呢?

如果不这样,动点M就会从x轴上的(a,0)点开始画椭圆,画完整个椭圆又会在(a,0)点停止,线段|MF1|、线段|F2P|都与x轴重合,出现如图27所示的效果。

图27

把(a,0)点作为点M运动的起点与终点,不易于观察|MF1|、|MF2|、|F2P|之间的关系,所以点M运动的起点与终点要取椭圆上半部分(也可以是下半部分)弧线上的某一点,这就需要把画椭圆上半部分弧线的循环分成两个群组up1和up2。

至此,椭圆形成过程动画设计完成,用类似的方法也可以制作双曲线的形成过程动画以及其他曲线动画。

用编程制作曲线动画的方法来辅助数学教学,在教学过程中确实收到了良好的效果,激发了学生们的学习兴趣。

多媒体技术与数学教学的有机结合,给数学教学注入了新鲜空气,只要我们大家共同努力,去研究、去开发的话,数学教学的明天会更美好!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1