转盘怎么做(抽奖大转盘)
转盘游戏多次出现在小学、初中、高中的数学课本中。所以用GeoGebra模拟下转盘,可以自己设置的地方很多。我们先来看看效果:
从上图可以看出,你可以选择将圆圈平均分成几个区域(3到20个区域),每个区域可以选择自己的颜色(5种颜色可选);此外,还可以选择指针的起始位置和旋转速度。
源文件获取方式,请见文末源文件获取方法请参考文末。
自动旋转10次按钮,顾名思义,点击此按钮自动旋转10次。转动10次后,如果再次点击此按钮,先前的转动结果不会被重置。因此,它可以自动旋转20次、30次等。,从而观察频率的变化。
点击复位按钮,即初始化单击重置按钮进行初始化。
那么,作品是如何制作出来的呢?
看一下制作思路:
指针的随机转动,可转化为圆上一点的随机转动。点的随机转动,又可转化为点的路径值需具有随机性,再用描点指令,即可得到“随机点”。而点的转动角度,即为“随机点”的当前位置与上一次位置之间夹角的角度;由此,涉及到在变化过程中,如何保存变量的数值的问题。而判断指针落在哪一区域,只需知道“随机点”的路径值在哪一区域。
接下来,开始制作。
构建框架
说明及其解释,请见下图:
注意:滑块、圆和点。
注意:序列,均匀分布RandomUniform,元素,长度,RandomElement,CopyFreeObject,旋转,角度,向量。
效果如下:
为避免意外提取旋转数M,将M设置为不允许选择:
扇形效果
滑杆N决定把圆分成几个扇区,生成多个扇区的批量操作,可以用来执行指令。因此,当N被更新时,脚本输入:
注意:执行、删除和扇区。
每个扇区都有一个相应的颜色选择下拉列表,因此:
在表格区域的A1中输入:
={"红色& # 34;, "绿色& # 34;, "蓝色& # 34;, "黄色& # 34;,"黑色& # 34;}
更新时,脚本为:
执行({ & # 34;如果(& # 34;+Row(% 0)+& # 34;≤n,set color(d & # 34;+Row(% 0)+& # 34;,元素(A & # 34+Row(% 0)+& # 34;,SelectedIndex(A & # 34;+Row(% 0)+& # 34;))))"})
执行({ & # 34;SetCaption(%0,Text(& # 34;+Row(% 0)+& # 34;))"})
注意:行顺序(Row)、SetColor (setcolor)、SelectedIndex (selectedindex)、SetCaption (set caption)和Text (text)。
填写A1下拉至A20,然后勾选"显示下拉列表"。对于这部分的理解,请点击链接。
下拉列表的显示与滑块N有关,需要设置显示条件,所以输入:
执行(序列(& # 34;SetConditionToShowObject(A & # 34;+k+& # 34;,"+k+& # 34;≤n)& # 34;,k,1,20))
注意:设置显示条件(SetConditionToShowObject)。
此外,当拉动N时,扇区的颜色需要与下拉列表中选择的颜色一致,因此当更新N时,脚本输入:
执行(序列(& # 34;RunUpdatescript(A & # 34;+k+& # 34;)",k,1,n))
注意:运行RunUpdatescript。
当前部分摘要:
转动效果
想要的效果是:点击旋转按钮——指针开始移动,显示旋转结果。
输入以下说明:
注意:删除未定义的对象和PathParameter。
创建按钮:
注意:赋值(SetValue),UpdateConstruction,StartAnimation,Text,SelectedElement。
在单击旋转按钮之前,您需要预设文本的背景颜色。否则,您需要将旋转按钮最后一行的脚本更改为:
执行({ & # 34;SetConditionToShowObject(text & # 34;+m+& # 34;,k = = 1 & & m = = & # 34+m+& # 34;)"})
统计结果
M0是存储轮换的结果,已经出现的颜色的数量可以简单地通过计算条件来计算。所以:
注意:条件计数(CountIf),追加(Append),TableText (tabletext)。
当前的影响如下:
自动转动
如果能多次自动旋转,自然更好!
假设点击按钮,可以自动旋转10次,那么就可以引入滑杆T了。要使t的每个增量等于单击button1一次,只需使用RunClickscript命令:
我们知道当滑块的速度为1时,滑块从最小值移动到最大值需要10秒。滑块K控制指针的旋转,所以需要调整K的速度V..
当前的影响如下:
之前点击button1,也就是旋转一次。但是用button3发现旋转数M显示错误!
所以:
这是因为给t赋值意味着更新t,所以click脚本(button1)将会运行。
作品完善
为了使下拉列表对应于扇区,文本1、2、3、...应该显示出来,所以:
此外,l6的层需要设置为1。而更新滑块n的脚本需要添加:
执行(序列(& # 34;set layer(d & # 34;+k+& # 34;,0)",k,1,n))
注:SetLayer。
此外,为了防止重置按钮被点击,拉动滑块N来改变区域的数量,因此当N被更新时,脚本输入:
单击运行脚本(按钮2)
至此,整个工作完成!
拓展1
让“改变”触手可及!教你保存变化过程中的值——geo gebra提到,保存随机量的值有很多种方法,但这部作品只保存随机量的当前值和最后值;也可以使用保存随机量所有值的方式——让一个随机量的值成为一个对象。
但由于涉及多个对象,处理起来比较费力,需要多次应用到执行指令中,可读性不高:
两种方式的对比两种方式的比较
由此也可以看出只保存随机量的当前值和前一值的方便性。
拓展2
想一想:这个工作就是让指针旋转。转盘随机移动时指针不动可以做到吗?
如果可以的话,如何在这个作品的基础上进行修改?主要修改的是什么?
本作源文件请评论:转盘。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。系信息发布平台,仅提供信息存储空间服务。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。
本文来自网络,若有侵权,请联系删除,作者:李阳一,如若转载,请注明出处: