正八胞体是如何折叠的?

折叠正八胞体的各个立方体时,三维的展开图是怎样变成四维的正八胞体的?更仔细地想一想我们早已熟悉的旋转,也许能帮助我们理解。

这里画的是一个正八胞体和它的展开图。可是,展开图是怎样变成正八胞体的呢?

拖动即可转动。

一个在四维空间中转动的正八胞体,以及它的一种展开图:八个立方体,在三维空间中排开。

简化旋转

折叠正八胞体要用到四维旋转,而四维空间对我们来说相当抽象。不过,有很多抽象的东西,我们最终都学会了理解。也许问题并不在于用四维的方式思考太难,而在于思考旋转太容易了。

我们小时候会学数字的加法和乘法,却没有人教我们怎样旋转东西,因为这个大家早就会了。你会看到婴儿在学习旋转:把东西转来转去,观察转完的样子。但正因为我们对三维旋转有直觉上的理解,我们可能从来不会仔细去想它;一个人完全可能学了好多年数学,却对这个基本概念没有多少理解。

正八胞体属于一个图形家族,这个家族还包括正方形和立方体,它们的所有边都一样长,所有角都是直角。所有角都是直角,意味着我们可以让它们沿着各个轴摆放来呈现。这也意味着,我们暂时可以把对旋转的研究简化为只考虑轴与轴之间的90°旋转。

正方形、立方体和正八胞体,每条边都按它所在的轴着色:x、y、z和w。

折叠正方形

那么,我们先来想想怎样折叠一个正方形,因为它是唯一能在二维屏幕上完美呈现的东西。正方形的展开图就是四条线段。现在它们都在x轴上。我们会用颜色来区分x轴和y轴,这在后面会很有用。

另一件对后面很有帮助的事,是试着不要把这些线段看成“在x轴上”,而是更多地把它们看成“垂直于y轴”。

如果我们旋转右边那条线段,你会看到它从x轴变到了y轴上。每次90°旋转都会让东西在x轴和y轴之间互换,所以整个图形可以从完全在x轴上,变成一半的边在x轴上、一半的边在y轴上。

移动滑块来折叠正方形的展开图,从右边开始,一次折一个连接处。每条边都按它所在的轴着色。

呈现立方体

现在我们升级到立方体。我们现在关心的是一个三维图形,而屏幕只有二维,所以要怎样呈现它,我们有几种选择。

我们可以用等轴测视图来画,把三个轴画成彼此相隔120°。或者,我们可以画透视图:x轴和y轴保持垂直,东西沿着z轴往后退时会变小。

注意,在等轴测视图中,所有正方形看起来都变形了,但至少它们看起来都一模一样。在透视图中,前后两个正方形没有变形,但其余四个正方形看起来都像梯形。

但无论在哪种视图中,我们应该都能找出三对正方形,分别垂直于各个轴。如果一个正方形垂直于z轴,它的边就应该沿着x轴和y轴。在两种视图中,我们都应该能看到这样的一对正方形。同样,我们应该能看到一对垂直于y轴的正方形,以及一对垂直于x轴的正方形。

等轴测
透视
同一个立方体,分别以等轴测和透视方式呈现。选一个轴,就会点亮垂直于它的那对正方形。

折叠立方体

现在来看看,如果这些正方形一开始都在xy平面上,也就是垂直于z轴,会发生什么。这里我们只关注三个正方形,它们构成立方体的一个角。

我们来折右边的正方形。把这个正方形和相邻正方形连起来的那条边沿着y轴,所以我们就绕着这个轴折叠。因此在这次旋转中,y轴不会改变。不过x轴和z轴会互换位置,就像在二维的情况中那样。这个正方形原本朝着y方向的边仍然朝着同一个方向,但原本沿着x轴的边现在指向z轴方向。

而当作为旋转轴的那条边沿着x轴时,就像上面那个正方形那样,我们会看到,所有平行于x轴的边都会保持不变,而原本平行于y轴的边则会转到平行于z轴。在这种情况下,有一条边会转向之前另一条边已经转到的位置,于是在折叠的过程中,边会彼此接上。

等轴测
透视
把右边的正方形绕着它沿y轴的边折叠,再把上面的正方形绕着它沿x轴的边折叠。每个正方形都按它所垂直的轴着色,所以右边那个会从z变成x。

在进入四维的情况之前,值得花点时间想想我们在屏幕上看到的东西,因为我们太习惯三维世界了,大脑几乎会自动帮我们把它理解好。

想象一下,你只习惯看二维图像,并试图弄明白这里发生了什么。因为只习惯二维图像,你以前见过四个正方形在一个角相会,但三个正方形在一个角相会,就像立方体那样,可能就显得不合情理。在等轴测图中,这个旋转看起来就像一个菱形稍微变了变形,最后变成了一个朝向不同的菱形。而在透视图中,它看起来就像两个正方形变成了梯形。但这些都只是你对三维中所发生之事的二维视角。

呈现正八胞体

那么,我们进入四维吧。同样,对于怎样呈现多出来的这个轴,我们也有几种选择。

同样,我们可以使用透视。这种透视让我们的立方体看起来像是大正方形里套着一个小正方形。它会让我们的正八胞体看起来像是大立方体里套着一个小立方体。

