可以利用GeoGebra来制作立方体的展开动画。
先来看看效果:
“141”“231”“222”“33”

立方体展开情况的示例:
接下来,看看是怎么制作的。
具体制作主要运用到的指令有正六面体(cube)、展开图(net)、滑动条(slider):
正六面体( <点1>, <点2>, <点3> )
展开图( <多面体>, <展开程度值 0~1>, <面>, <棱1>, <棱2>, ... )
滑动条( <最小值>, <最大值>, <增量>)
我们先把正六面体的三个点写出来,再写正六面体,具体如下:
A = (0, 0, 0)
B = (1, 0, 0)
C = (1, 1, 0)
a = 正六面体(A, B, C)
可以得到如下正六面体:
可以发现:下底面,按逆时针方向,分别为:A、B、C、D;上底面,按逆时针方向,分别为:E、F、G、H。
这就是我们先做出点A、B、C的原因:这么有规律性,我们在制作的时候,自然无需花精力去留意点的位置与名称。
另外,还可以发现棱的名称比较长,为了后面书写的方便,可以重命名。
这里,直接将前缀“edge”去掉:
示例【删除“edge”后,记得敲回车键】
假设都以面faceABCD为底面,来展开立方体a,展开程度值为k:
k=滑动条(0,1)
那么,可以这么书写展开图(a, k, faceABCD, <棱1>, <棱2>, ... )。其中,棱1、棱2等位置需要具体书写棱的名称。
怎么理解呢?
就是以面faceABCD为底面,沿着棱1切开,再沿着棱2切开如果还有棱3,棱4,……,那么就是继续沿着棱3切开,沿着棱4切开,……从而可以将立方体a展开并且,是由k来控制立方体a的展开程度:k为0时,即不展开;k为1时,完全展开所以,棱的书写顺序很重要!
想好了,可以极大地节省制作工序!为了让最终效果的呈现不杂乱,我们按照“141”“231”“222”“33”的展开情况,依次作出展开图。
首先,第一种情况是如下的展开图:
你能想到是如何书写指令的吗?
a1
a1 = 展开图(a, k, faceABCD, AB, CD, EH)
如何思考呢?
faceABCD是底面,不动的面必须切开的(也可以理解为必须断开的)就是棱AB、棱CD接下来,因为面ABFE、ADHE、DCGH这三个面是必须连着的那么,也就是在棱EH处断开于是可以书写:a1 = 展开图(a, k, faceABCD, AB, CD, EH)其他的展开图请自行思考,具体的,可参见下图:
【再提一点个人体会:】
先把11种展开图放在一旁,对照着来做。对着展开图来思考,首先要断开的是哪一条棱或两条棱,直接输入,再接着思考。当输入的棱已有四、五条,却还没有达到效果,那么请重新思考。由于立方体的展开多达11种,所以我们依次命名为a1,a2,……,a11。
每一个书写完,就将其隐藏,继续书写。全部写完,再设置显示条件。
假设已有n=滑动条(1,11,1)
属性——高级——显示条件
a2显示条件为:n==2
a3显示条件为:n==3
……
a11显示条件为:n==11
再创建11个按钮,以按钮“第一种”为例,脚本如下:
赋值(n,1)
赋值(k,0)
启动动画(k)
那么按钮“第二种”,只需要将上述脚本的第一条改为赋值(n,2)。
“第三种”,只需要将上述脚本的第一条改为赋值(n,3)。
至此,就基本可完成制作。其他细节的,比如对颜色、线径的调整。
值得一提的是,点很碍眼,并且,隐藏了也没什么效果!
所以,可以选中所有点,将点径调到最小:
结语
用到的指令,其实也就是那么一条展开图的指令,关键还是在于思考的角度与方向。
啊K自己也是思考了不少时间,所以,如果需要该源文件,需要转发,并写上“立方体的11种展开”。
又或者在本文评论区,夸一夸啊K,也可以获取源文件。
当然,你也可以转发并夸奖一番。