一类多面体中五边形的数量

一说到多面体,我们会有很多有趣的联想:或许是魔方、或许是化学物质、或许是精美的艺术品等等。多面体向来是富有几何美与设计美的,而对多面体的数学研究也不断更新迭代,欧几里得的《几何原本》上已经给出了凸正多面体只有五种的证明,现在我们也可以通过\(SO(3)\)的有限子群来理解它,本篇要提到的欧拉示性数也是这方面的一个好例子。

恰如“美是首要的试金石”所言,今天我们谈起多面体的问题任然乐此不疲,或许就是被它的美和实用所吸引。这篇文章要介绍的问题是前阵子答疑时碰到的,恰好和一段时间之前水群讨论的游戏中的一个思考关联了起来,再联系到多面体的奇妙深刻,所以我想把相关内容都写下来同大家分享~

各式各样的多面体

由五边形和六边形构成的多面体

问题描述:对于一个只由正五边形和正六边形构成的多面体,证明其中正五边形的数量必须恰好为\(12\)个。这在退化的情况下也是成立的,即不含六边形只由五边形构成的多面体一定是十二面体(正十二面体),另一方面不存在不含五边形只由六边形构成的多面体。

如果我们知道多面体的欧拉公式,即对于一个顶点数、棱数和面数分别为\(V\)、\(E\)和\(F\)的多面体,始终有\(V-E+F=2\)成立,证明上述结论是不困难的。但在证明之前有必要明确一下我们说的“多面体”到底指什么,一个多面体是一些平面多边形的集合(这些多边形就称为多面体的面),它们满足:

  • 若多面体的两个面相交,则它们一定交于一条公共边
  • 每个面的每条边恰好是另一个面的一条边
  • 在每个顶点处相交的那些面可以排成一个序列,其中每相邻两个面有一条公共边,而第一个面和最后一个面也有一条公共边
  • 任意两个顶点之间都能通过若干条棱间接相连
  • 沿着表面任意一个闭合的线圈剪开多面体,都能将其分成两块

这些要求基本都是常识性的或技术性的,可以不用细看,只需注意我们讨论的多面体是指一些面的集合而非实心物体即可,总之我们把讨论范围限定在了与上面那张图中所画的那些多面体类似的对象中。

现在回到原问题上,考虑在一个顶点处相交的那些正五边形和正六边形,显然在一点处相交的面数是\(\geq 3\)的,而另一方面这些面在这点处的角度和一定小于\(360^\circ\),如果相交的面数\(\geq 4\),则至少有一个面在这点处的角度小于\(90^\circ\),但正五边形和正六边形每个角的角度分别是\(108^\circ\)和\(120^\circ\),故有如下结论:在只由正五边形和正六边形构成的多面体中,一点处相交的面数应恰好为\(3\)

那么假设一个只由正五边形和正六边形构成的多面体中有\(F_1\)个面是五边形、\(F_2\)个面是六边形,则该多面体的点数为\(V=\frac{5F_1+6F_2}{3}\),棱数为\(E=\frac{5F_1+6F_2}{2}\),面数为\(F=F_1+F_2\),代入欧拉公式中得:$$V-E+F=\frac{5F_1+6F_2}{3}-\frac{5F_1+6F_2}{2}+F_1+F_2=\frac{F_1}{6}=2$$所以多面体中五边形的数量必然为\(F_1=12\)。

至此原问题已经完全得到解决,事实上用这个结论可以说明一些很有趣的现象,比如富勒烯的形成。作为一个自然界普遍存在的稳定分子,富勒烯肯定选择了最稳定的空间排列方式,以\(C_{60}\)为例,我们知道它由\(12\)个碳五元环和\(20\)个碳六元环组成,可以把它看作一个以碳原子为顶点的多面体。\(C_{60}\)中每个碳原子近似于\(sp^2\)杂化,理论上应该是像石墨那样形成六元环密铺的结构,但由于欧拉公式的限制,导致\(C_{60}\)中不得不出现五元环。其余富勒烯也有类似现象,除了普遍的六元环外它们都必须含有\(12\)个五元环才行。

两种富勒烯的示意图,左侧是\(C_{60}\),右侧是\(C_{540}\)

欧拉公式与欧拉示性数

