几何构建3_基于SCILAB与TclTk构建中学几何教学的方式分析

基于SCILAB与TclTk构建中学几何教学的方式分析

基于SCILAB与TclTk构建中学几何教学的方式分析 引言 在中学几何特别是解析几何教学中,各种曲线、曲面的 概念都离不开图形。通过曲线或曲面各种参数的动态变化来 考查学生的题目经常出现在高考的压轴题中。教师在课堂上 讲解这类知识时,基本上都是采用传统的书本讲授、用黑板 进行图形展示的方法,很难将各种曲线与曲面的变化具体生 动地表现出来,而如果要在黑板上绘制这些图形又会费时费 力,教学效果不理想,也不利于学生空间想像能力的培养。

[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"));

b_new=evstr(TCL_GetVar("b"));

//从tcl脚本中取得相应值 if {a<>a_new | b<>b_new | r<>r_new} //判断值是否改变 then a=a_new;
b=b_new;
r=r_new;

//值有改变,则取代新值 clf();

//清除图像 t=0:0.01:2*%pi;

//确定取值范围x=r*cos(t)+a;
y=r*sin(t)+b;

//绘制圆的 参数方程 xx=aa*cos(t)+xx;
yy=bb*sin(t)+yy;

//绘制椭圆的参数方程 plot2d(xx,yy,rect=[-10,-10,10,10],axesflag=5);

plot2d(x,y,rect=[-10,-10,10,10],axesflag=5);

//做出圆与椭圆 x1=-10:0.1:10;

plot2d(x1,k*x1+b1,rect=[-10,-10,10,10], axesflag=5);

//做出直线 xset("wshow");

xset("wwpc");

//设定 图形参数 xset("pixmap",0) //关闭pixmp endfunction错误!未定义书签。

至此,函数function(circle_oval_line)被加载到内 存上。

之后,交互界面与函数function(circle_oval_line) 数据相互连通,通过对交互界面的调节,很快可以得出最终 的图形,如图4。

从交互界面可以知道此圆心的坐标大致为(0.4,0.5)。

结束语 SCILAB具有开放、自由和共享的特点,为素质教育的学 生提供了很好的平台去思考与创新。从此平台的实际使用情况看,该平台是中学几何特别是解析几何教学的一个有效的 教学工具。解析几何抽像的图形公式可以生动形象地展示出 来,激发了学生的学习兴趣。SCILAB语言不同于其它语言, 其具有简单易学的特点,将SCILAB运行于LINUX系统中,通 过鼓励学生自己尝试编写相关的图形函数,培养学生的创新 能力和使用正版软件和尊重知识产权的意识。

参考文献:
[1]王凤蕊,王文宏,程桂芳,基于SCILAB构建中学几 何教学演示系统[J].中国教育信息化(基础教育),2007(4). [2] SCILAB主页. [3] John K.Ousterhout,&Ken Jones著,张元章 译.Tcl/Tk入门经典[M].北京:清华大学出社,2007. [4]Campbell.Stephen L, Chancelier Jean-Philippe, Nikoukhah Ramine著,秦世引等 译.Scilab/Scicos在建模与仿真 中的应用[M].北京:北京邮电大学出版社,2007. www.scilab.org www.scilab.org