play: Space Rift
sqrt(z²-1) 無法完全畫在紙上,因為平方根有兩個解。畫出來看到一條不連續的線:
為什麼一個簡單的解析函數會產生不連續的結果?這證明了並不是所有的東西都被繪製出來了。
平方根 c = sqrt(z) 被定義為方程 c² = z 的解,這個方程有兩個解,但我們通常只取其中一個。例如,我們一般會說 sqrt(4) 是 2,但事實上它也可以是 -2。如果輸入值是正的,我們總是選擇正的那個解。這個選擇不錯,因為它是連續的:當輸入緩慢改變時,輸出也會平滑地變化。但如果我們考慮複數,情況就會變得複雜。由於複數有更多的自由度,它可以在兩個方向上變化。當輸入 z 圍繞原點移動時,即在 z = e^(it) 中變化 t,輸出的值可以是 sqrt(z) = e^(it/2),這樣函數就是連續的。然而,如果它繞原點一圈,輸出會在符號上有差異:sqrt(e^(2πi)) = e^(πi) = -1。
上面畫的圖只用了平方根的一個解,還有另一個隱藏的部份畫在下面的圖層上。圖中的不連續線(稱為 branch cut)就像是這個二維空間中的一個空間裂縫,這是通向隱藏圖層的大門。如果這個空間中有生物,它會透過這個大門看過去而不會注意到 branch cut。branch cut 是由於解的選擇而造成的人工產物,如果我們做出不同的選擇,就可以改變這個 branch cut 的位置。我們這樣畫是因為我們沒有合適的紙張來放這個畫作。然而,當二維生物望向 1+0i 點時,會注意到左右的視野是不同的(稱為 branch point)。這就像遊戲《Antichamber》一樣,通過不同的窗戶看到的景色是不同的。
用 sqrt(z²-1) 做成的平面魔術方塊實際上就是做在這樣空間上的平面魔術方塊。這其實只是在一個奇怪空間上的平面魔術方塊。與普通平面魔術方塊不同的是,一個面要旋轉 720 度才能轉一圈,因為它的邊塊和角塊在旋轉時會移動到另一個圖層上。這個拼圖的抽象模型就像是普通的魔術方塊一樣,但要把它畫在二維空間上並不容易,因為我們需要根據 branch cut 的位置來決定應該繪製哪一部分。為了強調 branch cut 與這個結構無關,我讓它能夠自由移動。