现在最初的问题已经解决,为了更明晰结论,我们先来对欧拉公式做进一步讨论。这里首先来给出对欧拉公式的一个证明,这个证明是我很久以前在Armstrong的《Basic Topology》上读到的,它采取的角度能更让我们理解欧拉公式特别是等号右边的\(2\)到底意味着什么。

欧拉公式证明的示意图,图片取自Armstrong的《Basic Topology》

对于一个给定的多面体,我们像上图所示的那样做一个投影,即取一个球面包围住多面体使得球心在多面体内,对于多面体上的每个点,将球心和该点连线的延长线与球面的交点作为投影点,这样多面体的每个面变成了一个球面多边形。

考虑一个球面\(n\)边形,设它每个的角度数为\(\alpha_1,\alpha_2,\cdots,\alpha_n\),不妨设球面的半径为\(1\),则可以证明这个球面\(n\)边形的面积为:$$S=(\alpha_1+\alpha_2+\cdots+\alpha_n)-(n-2)\pi=\sum_{i=1}^n\alpha_i-n\pi+2\pi$$如果原来的多面体共有\(V\)个顶点、\(E\)条棱和\(F\)个面,则把所有投影以后的球面多边形面积相加得:$$\sum S=\sum(\sum_{i=1}^n\alpha_i)-\sum n\pi+2F\pi=4\pi$$注意到\(\sum n\)等于多面体所有面的边数之和,这相当于把多面体的棱统计了两次,有\(\sum n=2E\),而多面体每个顶点投影到球面之后,相交在该点处面的角度之和应为\(2\pi\),而\(\sum(\sum_{i=1}^n\alpha_i)\)刚好把所有面的角都计算了一次,所以最终有:$$\sum S=2V\pi-2E\pi+2F\pi=4\pi$$等式两边都除以\(2\pi\)即得欧拉公式\(V-E+F=2\)。

对欧拉公式的证法非常多,上面的证法需要用到球面多边形面积公式,比它更加基础的证法也不少。但选用这个证法的好处在于,从这个证明过程中能够很清晰地体会到,实际上这欧拉公式是“从属于球面”的。当然这句话并不直击要害,因为单论点减棱加面这件事对一些糟糕的“多面体”(比如像螺帽那样有一个通孔)也是可以运算的,所以其实应该说是欧拉公式中等号右边的\(2\)这个数字“从属于球面”,它被称作球面的欧拉示性数

欧拉示性数是一个拓扑不变量,即至少拓扑同胚的物体有相同的欧拉示性数。要想象什么叫同胚的话,经典的方法是把对象想象成橡皮泥,然后随意进行塑形,过程中保证不拉断它也不把几个点粘在一起,这样产生的变化就可以类比为同胚,下图是Wikipedia上同胚词条的一个动图,是一个很经典的形象解释同胚的例子:

拓扑学家分不清咖啡杯和甜甜圈

不难想象,我们讨论的这些多面体肯定都是和球面同胚的,因此它们享有和球面相同的欧拉示性数\(2\),这决定了多面体的欧拉公式\(V-E+F=2\)。可以再举几个例子来感受一下欧拉示性数与同胚的含义:

  • 圆周的欧拉示性数为\(0\),可以想象一个棱柱去掉上下底面之后可以连续变化到圆周(这里不是同胚而是一个较弱的同伦),对它有\(V-E+F=0\),或者一个多边形(看作是它所有边的集合)同胚于圆周,对它有\(V-E=0\),此处因为多边形没有面的概念所以不需要\(+F\)
  • 圆环面的欧拉示性数为\(0\),可以想象螺帽是同胚于圆环面的,将它也算作多面体套用欧拉公式的话,有\(V-E+F=0\)
  • 实心球体的欧拉示性数为\(1\),想象将多面体和它内部的空间并在一起以后就同胚于实心球体了,对它有\(V-E+F-G=1\),这里的\(-G\)可以理解为就是减掉那一个内部空间,其实可以把顶点看作\(0\)维、棱看作\(1\)维、面看作\(2\)维,那么内部空间应该看作\(3\)维,欧拉示性数就是在将对象各个维度内容的数目做交错和以后得到的一个不变量

很遗憾我们并不能三言两语阐明欧拉示性数为什么来源于这样一个交错和,又为什么是一个同胚下的不变量,这部分需要一点代数拓扑的知识,这里不再展开讨论。

多边形“密铺”球面

