Geogebra高级篇003—脚本撰写中常见的报错及解决办法

在使用GeoGebra进行脚本撰写时,常常会遇到各种报错,这些问题不仅影响工作效率,还可能让人感到困惑。本篇博客将深入探讨一些常见的错误及其解决方法,帮助大家更顺利地在GeoGebra中实现自己的创意与功能。无论是初学者还是经验丰富的用户,相信这里的分享都能为你提供有价值的帮助。


一、常见的问题及解决办法

1. 重复定义问题:redeclaration of ‘xxxxx’

(1)问题复现

在这里插入图片描述
这种问题一般出现在JavaScript脚本中,比如直接这样写:

let p = ggbApplet.isDefined("list")
ggbApplet.evalCommand("Text("+ p +", (0, 0))");

脚本第一次执行的时候不会报错,第二次执行的时候就发现已经定义过p了,又要定义p,所以就报错重复定义。

(2)解决方法

定义个函数,把脚本内容放进去就好了,类似这样:

function test(){
    let p = ggbApplet.isDefined("list")
    ggbApplet.evalCommand("Text("+ p +", (0, 0))");
}
test();

2. 未知命令问题:Unknown command: ‘xxxxx’

(1)问题复现

在这里插入图片描述
这种问题一般就是命令输入错了,或者说是命令要求里边只有一个参数,但是我们却写了两个参数,都会出现这种问题。

(2)解决办法

这种问题的报错一般都会在弹窗出现一个“show online help”的链接,点击链接确认一下自己的命令是否有错就可以了。

3. 语法输入问题:Please check your input

(1)问题复现

在这里插入图片描述
这种问题的出现是因为自己的书写语法有问题,所以需要检查一下自己的语法,比如我这个代码:

function text(){
    ggbApplet.evalCommand("X1 = (1 - n) * x(P1) + n * x(P2)'");
    ggbApplet.evalCommand("Y1 = (1 - n) * y(P1) + n * y(P2)'");
}

text();

大眼一看没有什么问题,仔细一看还是没有什么问题。定睛一看确实存在问题,那就是多了单引号所以报错,下边这个是修正后的代码:

function text(){
    ggbApplet.evalCommand("X1 = (1 - n) * x(P1) + n * x(P2)");
    ggbApplet.evalCommand("Y1 = (1 - n) * y(P1) + n * y(P2)");
}

text();
(2)解决办法

保持一个好的心态,保持一个好的心态,是动画程序开发者最基本的素养。

这个除了好心态没有其他更好的办法,但是提供几点经验:

  1. 勤记笔记,多与同行学习交流,看多了就知道问题在哪儿了;
  2. 使用专业的脚本编辑工具,比如idea、Vscode;
  3. 将代码交给ChatGPT,让他帮忙检查下语法问题(还是很方便的);

这里我放一个我们的技术交流群,有需要欢迎添加(二维码日期有限制,凭运气嘿嘿):

在这里插入图片描述

4. 表达式问题:unexpected token in expression

(1)问题复现

在这里插入图片描述
这种问题也归类为语法问题,就是说自己脚本的结构都不完整的意思,比如()少了一半,{}少了一半。

这种问题经常出现在括号嵌套太多的情况,突然少了一个也看不出来。

比如这句脚本,括号就比较多,一定要自己仔细检查好。

ggbApplet.evalCommand("circle"+id+"=circle((x("+point+"),y("+point+")),"+list[0]+")")
(2)解决办法

保持一个好的心态,保持一个好的心态,是动画程序开发者最基本的素养。阿弥陀佛!

细心点咯,但是我还是建议使用专业的脚本编辑环境,因为点击这个括号,另一个括号会高亮显示,比如这样:

在这里插入图片描述
后续我专门用一个案例来讲解如何使用专业IDE编写Geogebra脚本吧,这里就不过多赘述了。

二、文章最后

若还有其他问题,欢迎微信公众号联系,点击下方链接关注微信公众号“第五智能”,让您的学习过程中的每一份付出,皆有回报。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值