标题:
用GeoGebra制作的分形的探索
[打印本页]
作者:
visionfans
时间:
2011-10-25 19:40
标题:
用GeoGebra制作的分形的探索
今天捣鼓了一下GeoGebra(以下简称GG),发现与GSP不同的是,GeoGebra没有很方便的“迭代”功能。
迭代的实现主要依赖于递归,在GSP里实数值可以用Iteration或者IterationList来进行递归操作。
语法是:
Iteration[f(x),x0,N]。就是,按照f(x)函数给定的规则,从x0开始,进行N次迭代。
IterationList跟Iteration语法相同,不同的是Iteration返回最后值,而Iteration返回迭代过程的所有中间值,返回结果是一个List,这是GG中的链表数据结构。对链表可以进行取头部元素,取尾部元素等操作。
讲到这里,只是一维数据的情况,而想要制作分形的话,需要对几何对象进行递归的变换操作。
但是GG里没有直接实现这个功能的函数,我把它的函数手册翻来覆去的看,也没想出辄。期间,看到Sequence函数的时候,让我眼睛一亮。
Sequence的语法是Sequence[Expression,i,m,n]。作用是,将i从m递增到n,每递增一次,执行一次Expression表达式。
其中,Expression是一个操作表达式,这个表达式可以跟i有关,也可以无关;可以是自定义的工具函数,或者GG自带的函数。这里不限于一维了,对几何对象,如Point,Vector等的操作都可以使用。让我兴奋了半天,可是翻来倒去,如果想用Sequence进行递归迭代的话,需要操作完一个变量后,把得到的值作为新的自变量进行迭代,这样GG就会跳出一个可恶的circular definition(循环定义)的出错对话框。
没辙了,山穷水尽之处,最后才发现,原来Spreadsheet可以记录中间结果。于是,最后用Spreadsheet搞定。
思路:
1. 构造单步迭代。
这一步是自己手动构造一个单步迭代的结果,然后,用自定义工具进行定义,这样,这就等于把单步迭代就变成了一个命令,可以用指令的方式来调用。
2. 用Spreadsheet构造迭代过程的中间迭代结果。
用Spreadsheet可以方便的进行迭代式的定义,比如A3=A2+A1。跟Excel很类似,定义了一个,其他的只要拉动右下角的标记点就可以自动生成。想进行多少次迭代,就拉多少行。
3. 显示分形结果。
分形结果的显示可以在迭代过程中显示,但是,最好还是最后显示。如果在操作Spreadsheet的过程中显示的话,不便于控制显示的迭代深度。因此,我这里用了一个滑动变量来控制显示。
4. 自己制作的自定义工具:
NewTriangle[A,B,C,a]是单步迭代函数,功能是,给出一个三角形△ABC,按照a进行缩放。
DrawTriangle[A,B,C]是显示函数,功能是,给出三个点,画出三点之间的连线,即三角形△ABC。
这里,我是先在Spreadsheet里生成的点信息,最后才用DrawTriangle画出来。
5. ggb文件的测试方法:
(1) 先用命令:AllPoints = CellRange[A1,C23],将Spreadsheet转换成List,这样方便进行操作。(我没有找到从Spreadsheet里直接取值的函数)
(2) 从1到n依次画出小三角形,命令是:
Sequence[ DrawTriangle[ Element[AllPoints,i],Element[AllPoints,i+N],Element[AllPoints,i+N*2] ],i,1,n]
最后:
感谢北师大的老师们制作的GG使用指南。
希望能够帮助大家制作出精美的分型图片,我只是做了一个很简单的测试。
我最近刚接触GG和GSP,如有错误,请大家多多指正。
[local]1[/local]
另外,可以参考:
[1] Recursive sequences,
http://geogebra.uni.lu/en/wiki/index.php/Recursive_sequences
[2] Fibonacci Sequence,
http://geogebra.uni.lu/en/wiki/index.php/Fibonacci_Sequence
附件:
Recursion.ggb
(2011-10-25 19:40, 9.06 KB) / 下载次数 1386
http://inrm3d.cn/attachment.php?aid=14839&k=85b3b23e8b9388f7d38d29889aeced64&t=1732393508&sid=9s63wZ
图片附件:
1.png
(2011-10-25 19:40, 134.12 KB) / 下载次数 856
http://inrm3d.cn/attachment.php?aid=14840&k=10946019756988b5a91db71239941e26&t=1732393508&sid=9s63wZ
作者:
visionfans
时间:
2011-10-25 19:52
1#
visionfans
图片附件:
1.gif
(2011-10-25 19:52, 184.74 KB) / 下载次数 898
http://inrm3d.cn/attachment.php?aid=14841&k=29230dff1b8450cdf4cdf214c540f420&t=1732393508&sid=9s63wZ
欢迎光临 inRm3D: 画板论坛 (http://inrm3d.cn/)
Powered by Discuz! 7.0.0