图形学使用方法(图形之美2.0从猜测提问到归纳总结)
我们先来简单回顾一下图形之美1.0——从“试错法”到“向错误学习”的内容。
我们从绘制一条边开始 → 绘制正四边形、正三边形、正六边形 → 猜测正多边形外角和等于360度 → 验证猜测 → 绘制其他的正多边形 → 找到圆的绘制方法;
接着,我们绘制了正五角星 → 通过试错法找到了144°这个度数 → 也找到了145°为什么不正确的理由 → 追问自己,145°既然不是五角星所对应的外角,那么它是哪个图形的外角?
回归到试错法,尝试调整边的数目,第一次意外的收获 → 分析这个意外的收获 → 人为将误差放置于边长这个参数上 → 将边长与旋转度数同时进行误差积累,第二次意外的收获 → 得到彩色螺旋线的绘制方法;
最后,将放大与缩小的方法进行迁移,解决了两道数学题目。
但是,“145°对应哪个图形的外角”依然是遗留问题。
在《图形之美1.0》中,我们建构了一条新的理解路径,更加强调基本方法的梳理与应用,更加强调“可理解性”的概念,同时强调了能力的迁移。通过这种方式,对《彩色螺旋线》这节经典的编程案例课进行了重构。在《图形之美2.0》中,我们将在此基础之上继续探究。
一、绘制正七角星
那么,如何绘制一个正七角星呢?
思路:我们已经比较熟悉正五角星的绘制流程了,通过同样的方法可以寻找到正七角星的外角度数。如果你认为没有参照物就无法分析的话,那么建议你可以先阅读第二部分的内容,然后再回到第一部分来。
重复执行中的次数,表示图形的边数;
移动的步数,表示边长,控制图形的大小;
旋转的度数,其实控制的是图形的样子;
不断尝试旋转度数,直到102度。
102度有点小了,图形尚未闭合,试试103度。
仔细分辨,103度又有点过了。也就是说,真正的外角度数应该介乎于102度与103度之间。那么,我们该如何进一步修正,从而找到那个准确的度数呢?遇到困难先别着急,一定要记得回忆我们之前是否曾遇到过类似的问题,以及当时是如何解决的。
回忆一下,我们在绘制正多边形的时候,通过“身体共鸣”的方式,猜测出对于任意一个正多边形而言,从开始绘制到结束绘制,身体始终恰好旋转了一圈,也就是360度,然后我们得出“旋转度数等于360除以边数”这个公式。
同样的思路,我们也可以用类似身体共鸣的方式,找到正七角星的外角和度数。但是很快,我们就会发现,身体共鸣的方式似乎走不通,存在一个小小的困难(你可以尝试用身体走出一个七角星,就会发现问题所在)。
这里我们将提供两种不同形式的理解思路,来寻找正七角星的外角和。
第一种,还记得我们在《图形之美1.0》中,如何将绘制直线的过程可视化吗?
同样的道理,我们能否将旋转的过程可视化?
相信你一定已经想到了,只需要做出如下图所示的调整即可。
为了解决我们在“身体共鸣”时所遇到的困难,我们不妨派一个角色出场替我们完成“共鸣”(将隐藏的角色显示出来即可),我们看看效果:
怎么样,旋转的度数数清楚了吗?似乎有点混乱,又是移动又是旋转的。如果能把移动和旋转分开,不移动只旋转就好了。再一次回忆模型中三个参数的意义,我们可以尝试将移动的步数改为“0”步再试试看。
怎么样,是不是清晰多了(这其实就是单变量控制法)!呆鲤鱼一共旋转了差不多两圈。
如果一圈是360度的话,那么两圈应该是多少度呢?没错,是720度。我们尝试一下这个度数,它一共有相等的七个外角,因此外角的度数为"720/7"度。重新尝试。
完美。
在第一种方法中,我们实际上是派出一个角色替我们完成“身体共鸣”,从而达到观察的目的。
我们接着来看第二种方法,它非常简单直接。我们已经知道当外角等于103度时,得到的图形虽然并不是正七角星,但是也非常接近了。
那么,此时,这个非常接近正七角星的图形一共旋转了多少度呢?每次旋转103度,共旋转了7次,因此一共旋转了103*7=721度。
想一想,旋转一圈是360度,那721度旋转了几圈呢?应该是2圈多一点点,恰好多了1度。此时图形稍微过了一点,如果要修正的话,你愿意尝试多少度呢?当然是720度啦。验证过程同第一种情况,不再赘述。
这样我们就完成了正七角星的绘制。正当我们开始准备换新任务的时候,有一个同学发现了一件有趣的事情。他说他发现了另外一个正七角星。我们看看他那里究竟发生了什么?
旋转度数为154度时,
旋转度数为155度时,
的确,这个正七角星不同于之前那个正七角星,但同样出现了要么差一点要么过一点的情形。
我们赶紧试试刚才学过的那两种方法,先把这个正七角星“修复”一下。这里用第二种方法进行修复:155*7=1085,最接近的圈数是三圈,而三圈等于1080度,因此将旋转度数修正为"1080/7"度。
完美!
可是,这是怎么回事呢?为什么会有两个不同的正七角星呢?按照自然的想法,是否还存在第三个不同样子的正七角星呢?似乎很难回答的样子。
我们重新回到绘制正七角星的过程上面来。在《图形之美1.0》的时候,所有的图形绘制任务,都是先有图形,然后再进行模仿绘制。因此,我们可以采用“先分析再绘制”的方法。但在这里,并没有给出具体的样子,而是通过“试错法”找到的。
那,正七角星有没有办法先在纸上画出来,然后进行直观地分析呢?
二、纸上绘制正多角星
重新描述前面的问题,如何把没有见过的正多角星在纸上先画出来呢?要回答这个问题,我们不得不回到五角星中进行分析。
注意,这个时候你还没有见过正七角星!
思考,正五角星与正五边形的关系是什么?
所谓关系,就是能否通过其中一个“抵达”另外一个?比如从一个正五角星出发,如何得到一个正五边形呢?我们很容易发现该五角星的内部其实就是一个正五边形。如果刚才的发现是通过观察“内部”得到的,那么如何通过“外部”获得一个新的正五边形呢?
如上图所示,只需要将五角星的顶点依次连线即可得到一个正五边形。这说明什么?
这说明了,我们可以通过绘制正五角星的方式间接得到一个正五边形。我们找到了一条从正五角星到正五边形的路。那么,反过来,能不能通过正五边形得到一个正五角星呢?
如上图所示,只需要把正五边形的每条边分别向两端延长,直至与另一条边的延长线相交,即可得到一个正五角星。
这样,我们就可以通过五边形来绘制正五角星。换句话说,我们找到了一个方法,这个方法能够通过正多边形绘制出正多角星。我们验证一下这个方法。
从正六边形到正六角星,
似乎这并不是我们期望的六角星的样子,因为这个图形是由两个三角形组成的,不能一笔画。
没错,这个图形正是前面我们通过试错法找到那个正七角星。
我们按照之前的思路,用这种方法去分别尝试绘制n=8、9、10、12、20、36……的情形,就能得到相应的正多角星。等等,正三十六边形,用手画的话,太费劲了。正六、正七边形已经画的是歪歪扭扭的了,正三十六边形,想想都想放弃了。怎么办?
怎么办?先别着急。还记得在《图形之美1.0》中,随着边数的增大,正多边形越来越像什么吗?
对了,正多边形会越来越像一个圆。我们刚才已经学会通过正五边形与正五角星的关系来理解它们了,那正多边形和圆的关系又是什么呢?
上图揭示了正多边形与圆(实际上是它的外接圆)的关系,我们将从两个方面考察这一点。
一方面是从正多边形到圆,我们只需要把每一条边替换为圆弧,就能得到圆。
另一方面是从圆到正多边形,正多边形的顶点实际上恰好就是整个圆周的等分点。也就是说,假设n=5,我们可以先画一个完整的圆,然后将圆周进行五等分得到五个点,然后依次连接这五个点,就能得到正五边形。
我们再次以正七角星为例。
我们可以通过这样的方式在纸上画出正多角星了!
三、探究正多角星数目
在第一部分中,我们发现了两个不同的正七角星;在第二部分中,我们找到了“圆→正多边形→正多角星”的绘制路线;我们将圆、正七边形、正七角星放在一起观察一下。
对于同样的7个点,按照1-2-3-4-5-6-7-1的顺序画弧,得到的就是一个圆(黑色);按照1-2-3-4-5-6-7-1的顺序连线,得到的就是一个正多边形(蓝色);按照1-3-5-7-2-4-6-1的顺序连线,得到的就是我们之前找到的正七角星(红色)。
我们找到了比刚才更加优化的一个做图方法:先描点再连线,不同的连线顺序就能得到不同的图形。
那么,另外一个正七角星也能通过这样的方式绘制出来吗?验证一下。
果然可以,是1-4-7-3-6-2-5-1的顺序,和之前的顺序不同。也恰恰是因为连点的顺序不同,所以最终得到了不同的图形。
因此,我们找到了一个方式,而这种方式可以解释之前那两个不同的正七角星的来源问题,因此这种方式更具有解释力。
我们按照逆时针的顺序对圆周上的点按自然顺序(1、2、3……)进行标号。从标号为“1”的点开始,
- 每一个点依次与“ 1”标号的点相连则得到正多边形;
- 每一个点依次与“ 2”标号的点相连得到了正七角星;
- 每一个点依次与“ 3”标号的点相连得到了另一种正七角星。
接下来,很自然的一个问题,如果分别与“ 4”的点、“ 5”的点、“ 6”的点相连会得到什么样的图形呢?
注意:这里不能与“ 7”的点相连,因为从标号为“1”的点开始数,“ 7”就会回到自身;且这里默认为取余运算,也就是说8和1关于7是同余的,所谓关于7同余指的是1除以7的余数与8除以7的余数是相同。
我们按照这种方式,重新验证n=5、6、8、9、10、11的情形,结果如下图所示。
这样,即便是面对任意一个正多角形,我们也有自信将其画出来了!
我们仔细观察这张图,将注意力聚焦在画横线的那些图上,也就是不能一笔画出的正多角星。其实,“正多角星”这个名称已经不准确了,因为它表示的图形并不唯一,我们需要构建一个新的名字来描述它们。
不难发现,所有无法一笔画出的构图方式与n的取值之间都存在着某种联系。当构图方式( 2)恰好能被n(=6)整除的时候,是无法绘制的,此时恰好是2个3(=6/2)角形。
猜想:对于任意的n,分别考察1/n、2/n、3/n……。当k/n无法约分的时候,存在相应的正多角星;否则,当k/n可以约分的时候,不存在能够一笔画出的正多角星。
鉴于正多角星无法唯一的表示图形,且正多角星本身也是正多边形。不妨给出如下的新定义。
第k型正多边形:当k/n无法约分时,我们将通过“ k”连边方式得到的图形称为第k型正多边形。
例如,第1型正多边形就是我们很熟悉的正多边形,而第2型正五边形其实就是正五角星。
至此,我们虽然尚未能找到一个准确的计数公式,去计算对于任意的n,不同类型的正多边形的数目。但是,我们却能够通过这种方式绘制出所有类型的正多边形。
想一想,你能编写一个程序完成这个绘制任务吗?
四、145度的正多边形?
既然已经找到了各个正多角星,接下来就需要通过编程逐一绘制了。
先使用“试错法”找到各个图形大概旋转的角度,然后通过“直接计算法”或者“(等价)身体共鸣”的方式进行优化调整,直至找到各个图形旋转度数的准确值,然后将各个图形对应的外角和并填入下方的表格中。
在上表中,我们很容易看到,
第1型正多边形的外角和总是等于360度;
第2型正多边形(如果存在的话)的外角和总是等于720度,而720恰好等于360*2;
第3型正多边形(如果存在的话)的外角和总是等于1080度,而1080恰好等于360*3;
第4型正多边形(如果存在的话)的外角和总是等于1440度,而1440恰好等于360*4……
猜想:如果k/n是最简分数,那么第k型正n边形的外角和等于360*k度。
最后,我们回到上节课遗留的问题,145度对应的正多边形是?如果第k型正n边形对应的外角度数恰好为145度,根据上述猜想,我们应该尝试使等式145*n=360*k成立的n和k。
因此,k=145*n/360,换句话说,我们只需要找到使得“145*n/360”为整数的最小整数n即可。
不论是手算还是通过编程来计算,我们都能得到当n=72时,145*72/360=29,这说明了,第29型正72边形对应的外角恰好是145度。
小结
上述过程其实是一个由好奇心出发,通过“关系”的角度提出关键问题,用已有的方法进行类比探究,最后通过结构化框架进行知识梳理与总结的过程。
我们不妨重新梳理一下,学生在上述过程中可能获得的:
1、找到了“身体共鸣”的一种等价方式;
2、将旋转的过程进行可视化;
3、单变量控制法;
4、对于360的整数倍的敏感程度(这其实就是一种数感,例如熟记π、2π、3π……);
5、新问题与旧问题进行关联的方法(这其实就是模式匹配,是计算思维的重要内容之一);
6、从正五角星与正五边形的相互关系出发进行提问和学习的方法;
7、从圆到正多边形,再到正多角星的作图方法;
8、通过n等分一个圆周得到n个点,按照固定次序连点的作图方法;
9、通过分析n=5、6、7、8、9、10、11这些具体的案例,再用表格的形式进行归纳整理,从而提取关键信息的方法;
10、提出猜想、并进行验证的方法;
11、创造概念的方法(描述);
最后,留两个思考题:
1、正五角星的外角和是720度,那么在圆周上任意找五个点作五角星,它的外角和还是720度吗?进一步,任意大小的五角星外角和还是720度吗?
2、通过五边形可以画五角星,通过五角星可以画新的五边形,通过新的五边形可以再过一个新的五角星……这个过程可以一直重复下去。那么,这种不断迭代的图形长什么样子呢?
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com