返回列表 回复 发帖
js脚本创建动点

用js脚本创建动点.ggb (3.84 KB)

创建js函数获得动点.ggb (3.98 KB)

js侦听器
本实例是利用ggb的js对象ggbApplet的赋值命令方法:evalCommand创建对象,并改变对象的颜色。
关于脚本的学习地方,在当今网上你输入w3cschool,这个地方是最好的,html,js,vb这些脚本的学习棒。说这个地方好:1.可以网上练习,不抽象,2.讲的东西标准。没错误,含打印错误。但是有一点要注意,w3cshool是以网页为例来讲解的,事实上vb和js脚本可以独立运行。你只要把js脚本去掉网页代码,并保存为a.js就可以独立运行了。

js侦听器.ggb (4.1 KB)

记录器logger

复制自由对象的js脚本:
=============================
设t为一滑竿变量
v=2
ggbApplet.evalCommand("copyfreeobject[t],"+v+")")
===============================
注意v是数值变量,要与字符串相加,所以要加几个引号隔开它们,js是一种自己会进行数据类型转变的语言。数值+字符串会自动转变为字符串类型。挺智能的。
输入上面的脚本,拖动滑竿将会创建一串点,话不选滑竿,直接点击方向键也会产生点
循环语句
  今天去看了看,ggb的javascript说明:发现有不少方法,弄了个来学习。有循环语句就可以完成这样的迭代:a=a+1.我在想ggb的迭代要从脚本入手才行。
  另官方文件的原文说:工具可以当命令调用。我做了个中点工具来测试,的确如此。
js脚本比ggb脚本的功能多。我都有点糊涂了,这个软件是做几何的,还是做代数的,还是做编程的,糊涂,真的糊涂了。说是做几何的吧,用起来不是很方便,说是做代数的吧,到还有点像,说是做编程的吧,在对象名不知道的前提下要获取对象名都没办法。糊涂了。
  这个软件设计怪怪的,如:ggbApplet对象的方法:获取点A的坐标为:ggbApplet.getXcoord("A"),ggbApplet.getYcoord("A"),但是没有同时获取点的坐标的方法,这样就不行:ggbApplet.getCoords("A")。但是在设置点的坐标上只有方法:ggbApplet.setCoord("A",X1,Y1)却没有单独设置x,y坐标的方法,为什么这么怪怪的呢?没想明白。
另外看到了2个清除痕迹的的办法:
第一个是命令:zoomin[1]或zoomout[1]
第二个是js方法:ggbApplet.refreshViews()
另还看到了一个重新加载命令的方法:ggbApplet.reset()
zoomin,zoomout是第屏幕缩放,几何画板的滚屏就是对屏幕操作。,而dilate是对几何元素缩放。

  我摆弄了这么久,还是对ggb做迭代有了一点点个思路。就是想从循环语句入手,结合工具去完成。不着急,俺慢慢的来。反正是玩。快也是玩,慢也是玩。

循环语句.ggb (4.16 KB)

随机10线.ggb (10.52 KB)

用循环语句可以完成跌迭代,但是好累,这和编程没什么差别。没几何画板方便。几何画板的迭代很傻瓜。
对了只用命令框是跌代不了的,因为命令框中无法完成如此的迭代:a=a+1,但循环语句可以:
1.循环语句1
var a=0
for (i=0;i<10;i=i+1){
  a=a+1
}
2.循环语句2
a=0
do{
a=a+1
}
3.循环语句3
a=0
do{
a=a+1
}
while(a<10)
4.上面的循环语句结合自定义工具,官方说,自定义工具可以像命令那样调用。比如说有个工具叫ha
这样即要用到语句:
ggbApplet.evalCommand(“ha[]”)
把这个语句和循环语句结合就可以完成几何画板中的迭代。我只是有了这个思路,但是我还没验证过。但是我觉得这样做可以。
到现在ggb我基本看了过大概:工具栏,命令,脚本,电子表格。ggb主要就是看这4部分。  在   ggb的js脚本中,对象ggbApplet的方法主要是两类:一类是set方法,一类是get方法。其消息框只有2个alert(),prompt(),,而普通js脚本的confirm(),这些信息框都失效。俺第js脚本也是今天才看的。未知的东西太多。
计算sin(1),如对点A编程即可,双击A就可以弹出值来。
d=Math.sin(1)
alert(String(d))
但是怪了:
var d=new Math()
t=d.sin(1)
alert(String(t))
这也是标准的js编程,怪了报错。
这句又对了:
t=Math.sin(1)
prompt(String(t))
弹出提示框:prompt
1.创建一个点A
2.编程:
t=Math.sin(1)

