基于SCILAB与Tcl-Tk构建中学几何教学演示平台
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于SCILAB与Tcl/Tk构建中学几何教学演示平台摘要:文章是基于开源科学软件scilab与tcl/tk构建的中学几何演示平台。scilab是开源软件,有windows版本,也有linux 版本,用户可以自由下载,可以在任何一台电脑上使用,不存在任何使用盗版软件的情况发生。平台的使用情况表明,该平台具有简单易用,提高教学效率等优点。此外也可以对此平台进行二次开发,并受知识产权保护。
关键词:scilab tcl/tk;解析几何;中学数学教学
中图分类号:tp319 文献标志码:b
文章编号:1673-8454(2012)24-0080-03
引言
在中学几何特别是解析几何教学中,各种曲线、曲面的概念都离不开图形。通过曲线或曲面各种参数的动态变化来考查学生的题目经常出现在高考的压轴题中。教师在课堂上讲解这类知识时,基本上都是采用传统的书本讲授、用黑板进行图形展示的方法,很难将各种曲线与曲面的变化具体生动地表现出来,而如果要在黑板上绘制这些图形又会费时费力,教学效果不理想,也不利于学生空间想像能力的培养。[1]
一、开发平台所用的软件
scilab是开源的计算机软件,可以解决中学的解析几何教学过程中所有的计算问题,而且scilab是一个开放的编程环境,具备与多种编程语言的编程接口(c,c++,tcl/tk)。[2] 本文正是使
用tcl/tk构建出很好的用户交互界面,用户可以很容易地对所要作的图形的参数进行静态与动态调整。软件运用于ubuntu linux 系统上,完全合法且免费。
1.scilab简介
scilab 是由法国国家信息、自动化研究院(inria)的科学家们开发的“开放源码”软件。scilab 一词来源于英文“scientific laboratory”(科学实验室)词头的合并。
与matlab类似,scilab也是一种科学工程计算软件,其数据类型丰富,可以很方便地实现各种矩阵运算与图形显示,能应用于科学计算、数学建模、信号处理、决策优化、线性/非线性控制等。它还提供可以满足不同工程与科学需要的平台,例如scicos、信号处理平台、图与网络平台等。可以说,就基本的功能如科学计算、矩阵处理及图形显示而言,matlab能完成的工作scilab都可以实现。
目前,scilab除了windows与nt版本外,还有unix或linux 下的版本。
作为开放源码的软件,scilab的源代码、用户手册及二进制的可执行文件都是免费的,公布于inria的网站上(中法实验室已建立其镜像网站),可以直接下载。用户不仅可以在scilab的许可证条件下自由使用该软件,还可以根据需要修改源代码,使之更加符合自身需要。[2]
2.tcl/tk简介
tcl(tool command language)是一种脚本语言,是基于字符串的命令语言,同时也是一种解释语言,不需要编译和连接,由john ousterhout创建,具有开发周期短,效率高等特点。因此tcl经常被用于快速原型开发、脚本编程、gui和测试等方面。tk 是tcl的一个扩展套件,它提供了各种os平台下的图形用户界面gui。
如果从下载已经编译好的软件包,则scilab 已经内装了tcl/tk,就不需要安装tcl/tk了。
二、构建中学几何演示平台的三个主要步骤
1.平台主界面
平台主界面如图1所示,主要是选择绘制图形的类型与主要参数的设置。
主界面下半部分为两个列表,分别显示立体几何与平面解析几何两个大类,两个大类再细分成所要作图形的类型。当双击选择了某一类型后,主界面的说明文档部分则会显示用户所选择类型的具体操作步骤,以及在操作过程中需要注意的一些地方。当用户阅读完说明文档后,点选apply 按钮,即可进入到参数选择与赋值界面。
主界面还提供有一个菜单栏,用户可以通过对菜单栏的操作,依据各人的喜好,修改一些参数,如字体、按钮的类型以及一些参考范例。
2.参数选择与交互界面(图2)
此界面由两个子类组成,一个是滑块,另一个是赋值输入框。图2中a与b的值通过滑块或者输入框都可以进行调整,且是同步的。当所要求的值是确定的,就由输入框直接输入,如果是动态的则由滑块调节。因为滑块有最大值与最小值的区间限制,可以通过点击图2的option按钮,弹出图3所示的设置界面,这样就可以对a与b的最大值与最小值进行设置了。通过调节滑块,可以动态的调整参数,使得参数与scialb进了通信,从而达到动态调整图形的目的。
3.构建几何图形scilab函数库
对于中学出现过的几何函数,用scilab软件分别对其建模,每个演示图形以一个可以独立运行的脚本文件存放,后缀名为.sci,并统一存放在同一个文件夹下,方便tcl/tk调用。调用时,可以使用“scilabeval +所调用脚本的文件名”语句来实现。[4]
三、案例
以考试中常考查的直线、圆与椭圆的相互位置关系为例进行说明。
首先点选主界面列表框里的“直线,圆与椭圆”选项,教学平台会调用scilab脚本loader_circle_voal_line.sce执行:tcl_setvar(”r”,”1”);tcl_setvar(”b”,”0”);
tcl_setvar(”a”,”0”);//对圆的参数初如化
label1=[‘椭圆横坐标:’;’椭圆纵坐标:’;’参数a:’;’
参数b’;];
b=x_mdialog([‘请输入相对应的值’;],label1,
[‘0’;’0’;’4’;’2’]);
xx=evstr(b(1));yy=evstr(b(2));
aa=evstr(b(3));bb=evstr(b(4));//取得椭圆参数
label2=[‘斜率k:’;’截距b:’;]
c=x_mdialog([‘请输入相应值’;],label2,
[‘-0.5’;’1’]);//获取直线参数
k=evstr(c(1));b1=evstr(c(2));//取得直线参数,并将其数值化
tcl_evalfile(”operate.tcl”)
//打开交互界面,对圆进行操作
exec(”circle_oval_line.sci”);//调用几何图形scilab 函数库相对应的脚本
此时,scilab就会执行circle_oval_line.sci:
function []=circle_oval_line()//设定函数名global(”a”,”b”,”r”);//定义全局变量
xset(’pixmap’,1)
//开启pixmp,从而使画面不闪烁
r_new=evstr(tcl_getvar(”r”));
a_new=evstr(tcl_getvar(”a”));