如需源文件,请参照链接的文末:
用GeoGebra做个数字键盘!还可随意插入到其他ggb文件mp.weixin.qq.com我们知道GeoGebra除了可以在电脑上用,还可以在手机、平板上用!那么,当制作了个小练习,示例如下。
这些输入框,若在电脑上输入很方便!但是——在手机或者平板上操作,每次都需要先调出数字键盘!
那么,我们如果自行制作一个数字键盘,可以通过点击键盘上的数字键来输入答案,岂不是更方便?
来看看用GeoGebra制作数字键盘的效果:
可输入小数、负数等,还有删除所有数字的功能,也可以逐个数字删除。
还可以将其插入到之前做好的GeoGebra文件中:
再稍作修改,就可配合作答:
效果不错吧!而且最棒的是:这个数字键盘可以直接插入到已经做好的GeoGebra文件中,省心省力!无需每次都重复制作。
赶紧来看看数字键盘是怎么制作的!而GeoGebra中,又是怎么插入.ggb文件的?
GGB插入.ggb文件
假设要在“已有文件.ggb”中插入“一个圆.ggb”,可以怎么做呢?
只需打开“已有文件.ggb”后,依次选择文件——打开——一个圆.ggb,接着,是最关键的一步:选择文件类型为插入文件!
用插入文件这一功能,有什么需要注意的吗?
由上图,可发现:被插入文件的对象名称都改变了——名称多了个下标1。而当前文件的对象名称则不会改变。这一点很重要!
行序(<表格区单元格>)
Row(<Spreadsheet Cell>)
比如,行序(A1)返回数值1。但是——若是多了个下标,这指令就无效了——行序的参数必须是表格区单元格(即大写字母后跟一个正整数)。
又比如,已有对象A1,A2,A3,要创建列表{A1,A2,A3},可利用A1:A3迅速得到。但是——若是多了个下标,则无效!
由此,可看到插入文件令我们无需重复制作,不过——在制作的时候,就要考虑到若是对象名称多了个下标1,这样的操作或语法有问题吗!
制作数字键盘
数字键盘,其实就是生成独立的格子,并且格子都有相应的单击时脚本。其思路、部分指令,与《哪里需要立方体就点哪里》类似,不再赘述。
■ 先作一个自由点,以便控制数字键盘的移动:
A = (1, 1)
■ 再作出4×4的格子:
l1 =扁平列表(序列(序列(多边形(A + (p, q), A + (p, q) + (1, 0), 4), p, 0, 3.6, 1.2), q, 0, 3.6, 1.2))
注:扁平列表(Flatten)、序列(Sequence)、多边形(Polygon)。
■ 构造文本,作为点击数字键盘时,显示相应的文本。于是,定义:
text1 = ""
■在表格区A1、A2处分别输入1、2,并下拉填充至A16。
■在B1处,输入=元素(l1, A1)。
■在B1的单击时脚本输入赋值(text1,text1+"")。
■下拉B1至B16填充。
■ 修改B1至B16的脚本:
以B1的脚本赋值(text1,text1+"0")为例,也就是在已有text1的后面摆上一个“0”,并赋值给text1。
■ 而确定键,即B4的单击时脚本先不写。
■ 清空键B8的单击时脚本为text1=""
■ 删减键B12的单击时脚本为赋值(text1,提取(text1,1,长度(text1)-1))
B12的脚本含义:在已有的text1中,提取出第一个到倒数第二个的所有文本,并赋值给text1。
注:赋值(SetValue)、提取(Take)、长度(Length)。
■ 最后,显示键盘上的文字:
l2 = 映射(文本(p, (-0.15, -0.22) + 形心(q)), p, 0…9, q, {B1, B5, B6, B7, B9, B10, B11, B13, B14, B15})
l3 = 映射(文本(p, (-0.28, -0.22) + 形心(q)), p, {"00", "•"}, q, {B2, B3})
l4 = 映射(文本(p, (-0.38, -0.16) + 形心(q)), p, {"确定", "清空", "删减", " _¯"}, q, {B4, B8, B12, B16})
映射( <表达式>, <变量1>, <列表1>, <变量2>, <列表2>, ... )
映射(Zip)就是让变量1依次取列表1中的元素代入表达式,变量2依次取列表2中的元素代入表达式。
以l3为例,l3相当于{文本("00", (-0.28, -0.22) + 形心(B2)), 文本("•", (-0.28, -0.22) + 形心(B3))}
注:文本(Text)、形心(Centroid)。
至此,数字键盘就大功告成了:
插入到其他ggb文件的示例
前面演示过插入文件,那么,插入后,如何更好地发挥其作用呢?
● 将点击数字键盘得到的文本text1_{1}与答案输入c关联起来,于是,在确定键的单击时脚本输入:
赋值(c,text1_{1})
如果(c!=T,赋值(m,m+1))注:第二条是复制答案输入框的脚本。
● 点击“下一题”时,需要先清空文本,于是,在“下一题”的单击时脚本输入:
运行单击脚本(B8_{1})
注:也可直接复制清空键的单击脚本。运行单击脚本(RunClickScript)。
● 最后,配合原有文件,修改数字键盘的显示条件:
至此,大功告成:
结语
数字键盘除了由GeoGebra文本入手,还可从算术运算入手,也就是除了赋值(text1,text1+"1"),还可以这么做:
- 引进数值a=0
- text1=""a
- 数字1键的单击脚本即可写为:赋值(a,10 a+1)