返回列表 回复 发帖
ggb 5.0的这个3D版本实用阶段还差的远。我又用3d版本画了个球,怎么看都没球的感觉。调整了参数还是没球的感觉。接着又画了个平面和直线相交,怎么看都没那种相交的感觉。看来这个3d版本的发布还早。毕竟要同时推出4.0,4.2,5.0还是快了点。5.0版本明显的不流畅。这久恼火了。ggb5.0的3d效果目前和gsp比有着质的差别。ggb4.2的平面部分做的挺不错。

加入按钮,一大进步

cas版本可以完成自定义按钮动画了。
有了按钮和输入框有了点编程的意思在里面了。在脚本中,用使用多个语句时,语句间要用分号断开。且要语句要换行。我试了半天,发现只把值通过按钮点击传递给了输入框,但是通过按钮抓取输入框的值没试成功。

自定义按钮动画cas.ggb (5.31 KB)

sequence命令.ggb (4.16 KB)

用按钮同时创建输入框和函数图象.ggb (4.13 KB)

cas版本

突发奇想:
  ggb这软件,如果是用过mathematica或maple的网友,一定会感到风格是模仿前两个软件。要掌握这个软件要学习好多命令。而且ggb很不成熟。要花很多时间才可以掌握这个不成熟的软件。花费同样的学时,差不多可以学会maple了,所以这个软件,弄着玩玩就算了。花这么的时间学这个ggb我还不如花同样的学时去学习maple。ggb没有gsp成熟。

这个图还可以吧,输入x^2,右键菜单画图,就ok了。这是maple做的。

以下是ggb 5.0测试版画的球(离实用阶段还差很远的距离,ggb的3d版本差不多只是一个概验阶段):

一下是maple和ggb的数列命令比对。

目前来看,对这个软件很失望。与介绍的相差太远。但愿正式版发布时有明显的进步。
maple 15制作的球和平面相切


可以看出楼主的数学功底很强,向你致敬
另请教下,求补集有命令吗?
45# willer_chen
我只是玩,其它的说不上。
补集命令没有。因为有差集命令:minus所以没必要再要补集合命令。补集是特殊的差集。
并集union,交集intersect,子集subset。这些命令不用记,拿英文字典差就可以了,就是英文单词。输入汉字,英文字典一翻译就知道这个命令了,再用用格式:?minus,回车就获得帮助,帮助详细的说明了怎么用。
   maple的帮助做的就是好。ggb的帮助是一路裸奔。毕竟是免费的东西。做成这样已经相当不错了。再提要求就过份了。
GGB迭代好难办:
   想用GGb迭代画一个二分树,想了半天也没想出怎么个迭代法,迭代好疼苦哦。
ggb语言如dos般松散:
1)在命令框输入sequence[2 x,x,1,5],却绘制了函数2x的图像,这不是作者的本意。x是系统默认的内建自变量。
2)在命令框输入a:=1,和输入a=1效果一样,这不是作者的本意
3)ellipse[],和hyperbola[],两命令一回事,这不是作者的本意。

编程

js脚本---来自于官网
JavaScript
JavaScript is a programming language used by many Internet technologies. Unlike GeoGebra Script, in Javascript the commands don't have to be executed as a simple sequence, but a control flow (if, while, for) can be used. For generic JavaScript you can find a nice tutorial on developer.mozilla.org. In GeoGebra, you can use special JavaScript methods which allow you to change the construction. These methods belong to ggbApplet object, which means that you call them as ggbApplet.method_name(parameter,..,parameter). For complete list of these methods see Reference:JavaScript.

js脚本(以下简称脚本)是一中程序语言,是许多互联网在使用的技术。不像GGB脚本,在js命令中不必执行一系列的命令序列,但是却可以进行流程控制(如if语句,whil语句,for语句,即条件语句,循环语句),对于常见的js脚本你可以找到很好的教程,在网站developer.mozilla.org,在ggb中,你能够使用特殊的js脚本,方法,它容许你改变结构(注:对象的实例的意思),这些方法是属于ggb对象的方法,它意为你可以调用他们,以如下的方式调用它们:ggbApplet.method_name(参数,参数,...,参数)。这些方法的完整列表,可以参考:JavaScript。
  我亲自用滑竿变量试过,的确可以使用js脚本编程,这里有一个例子:
1.创建一个滑竿变量a
2.打开滑竿a的属性菜单,把脚本设置为js脚本,不是ggb脚本。
3.输入如下语句:
var i(声明变量)
for(i=0,i<20,i++)(js的循环语句)
ggbApplet.evalCommand("A"+i+"=(a,-3*a)")(调用ggb的Applet对象的方法)
运行该程序后会生成一系列点。
  也就是说ggb可以进行编程。注意js脚本大小写敏感。
GeoGebra contains its own JavaScript engine. When exported as Dynamic Worksheet one can choose whether to use this engine or the one contained in browser applets. If you edit JavaScript in a HTML page, the ggbApplet variable will not be initialized, you have to initialize it e.g. using ggbApplet=document.applets[0]; first.

GGB包含了自己的js引擎。当我们输出动态工作表时,一种方式就是能够选择是使用这个引擎,还是使用浏览器的applet对象。如果你在编辑你的html文件中的js脚本,此时ggbApplet对象的变量将不被被初始化,首先,你不得不初始化它们。如,使用语句:ggbApplet=doucument.applets[0]。

Global JavaScript
In the Global JavaScript part of Scripting tab in Properties Dialog you may define some functions or do some assignments that will be done before the construction is loaded. You can also define function ggbOnInit(), which is called automatically once the construction is loaded. The ggbOnInit function can be used for registering some listeners, as shown below.
全局js脚本
  在脚本标签的属性对话框中的全局js脚本部分,你可以定义一些函数,或做一些赋值,在你加载对象前,你也可以定义函数ggbInit(),它能够被自动的调研,在你加载对象前。函数ggbInit能够被注册的侦听器使用,如下面的例子:

Example:
function onAdd(name){
    alert("Object "+name+" was added.");
}

function ggbOnInit(){
    ggbApplet.registerAddListener("onAdd");
}
First we defined function onAdd that given a string shows a message depending on that string. After that, using the ggbOnInit function, we told GeoGebra to call this function whenever a new object is added. Once we reload our construction, function ggbOnInit will be called and since then, when user adds a point named e.g. A, message "Object A was added" will appear.
首先,我们定义函数onAdd,它提供一个依赖于字符串显示一段信息的字符串,
之后,当使用函数ggbInit时,我们告诉ggb无论是什么样的新对象,都调用这个函数。一旦我们再次加载我们的对象,函数ggbOnInit将被调用,从那时开始,当用户添加一个被命名的点,如A,信息“对象A被添加”将出现。

心得:1.今天知道了ggb可以编程。ggb内置的一个js对象为ggbApplet
2.ggb的Applet对象的方法调用格式为:
ggbApplet.method_name
方法evalCommand()挺管用的。
3.ggb的js脚本的全局函数为:ggbOnInit()这个函数是创建侦听器用的。

在后面我乱整了几个例子。

----------------------
http://wiki.geogebra.org/en/Scripting
返回列表