如何从地理代数脚本调用javascript函数?

时间:2014-03-11 13:59:24

标签: javascript computational-geometry geogebra

在Geogebra中,让我们从按钮(属性)定义JavaScript全局函数:

function ggbOnInit() {
}

function test(par) {
  return par * math.random();
}

如何从附加到该按钮的Geogebra脚本中调用该函数("点击"属性)?

以下Geogebra脚本:

Sequence[test(3),k,1,5]

发布错误消息"未知命令测试",等待0到3之间的五个随机数的序列。

3 个答案:

答案 0 :(得分:2)

为了调用您的全局JavaScript函数,您的“单击”脚本必须是JavaScript类型而不是GeoGebra脚本。

答案 1 :(得分:2)

我找到了这个可能的解决方案。

创建一个按钮,在“ On Click ”部分中,在底部选择“ JavaScript ”,插入代码:

ggbApplet.evalCommand("list={0}");
if (! ggbApplet.exists("par")) {ggbApplet.evalCommand("par=200")}; 
for(var i =1;i<5;i++) 
ggbApplet.evalCommand("SetValue[list," +i+",  par* random()]");

par 参数可以设置为Geogebra变量或代码内部(如果变量不存在,将使用最后一个值)。

无论如何,我无法在 Global Javascript 标签中找到如何使用功能或如何使用Javascript math.random()命令。

问题是Geogebra中可用的JavaScript命令可能是一组有限的JavaScript,但我不确定。

答案 2 :(得分:-2)

我不确定您是否想获得五个随机整数或十进制数。如果要获得0到3之间的五个随机整数,可以使用GeoGebra脚本轻松完成。 您可以先在输入栏中创建一个空列表,例如list = {},然后用按钮填充它或用按钮动态创建它。

创建一个按钮,打开对象属性,转到Scripting选项卡,然后在On Click选项卡中写下一行: 列表=序号[RandomBetween [0,3]中,k,1,5]

确保您已选择&#34; GeoGebra脚本&#34;在下拉菜单中。

如果您想要在0到3之间使用五个随机的DECIMAL NUMBERS,则执行相同的操作但代码行不同: list1的=序号[随机()+ RandomBetween [0,2]中,k,1,5]

希望这有助于......