您目前所在位置: 首页 > 游戏周边 > 新手帮助

自定义转盘模拟器(自定义转盘在线制作使用教程)

时间:2022-06-17 19:20:48 | 访问:1625 次 | 责任编辑:访客

转盘游戏在小学、初中、高中的数学教材中,多次出现。于是,用GeoGebra模拟了下转盘,可自行设置的地方也较多,先来看效果:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

由上图可见,可以选择将圆平均划分为几个区域(可划分为3到20个区域),而每个区域都可自行选择颜色(共5种颜色可选);另外,指针的起始位置、转动的速度也都可以选择。

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

源文件获取方式,请见文末

自动转动10次按钮,顾名思义,点击该按钮,即可自动转动10次。在转完10次后,如果再次点击该按钮,则之前的转动结果不清零。由此可做到自动转动20次、30次等,以便观察频率的变化。

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

点击复位按钮,即初始化

那么,该作品是怎么制作的?

来看看制作思路:

  • 指针的随机转动,可转化为圆上一点的随机转动。
  • 点的随机转动,又可转化为点的路径值需具有随机性,再用描点指令,即可得到“随机点”。
  • 而点的转动角度,即为“随机点”的当前位置与上一次位置之间夹角的角度;
  • 由此,涉及到在变化过程中,如何保存变量的数值的问题。
  • 判断指针落在哪一区域,只需知道“随机点”的路径值在哪一区域。

下面,开始制作。

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

构建框架

指令及其解释,请见下图:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

注:滑动条(Slider)、圆(Circle)、描点(Point)

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

注:序列(Sequence)、均匀分布随机数(RandomUniform)、元素(Element)、长度(Length)、随机元素(RandomElement)、复制自由对象(CopyFreeObject)、旋转(Rotate)、角度(Angle)、向量(Vector)

效果如下:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

为避免不小心拉动转动次数m,将m设置为不允许选定:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

扇形效果

滑动条n决定将圆划分为几个扇形,而生成多个扇形的批量操作,可用执行指令,于是,在n的更新时脚本输入:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

注:执行 (Execute)、删除 (Delete)、扇形 (Sector)

每个扇形都有对应的下拉列表以供选择颜色,于是:

在表格区的A1输入:

={"红色", "绿色", "蓝色", "黄色","黑色"}

其更新时脚本为:

执行({"If("+Row(%0)+" ≤n, SetColor(d"+Row(%0)+", Element(A"+Row(%0)+",SelectedIndex(A"+Row(%0)+"))))"})

执行({"SetCaption(%0,Text("+Row(%0)+"))"})

注:行序(Row)、设置颜色(SetColor)、选定索引(SelectedIndex)、设置标题(SetCaption)、文本(Text)

并将A1下拉填充至A20,再勾选“显示下拉列表”。此部分的理解,请点击链接。

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

而下拉列表的显示与滑动条n有关,需设置显示条件,于是,在指令栏输入:

执行(序列("SetConditionToShowObject(A"+k+","+k+"≤n)",k,1,20))

注:设置显示条件 (SetConditionToShowObject)

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

另外,拉动n时,扇形的颜色需与下拉列表选定的颜色一致,于是,在n的更新时脚本输入:

执行(序列("RunUpdateScript(A"+k+")",k,1,n))

注:运行更新脚本 (RunUpdateScript)

当前部分小结:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

转动效果

希望达到的效果是:点击转动按钮——指针开始动,并显示转动结果。

输入如下指令:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

注:去除未定义对象 (RemoveUndefined)、路径值 (PathParameter)

创建按钮:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

注:赋值 (SetValue)、更新作图 (UpdateConstruction)、启动动画 (StartAnimation)、文本 (Text)、选定元素 (SelectedElement)

在点击转动按钮前,需先预设文本的背景颜色。否则,需将转动按钮的最后一行脚本改为:

执行({"SetConditionToShowObject(text"+m+",k==1&&m=="+m+")" })

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

统计结果

m0是存放转动的结果,只需用条件计数,就可以计算出现过的颜色次数。于是:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

注:条件计数 (CountIf)、追加 (Append)、表格文本 (TableText)

目前效果如下:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

自动转动

如果可以自动转动多次,自然是更好!

假设点击按钮,可自动转10次,那么,可以引入滑动条t。而要让t每增加1时,相当于点击一次按钮button1,只需用运行单击脚本(RunClickScript)指令即可:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

我们知道滑动条的速度为1时,滑动条由其最小值运动到最大值,需花费10秒钟。而滑动条k是控制指针的转动,所以,需要注意调整k的速度v。

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

目前效果如下:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

之前点击button1,即转动1次。但,有了button3后,发现转动次数m显示错误!

于是:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

这是因为对t进行赋值,即为更新t,所以会运行单击脚本(button1)

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

作品完善

为让下拉列表与扇形对应起来,需显示文本1,2,3,……于是:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

并且,需将l6的图层设置为1。而滑动条n的更新时脚本需加上:

执行(序列("SetLayer(d"+k+",0)",k,1,n))

注:设置图层 (SetLayer)

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

另外,为防止还未点击复位按钮,就拉动滑动条n来改变区域数,于是,在n的更新时脚本输入:

运行单击脚本(button2)

至此,整个作品就完成了!

拓展1

让“变化”触手可及!教你保存变化过程中的数值——GeoGebra提到了多种方式保存随机量的值,而本作品采用的是只保存随机量的当前值与上一个值;若是采用保存随机量所有值的方式——让一个随机量的值作为一个对象的话,也是可以的。

不过——由此涉及到了多个对象,处理起来较为费力——需多次应用到执行指令,可读性也不高:

教你用GeoGebra做转盘,可设置区域数、颜色,还可自动转

两种方式的对比

由此也可以看到采用只保存随机量的当前值与上一个值的便利之处。

拓展2

想一想:本作品是让指针转动,能不能做到让指针不动,而转盘随机动呢?

如果能做到,可以在本作品的基础上怎么修改?主要是修改什么?

本类TOP10
最新内容
金融习题 考研百科