if(prompt(String(t))=="hello")   {
alert("true")
}
else {
alert("false")
}
3.点击A点,弹出提示框,在框中输入hello,与输入其他的字弹出的内容不同。,点击确定和取消将再次弹出不同的对话框。
注:Math对象是内建数学对象。引用数学函数就需要这个对象。Data是内建的日期对象。

正解ggb迭代

分享我的ggb的迭代思想 ,我算是想明白了
方法如下:
1.对点A,B创建一个以A为中心的旋转,如旋转30度
2.定制工具,取名交hello。这个工具可以如命令一样的调用,方法如下,你再命令框中(官方叫input box输入框)输入命令:hello[D,C],这时C就绕D旋转了30度。
3.编程:
利用循环语句编程,比如循环次数为n(这就是迭代次数),在循环语句中调用工具hello[],便可以完成迭代。
总结:定制工具+循环语句=迭代
ggb的迭代功能是极其强大的。

分享我的编程迭代思路

ggb中的一个旋转迭代的例子:
   刚开始摸ggb时,我相信大多数人也和我一样,翻完了ggb也没找到类似于几何画板的迭代功能,于是说,ggb迭代不行。但是随着对这个软件的了解,发现,它的迭代思路和几何画板不同,它是采用编程的思路或电子表格的思路去进行递推的,具体的说就是如下:

命令+循环语句=迭代
这里的命令包含两类命令,一类是自定义命令,利用工具打造。一类是系统自动命令。我这里所给的例子就是用自定义命令hello[A,B]完成的。
终于明白了ggb中如何迭代,迭代功能很强,只是要编程,操作上没有几何画板方便。
要用js脚本编程。迭代没什么问题。如果把语句用熟悉的话,迭代非常非常的强大
开始我以为迭代功能比几何画板差,现在我要说恰好相反,迭代功能比几何画板强n多,比如可以利用消息框(官网上看到一个位alert(),我测试发现还可以用提示框prompt())随时让迭代在想要停的地方停下在,给你选择的余地,只是操作上太专业了。不懂js脚本,有点傻眼,当然电子表格可以作为替代品。还有就是编程时,调试程序不方便。如果在弹出框中加上一个调试按钮就好了。还有就是输入代码不够智能。另外电子表格也也有递推的功能。也就是说可以用电子表格代替循环语句编程。让迭代傻瓜一点。在用电子表格迭代时,电子表格的地位相当于是循环语句的地位。
  我翻遍了官网的手册,发现要跌推就只有这两种办法了。电子表格的操作和微软的excel的操作基本是一模一样。功能,记号都类似。只是功能比excel少的多,也没必要做那么多功能。
  最希望将来ggb能提供一份好的手册。

ggb中的迭代.ggb (2.97 KB)

替代产品:框选表格电子表格操作(spreadsheet)---鼠标拖的技巧
1.在表格的B1中输入1,B2中输入2
2.在表格的B3中输入表达式 :B1*B3
3.选中表格的B1,B2,B3,接着向下拖放,就可以完成自动计算。和excel的操作是一样的。
4.如果是框选两列,进行拖操作,则可以点开增加点的列表,这时会有图像产生。
5.也就是说这种框选法就替代了编程里面的循环语句。
用表格迭代:
表格迭代的方法:
1.在平面内描一个点叫A
2.进入命令框,输入命令:
fillCells[A1,{A}],回车,在表格中的A1单元格中就创建了一个数据对象,
形如(x,y).
3.在单元格A2中输入:A1+(0.5,0.2),并回车,这时在A2单元格中就创建了新的数据对象。
4.框选单元格A1,A2
5.右键菜单,选中增加点集,这时在平面内就出现了2个点:A1点和A2点。
6.接着单次点选A1
7.按下ctrl键,再点选A2.
8向下拖动鼠标。这时就进行了数据迭代,同时平面内的点也跟着进行了跌带。
注意:表格的拖选实际上是在运行循环语句。
对表格的操作有两种:
1.鼠标单选,可以配合ctrl键。迭代时要用的是鼠标单选。
2.鼠标框选

3.表格里面可以放方程的,这就为表格迭代提供了广阔的天地。还有就是命令fillCells[cells,{object}]
object就是对象的意思,对象就多了。你想如果把表格迭代和编程结合,迭代的功能有多强大!?--------------------------------------------------------------
到此ggb的迭代方法已经完全建立起来了。
剩下的事情就是去做出精美的图形。
表格法迭代,做的文件比编程的大的多。看上楼的文件和这里的文件就知道了。

表格迭代实例.ggb (8.81 KB)

表格迭代直线.ggb (5.55 KB)

表格迭代圆.ggb (10.56 KB)

返回列表