正八胞體是如何摺疊的?
摺疊正八胞體的各個立方體時,三維的展開圖是怎麼變成四維的正八胞體的?更仔細地想一想我們早已熟悉的旋轉,或許能幫助我們理解。
這裡畫的是一個正八胞體和它的展開圖。可是,展開圖是怎麼變成正八胞體的呢?
拖曳即可轉動。
簡化旋轉
摺疊正八胞體會用到四維旋轉,而四維空間對我們來說相當抽象。不過,有很多抽象的東西,我們最後都學會了理解。也許問題並不在於用四維的方式思考太難,而在於思考旋轉太容易了。
我們小時候會學數字的加法和乘法,卻沒有人教我們怎麼旋轉東西,因為這個大家早就會了。你會看到小寶寶在學習旋轉:把東西轉來轉去,觀察轉完的樣子。但正因為我們對三維旋轉有直覺上的理解,我們可能從來不會仔細去想它;一個人完全有可能學了好多年數學,卻對這個基本概念沒有多少理解。
正八胞體屬於一個圖形家族,這個家族還包括正方形和立方體,它們的所有邊都一樣長,所有角都是直角。所有角都是直角,代表我們可以讓它們沿著各個軸擺放來呈現。這也代表,我們暫時可以把對旋轉的研究簡化成只考慮軸與軸之間的90°旋轉。
摺疊正方形
那麼,我們先來想想怎麼摺疊一個正方形,因為它是唯一能在二維螢幕上完美呈現的東西。正方形的展開圖就是四條線段。現在它們都在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軸。在這種情況下,有一條邊會轉向先前另一條邊已經轉到的位置,於是在摺疊的過程中,邊會彼此接上。
在進入四維的情況之前,值得花點時間想想我們在螢幕上看到的東西,因為我們太習慣三維世界了,大腦幾乎會自動幫我們把它理解好。
想像一下,你只習慣看二維影像,並試著搞懂這裡發生了什麼事。因為只習慣二維影像,你以前看過四個正方形在一個角相會,但三個正方形在一個角相會,就像立方體那樣,可能就顯得不太合理。在等角投影圖中,這個旋轉看起來就像一個菱形稍微變了變形,最後變成一個朝向不同的菱形。而在透視圖中,它看起來就像兩個正方形變成了梯形。但這些都只是你對三維中所發生之事的二維視角。
呈現正八胞體
那麼,我們進入四維吧。同樣地,對於怎麼呈現多出來的這個軸,我們也有幾種選擇。
同樣地,我們可以使用透視。這種透視讓我們的立方體看起來像是大正方形裡套著一個小正方形。它會讓我們的正八胞體看起來像是大立方體裡套著一個小立方體。
或者,我們也可以再試試等角投影。我們在二維中表示三個軸時,是讓它們彼此相隔120°;如果把正軸和負軸都算進去,就是相隔60°。現在我們可以在二維中表示四個軸,讓正軸和負軸之間相隔45°,這樣畫出來的正八胞體就像下面那個平面的圖。但這代表有些軸之間會相隔90°,並不是所有正方形看起來都一樣。
另一個選擇是在三維中表示這四個軸,這樣就能得到真正的等角投影:所有軸彼此相隔約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平面,於是最後和另一個立方體相會。事實上,這一次有兩個面摺過去,分別與我們已經摺好的兩個立方體相會。
拖曳即可轉動。
如果我們拿一個正方形,在每個軸上各放一個正方形,然後把它們摺起來,就會得到立方體的一個角。但奇妙的是,雖然它只是一個角,它卻是立方體的一半,可以和一個完全相同的角拼在一起,組成一個完整的立方體。
同樣地,這裡我們拿了一個立方體,在每個軸上各放一個立方體,然後把它們摺起來。現在我們有了四個立方體,構成正八胞體的一個角。而這就是正八胞體的一半,可以和一個完全相同的角拼在一起,構成一個完整的正八胞體。(勾選上面各圖中的「顯示另一半」,就能看到補全每個圖形的那個相同的角。)
第四維的更多內容
希望這能幫助你理解,當我們說圖形在四維中摺疊時,指的是什麼。如果你想玩玩正八胞體,可以在 itch.io 上免費玩 Tesseract 261。
不過,四維圖形遠不只有正八胞體。就像在三維中不只有立方體,還有另外四種柏拉圖立體,以及阿基米德立體、卡塔蘭立體等等,四維中也有許多更有趣的圖形。你可以在4D檢視器中查看它們、把它們展開,也可以在 itch.io 上的 4D Builder 試玩版中親手試著搭建和摺疊一些圖形。
將 4D Builder 加入願望清單