教你动态演示:1/2+1/4+1/8+1/16+1/32+1/64——GeoGebra制作教程

先来看一下作品的效果:

效果不错吧!

那就一起动手制作吧!

作出矩形、正方形

可以先作出相关的点,再用多边形(polygon)指令,这是一种思路。

然而,这么多个多边形,都要先作出相关的点,再作相应的多边形也不容易!

那么,还可以怎么解决呢?

我们先看黄色矩形部分,假设已有q1,则

q2 = 位似( q1, 1 / 2, (1, 1) )

q3 = 位似( q2, 1 / 2, (1, 1) )

具体的,可参照下图来理解:

位似(Dilate)指令:

位似( <几何对象>, <位似比>, <位似中心> )

  • 由上图可见,B'就是B(1,1)为中心,按1/2的比例进行缩放。
  • 即:B' = 位似( B, 1 / 2, (1, 1) )
  • q2的其他顶点也可看作是对应的q1的顶点,以(1,1)为中心,按1/2的比例进行缩放。
  • 于是:q2 = 位似( q1, 1 / 2, (1, 1) )
  • 同理可得:q3 = 位似( q2, 1 / 2, (1, 1) )
  • 至于蓝色正方形部分,也是一样的操作。

由此,可以写出相关指令:

即:

来看一下迭代列表(IterationList)指令:

迭代列表( <表达式>, <变量>, <起始值>, <次数> )

这里,对l1稍作解释,l2同理:

不过,我们需要的是逐一显示这些矩形、正方形。而且,显示顺序为:矩形、正方形、矩形、正方形……

矩形、正方形的逐一显示

我们用滑动条n来控制逐一显示:

n = 滑动条(0,11,0.001)

【n的范围与增量为什么要这么设定?看完本文即可知其缘由。】

先看需要呈现的效果:

于是,可利用表格区来实现:

  1. 在A1,A2,A3分别输入1,2,3
  2. 在B1输入=如果(n ≥ 2A1 - 1, 元素(l1, A1))
  3. 并下拉B1填充
  4. 在C1输入=如果(n ≥ 2A1, 元素(l2, A1))
  5. 并下拉C1填充

其中,元素(element)指令:

元素( <列表>, <元素位置> )

至于操作请见下图:

请自行选中B列,设置为黄色;选中C列,设置为蓝色

那么,红色圈中的文本如何显示出来呢?

可以用设置标题(SetCaption)指令:

设置标题( <对象>, "<标题文本>" )

有多个对象需要设置标题,这里偷下懒:

即:D1,D2,D3分别为2,8,32;E1,E2,E3分别为4,16,64。于是:

设置标题[B1,"$\large\frac{1}{"+D1+"}#34;]

设置标题[B2,"$\large\frac{1}{"+D2+"}#34;]

设置标题[B3,"$\large\frac{1}{"+D3+"}#34;]

设置标题[C1,"$\large\frac{1}{"+E1+"}#34;]

设置标题[C2,"$\large\frac{1}{"+E2+"}#34;]

设置标题[C3,"$\large\frac{1}{"+E3+"}#34;]

【其实,这么有规律,应该是有快捷方法的。不过,啊K试不出来,如果您有其他方法,欢迎留言。】

选择用设置标题的方法,是因为可以和多边形一起出现,且可微调位置。

最后一个正方形的效果

最后一个正方形,即为:

poly2 = 多边形((7 / 8, 7 / 8), (1, 7 / 8), 4)

当n分别等于1,2,3,4,5,6时,黄色矩形、蓝色正方形开始逐一显示。

若7 ≤ n ≤ 8时,显示poly2;8 < n < 9,平移poly2;9 ≤ n ≤ 10,poly2逐渐变小直至消失。

那么,可以如何做?

其中,平移(translate)、向量(vector)指令:

平移( <几何对象>, <向量> )

向量( <起点>, <终点> )

点I的位置可根据需要达到的效果,再进行调整。

至于q2其实是将多种情况写在一起:

按一定的比例缩放,而且,比例是由1到0,即有逐渐变小的效果

这么做的好处是,只需设置一次标题与显示条件:

q2的标题为$\large\frac{1}{64}$,显示条件为n ≤ 9

文本的显示

逐渐显示文本1/2+1/4+1/8+1/16+1/32+1/64,并且与多边形的显示同步。

也就是n为1时,开始显示“1/2+”;n为2时,开始显示“1/4+”;……;n为6时,开始显示“1/64”。

如何达到这个效果呢?

序列即sequence,分数文本即fractiontext

这是将“1/2+”,“1/4+”,……,“1/32+”,“1/64”分别作为一个整体,再分别固定在某一个点上。

l5怎么理解呢?

如下图,n>6时,即为""。所以,不影响显示。故,n的范围无需限定。

当最后一个正方形“消失”后,显示文本=1-1/64,再显示文本63/64

也就是当n大于等于10,显示文本=1-1/64;当n等于11时,显示文本63/64

于是:

text1 = 如果(n ≥ 10, 公式文本("\textcolor{white}{=1-}\frac{1}{64}"))

text2 = 如果(n == 11, 公式文本("=\frac{63}{64}"))

其中,需将text1设置为粉色。

又或者让text1 = 如果(n ≥ 10, 公式文本("=1-\textcolor{#FF6699}{\frac{1}{64}}"))

再将text1设置为白色。

创建按钮

只要拉动滑动条n,即可看到动态演示的效果。

想用按钮的话,只需要创建两个按钮。

一个是初始化按钮,脚本为:赋值(n,0)

一个是演示按钮,脚本为:启动动画(n)

结语

  • 我们将整个作品的制作拆解成多步,再逐一解决。
  • 并且,只用一个滑动条来控制。于是,演示时,只需拉动滑动条即可。
  • 另外,用按钮来控制的话,其脚本也很简洁。

想要获取源文件?请点赞、转发、评论本文!

举报
评论 0