Gergebra给动画添加启动和暂停按钮

Gergebra给动画添加启动和暂停按钮
老刘博客给GeoGebra中的动画添加播放/暂停按钮,是一个很不错的动画设计亮点,可以有效的避免在动画播放/暂停过程中,还需要对滑动条进行操作。给GeoGebra中的动画添加播放/暂停按钮的问题,今天我们来谈一谈简单实现过程。
1.核心思路
用一个布尔变量(如 running)记录动画状态,点击按钮时取反该变量,并用
1 | StartAnimation(对象, running) |
来控制动画的播放/暂停。
单按钮方案:在按钮的 Click 脚本中先翻转状态,再启动动画,同时把按钮标题切换为“暂停/开始”,实现一体化控制。
双按钮方案:一个“开始”按钮执行
1 | StartAnimation(对象, true) |
另一个“暂停”按钮执行
1 | StartAnimation(对象, false) |
这样设置,逻辑更直观。
2.操作步骤
在这里,我们推荐经典单按钮先来看一个动画演示效果图
下面我们来看创建过程,首先创建动画依赖对象,在指令框中输入
1 | f(x)=sin(x) |
创建函数图像上的点,在这里我们输入
1 | A=描点(f) |
新建布尔变量:
1 | running = false |
创建按钮,设置 Click 脚本:
1 | SetValue(running, !running) |
或者输入
1 | 赋值(running, !running) |
然后点击确定,就完成了动画创建过程,开始的时候可能有一个初始报错,只需要鼠标点击一下Geogebra左侧的工作区,就会正常
可选:在对象属性的 动画页将“重复”设为 双向,实现来回往复。当前这个动点A的往复运动范围以屏幕为边界,至少我测试的时候是如此。
说明:也可用复选框/滑动条充当“running”的代理,脚本中用该对象代替布尔变量。但是我不知道如何设置,以后在更新内容。下面来看双按钮设置,来看效果
启动按钮 Click 脚本:
1 | StartAnimation(A, true) |
暂停按钮 Click 脚本
1 | StartAnimation(B, false) |
最后的效果如图
3.复位按钮
我们还可以添加一个复位按钮,将点A回归到某一个点,例如回到原点,可以使用如下代码
1 | SetValue(A, (0,0)) |
这句代码的含义,就是将点A的坐标重新设置为原点。SetValue 命令可以用于动态修改对象的属性复位的速度很快,估计朋友们都看不到,没有关系,按照我的思路逐步练习,就会发现这个效果
如果您使用的是JavaScript,可以尝试一下下面的代码,我没有测试:
1 | ggbApplet.evalCommand("SetValue(A, (0,0))"); |
4.常见问题与排查
- 按钮只生效一次:确保每次点击都执行 **StartAnimation(对象, 当前状态)**;若用复选框/滑动条充当状态,脚本中应使用该对象而非固定布尔值。
- 动画不循环:在对象属性的 动画页将“重复”设为 双向,即可来回往复。
- 速度感知不明显:计时器方案中可用 speed 缩放 dt(如 SetValue(t, t + dt * speed)),或在对象动画里调整“速度”参数。
- 重置无效:重置时除了把状态置 false,也要对时间/位置等依赖量复位,并再次调用 StartAnimation(对象, false) 停止动画


















