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
2
3
SetValue(running, !running)
StartAnimation(B, running)
SetCaption(button1, If(running, "暂停", "开始"))

或者输入

1
2
3
赋值(running, !running)
启动动画(A, running)
设置标题(button1, 如果(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) 停止动画