之前水群时曾经碰到过一个有关《文明6》的问题(我没有接触过这个游戏,所以可能有些地方会描述得不准确),总而言之这个游戏的地图类似于用正六边形进行密铺得到的一个平面。在游戏中用正六边形密铺代替正方形密铺是一个常用的设计,正六边形不仅保持了正方形各个方向的等距性,两个格子之间路径的变化也丰富了很多。当时对这款游戏讨论过的一个问题是:为了进一步增加真实性,为什么不把游戏地图做成一个球面呢?

《文明6》游戏截图

现在用这篇文章可以给出一个回答:只用六边形将地图做成球面是做不到的,因为球面的欧拉示性数为\(2\)。具体来说,如果总共使用了\(N\)个六边形来做地图的话,地图是一个有\(N\)个面、\(3N\)条棱和\(2N\)个顶点的多面体,\(2N-3N+N=0\neq 2\),因此无论如何都是做不到只用六边形得到一个近似球面地图的。

但如果退而求其次,允许在地图中掺入一些五边形,至少是可以得到一个多面体的,而我们之前已经证明过,只由正五边形和正六边形构成的多面体中正五边形的数量一定是恰好\(12\)个,这对于可能有成千上万个格子的游戏来说不是什么大问题,特殊处理一下即可。事实上不难证明,对任意的\(N\geq 2\),都存在由\(12\)个五边形和\(N\)个六边形构成的多面体。

不过制作球形游戏地图另一个可能的问题在于,在六边形中掺入五边形得到的多面体可能并不是那么像球面,比如上面的\(C_{540}\)图片可以明显看出这已经完全不像是一个球了。这说明多面体的数学理论只是解决这些问题的一个基础,在具体细节上肯定还需更细打磨,针对这里的问题一个可行的办法是采用戈德堡多面体:

三种不同的戈德堡多面体

戈德堡多面体是由正五边形和正六边形构成的多面体,其特点是每个顶点到多面体重心的距离都相等,换句话说可以给戈德堡多面体外接一个球,再加上其自身具有很好的对称性,使得这类多面体看起来已经非常像球面了,事实上最简单的足球的结构也是一个戈德堡多面体。在制作地图这方面,一款叫《The Cosmos is MINE!》的游戏对戈德堡多面体的应用相当出色:

《The Cosmos is MINE!》地图概观:用戈德堡多面体近似了一个球面
《The Cosmos is MINE!》游戏内的一个场景,基本单元大都是正六边形,但实际上全地图里还是暗藏了\(12\)个正五边形

关于戈德堡多面体,相关的构造算法这里就不介绍了,但我还想说的是,利用本文的内容,实际上可以给制作游戏地图这个问题一个另类的解答:我们发现只使用六边形不能近似球面地图是因为拼成的多面体点减棱加面等于\(0\),而球面的欧拉示性数是\(2\),那反过来想,我们换一个欧拉示性数是\(0\)的地图来近似不就可以了?

用正六边形拼成的多面体来近似圆环面

比如圆环面的欧拉示性数就是\(0\),那我们完全可以设计一个圆环面的游戏地图,然后就可以用每个面都是六边形的多面体来拼成地图了,上图就是一个示例。不过圆环面在大多数场景里比较缺少真实性,一个更好的想法可能是去掉球面的南北极,这样它的欧拉示性数也是\(0\),但缺点在于这样没办法像戈德堡多面体那样做得很像一个真实的球面。无论最终实用与否,这里至少从欧拉示性数的角度,给了我们两种不错的设计启发。

另一个趣题来源于《Minecraft》这款游戏中(我很喜欢这个游戏QwQ),这是一款三维沙盒游戏,所有的内容都由“方块”来进行表达:

《Minecraft》一个游戏场景的渲染图,所有东西都用像素和方块来表示
《Minecraft》游戏截图,所有地形和建筑都是由方块搭成的

可以说六边形密铺是将二维游戏空间划分成基本单元的一个绝妙想法,那么对于《Minecraft》这样的三维游戏空间,使用立方体进行划分看起来是一个很自然的想法。但使用立方体会导致轮廓过于鲜明,有些地方的效果或许不尽人意,那么是否可以引入更多的多面体来构建整个游戏使得细节更加细腻,这些多面体又应该满足什么样的基本性质呢?到此为止,已经和本文主题相去甚远啦(捂脸)这些内容就等到下次有时间再写一篇文章同大家分享吧~

发表评论

电子邮件地址不会被公开。 必填项已用*标注