Scratch数学编程之画半正则镶嵌图
一、【镶嵌】从一般意义上来说,就是将几何形状以马赛克的方式铺满整个平面。罗马时代的马赛克就被称为“镶嵌”。今天,“镶嵌”一词被用来描述可以覆盖一个面(这种覆盖是指技术上完全填充,不留任何死角)的任何形状的图案。平面镶嵌是三维多面体的一个基本元素。

正多边形
二、【正多边形镶嵌】是由多个正多边形构成的,这与填充一个平面的方式是完全一致的。存在无数个正多边形——从等边三角形开始,接着就是正方形、五边形、六边形、七边形、八边形等,一直到圆形,这些图形都被视为正多边形,其边数可以是无限多的。几何学最令人震惊的一个违反直觉的事实就是,只存在着少量的正多边形镶嵌。惊人的是,正多边形唯一的边对边的镶嵌方式只适用于三种正多边形,包括等边三角形、正方形和正六边形。

3种正多边形镶嵌
在为数不多的正多边形镶嵌背后隐藏着一个具有美感的几何学逻辑。因为它们的基本元素都是正多边形,其中一个必须满足的条件就是:这种多边形的每一个交点(顶点)所形成的角度之和都必须是360°。在一个正三角形(等边三角形)里,每个内角为60°,因此,六个这样的三角形必然能够在一个顶点汇聚。在一个正方形里,每个内角是90°,因此四个正方形也能够在一个顶点汇聚。在一个正六边形里,每个内角是120°,因此,三个这样的六边形能够在一个顶点汇聚。
除此之外,任何其他正多边形无论有多少条边,都无法在一个平面以正多边形的形式进行镶嵌——只存在三种正多边形的镶嵌方法。
三、【半正则镶嵌】半正则镶嵌是指使用两种或两种以上的正多边形来镶嵌,并且在每个顶点周围都有相同的正多边形以相同的方式进行排列——用数学语言可以阐述为,每一个顶点都与另一个顶点全等。
一共有八种半正则镶嵌的方法。如图所示,它们是由五种不同的正多边形组成的:三角形、正方形、六边形、八边形与十二边形。与正多边形镶嵌类似,这也是一个小得惊人的数字。约翰尼斯·开普勒与他的后继者们都在马赛克镶嵌问题上进行了先驱性的研究。它不仅是消遣数学方面的内容,也是结晶学、编码理论和元胞结构等方面的重要研究工具。

八种半正则镶嵌示意图
这样的信息可以用施莱弗利符号轻而易举地表达出来。比如,{3,12,12}就是指每一个顶点上,按顺时针方向,连接着一个三角形与两个十二边形。我们不得不在一个顶点上,找寻一种能够填满360°的正多边形的组合。每个角度的组合都符合这个条件的,就被称为“顶点图形”。这是创造任何形式的正多边形镶嵌的一个基本条件。
四、镶嵌与施莱弗利符号:

二十一个顶点图形
约翰尼斯·开普勒以他在天文学方面的成就闻名于世,但他同时对几何镶嵌和多面体研究也有着极大的兴趣。在他1619年出版的《世界的和谐》一书中,记载了一系列关于正多边形和星状多边形瓷砖形状的内容。
“对外部世界研究的主要目的在于发现理性的秩序与和谐,这一切都是上帝创造的,并通过数学的语言向我们透露出来。”开普勒在书中这样写道。如果我们将一致性的约束条件——每个顶点都必须等于其他顶点(在正多边形镶嵌中)省略掉的话,我们就可以创造出额外的镶嵌组合。要想做到这点,也需要满足一个基本要求:每个顶点上连接的正多边形都必须形成一个完整的顶点图形,即它们每个内角之和都必须等于360°。
那么我们能够找到多少个完整的顶点图形呢?一个系统的程序只会做出21个不同的完整顶点图形或顶点图像(如图所示),这些图形都可以用施莱弗利符号去表达。考虑到正多边形有无穷多个,这个数字实在是少得让人震惊。
对于每一个可能形成的镶嵌来说,都存在着一些基本的要求,但只满足这些基本的要求是不够的。只有一些能够形成完整顶点图形的组合,才能扩展成镶嵌图形。图1、图2和图3中的顶点图形构成了三种正多边形镶嵌;图4至图11中的顶点图形则构成八种半正则镶嵌。两个或三个顶点图形的不同组合,至少会形成十四种非正则镶嵌图。拥有三个以上顶点图形的正多边形镶嵌,其数量是无限的。
顶点图片 上面的多边形拥有二十一个顶点图形,以施莱弗利符号表达如下:

二十一个顶点图形的施莱弗利符号表达
五、阿基米德多面体——半正则多面体

半正则多面体
半正则多面体,或者说阿基米德多面体,是由有着相同顶点的不同正多边形组成的。
一共有13个不同的半正则多面体。阿基米德最早对这些立体进行了描述。文艺复兴时期,这方面的知识重新被当时的数学家发现,并由开普勒在1619年构建了一个完整的体系。直到现在,在游戏或谜题领域,仍然存在着许多未被探索的可能性。比如对截角四面体(3,6,6)的记号法就意味着每一个顶点都包含着一个三角形、两个六边形,并且是以循环次序来排列的。在所有的立方体里,扭棱立方体与扭棱十二面体都是以两种镜像或是对映体的方式展现出来的。
六、三种正多边形镶嵌画法比较简单。我们重点来探讨半正则镶嵌图形的画法。
先来画比较复杂的34334结构的半镶嵌,其余留给读者探究。

34334结构的半镶嵌
它用的正多边形只有两种,即三角形和正方形组成一个基本组合——完整的顶点图形:

两个方向的基本组合
1.算法:整个镶嵌可以视为34334组合在不同两个方向和不同位置贴合而成,尽管可能有正三角形或正方形的部分重合,这不影响镶嵌的事实。
2.定义一个画实心正多边形的子积木,首先需要保存位置和恢复位置的子模块,需要顶点坐标x和y、长度L、边数N以及初始方向θ:

画带顶点坐标起始方向边长和边数的正多边形程序
3.画基本组合的子积木,画一个正多边形回到顶点,转一个角度再画下一个正多边形:

画3 4 3 3 4基本组合子程序
4.布置基本组合的程序

4个不同组合起始位置数据示意
布置从舞台左上角开始,注意看上图左上角,分别以的四个红色箭头的起点处为顶点,箭头方向为起始方向,有四种组合图形,我们分别将其中每一个依次排列在屏幕上。例如我们取L=23,①的位置横坐标为x=-190 L,纵坐标y=178-L,可一个用双重循环将每行排7次,共排5行:

第一个组合排列
然后以的坐标为基准,分别计算出② ③ ④的坐标,像前面那样用双重循环排列,由于循环结构一样,我们就可再用一个4次循环,统一把① ② ③ ④排在舞台上,这就需要把这四个基本组合的位置坐标和方向放在一个“起点位置”的列表里面,便于外面的4次循环调用。

录入4个组合初始位置数据
画图主程序

主程序
5.效果还不错:

34334半正则镶嵌效果
七、读者可借鉴前面的思路,画出其余7种半正则镶嵌图。
,

