或者,我们也可以再试试等轴测视图。我们在二维中表示三个轴时,是让它们彼此相隔120°;如果把正轴和负轴都算上,就是相隔60°。现在我们可以在二维中表示四个轴,让正轴和负轴之间相隔45°,这样画出来的正八胞体就像下面那个平面的图。但这意味着有些轴之间会相隔90°,并不是所有正方形看起来都一样。

另一种选择是在三维中表示这四个轴,这样就能得到真正的等轴测视图:所有轴彼此相隔约109°,于是所有立方体看起来都变形了,但彼此一模一样,就像立方体的等轴测视图中的正方形那样。事实上,正如通常的等轴测视图中立方体看起来像一个六边形,在这种视图中,正八胞体看起来就像一个菱形十二面体。

透视

拖动即可转动。

平面,轴间相隔45°
三维,轴间相隔109°

拖动即可转动。

同一个正八胞体,三种画法:透视图、轴间相隔45°的平面图,以及把四个轴放在三维中、彼此相隔约109°的画法。

折叠正八胞体

现在,我们开始来看正八胞体的各个立方体是怎样折起来的。这里的立方体一开始的边都沿着x、y和z方向,所以整个立方体垂直于w轴。

我们不习惯说一个立方体垂直于什么东西,但当你多了一个维度,就会出现这种情况。在平面上,正方形其实没法垂直于任何东西。要有了第三个维度,正方形才能垂直于一个轴;而现在我们有了第四个维度,立方体也就能垂直于一个轴了。

值得注意的是,既然我们现在身处四维,一个平面也可以垂直于另一个平面,这就是为什么我们不再绕着一条边旋转,而是要绕着一整个面旋转。

还有一点也许有帮助:在二维的多边形中,边是整个图形的边界;而在三维中,边只是图形的两部分相接、折叠的地方。同样,在三维中,面是整个图形的边界;但在四维中,面只是图形的两部分相接的地方,也是它们折叠时所绕的东西。

这里只有两个沿着x轴并排放着的立方体。它们会怎样折叠呢?它们一定是绕着彼此接触的那个面折叠,而这个面的边是y边和z边。这两个轴一定会保持不动,这样这个面才不会改变。这次旋转是在x轴和w轴之间进行的。所以,第二个立方体中原本指向x轴方向的边,现在都会指向w轴方向。由于这个立方体不再有任何指向x方向的东西,它现在就垂直于x轴了。又因为这两个立方体垂直于两个不同的轴,我们就知道它们彼此成直角。

我们再进一步,加上第三个立方体,这次它沿着y轴挨着第一个立方体。它仍然要绕着它所接触的那个面折叠,但现在这个面的边是x边和z边,所以这两个轴必须保持不变,而旋转的是y轴和w轴。当这个立方体的y边转成w边时,我们会注意到,就像把三个正方形接在一起时那样,我们会开始把一些边转到同一个位置,这样图形在折叠时就能接合起来。不过这一次,彼此相会的是整整四条边——事实上,是一整个面会与另一个立方体的面相会并接合。

现在我们有三个立方体,绕着这一条边面对面地连在一起。就像在二维中不可能把三个正方形绕着一个顶点拼在一起,而在三维中却可以那样;在三维中也不可能把三个立方体绕着一条边拼在一起。但在四维中,我们做到了。

不过,这个角还没有完成。我们还可以再加上第四个立方体,这次它沿着z轴连在第一个立方体上。同样,它会绕着连接处的那个面折叠;由于这个面的边是x边和y边,它们会保持不动,于是旋转的是z轴和w轴。当这个立方体的z边变成w边时,我们会再次看到,一个原本在xz平面上的面折进了xw平面,于是最终和另一个立方体相会。事实上,这一次有两个面折过去,分别与我们已经折好的两个立方体相会。

拖动即可转动。

把每个立方体绕着它和第一个立方体共有的面,折进第四维。每个立方体都按它所垂直的轴着色:它们一开始都垂直于w,而x立方体最后垂直于x。拖动可以转动视角。

如果我们拿一个正方形,在每个轴上各放一个正方形,然后把它们折起来,就会得到立方体的一个角。但奇妙的是,尽管它只是一个角,它却是立方体的一半,可以和一个完全相同的角拼在一起,组成一个完整的立方体。

同样,这里我们拿了一个立方体,在每个轴上各放一个立方体,然后把它们折起来。现在我们有了四个立方体,构成正八胞体的一个角。而这就是正八胞体的一半,可以和一个完全相同的角拼在一起,构成一个完整的正八胞体。(勾选上面各图中的“显示另一半”,就能看到补全每个图形的那个相同的角。)

第四维的更多内容

希望这能帮助你理解,当我们说图形在四维中折叠时,指的是什么。如果你想玩玩正八胞体,可以在 itch.io 上免费玩 Tesseract 261。

不过,四维图形远不止正八胞体。就像在三维中不只有立方体,还有另外四种柏拉图立体,以及阿基米德立体、卡塔兰立体等等,四维中也有许多更有趣的图形。你可以在4D查看器中查看它们、把它们展开,也可以在 itch.io 上的 4D Builder 试玩版中亲手试着搭建和折叠一些图形。

将 4D Builder 添加至愿望单

← 全部文章