這個視覺化中的混沌遊戲
混沌遊戲每擲一次骰子,就讓點朝隨機選出的某個頂點,移動全程的r。換句話說,每次都套用下列某個映射:
這些映射把平面朝縮放為s倍。龍形與蕨葉則使用仿射映射。在這裡,你可以移動頂點、調整r、限制下一次擲骰,以及改變各種結果的機率,看看骰子能畫出什麼圖形。
畫面計算的是落點:一個像素裡的落點越多,顏色就越濃。最後一次擲骰依落點最後一次選中的頂點或映射上色,前一次擲骰則依再前一次的結果。顏色混在一起,表示不同顏色的落點進入了同一個像素。
為什麼每一局都畫出同一幅圖?先看沒有記憶的擲法。每個映射都縮短距離,因此遵循同一串擲骰結果的兩個點會逐漸靠近。恰好有一個非空緊集K,由它自己的副本組成:
K裡的點不論擲到什麼,都仍在K裡;因此遊戲中的點到K的距離趨近於零,起點的影響也就消失了。
最近k次擲骰把點帶到K的某個小副本附近,更早的結果只決定它在那一帶的哪裡。因此最後一次擲骰顯出N份副本,前一次擲骰顯出份更小的副本,每份都是整幅圖的副本。只要每個映射都有機會被選到,任何有限長度的擲骰序列幾乎必然遲早出現,點也就會靠近K的每一處。複製機完全不用骰子:把整個圖形縮成N份,再不斷重複。從包住圖形的外形或兔子開始,都會逼近同一個K。兔子能顯示映射是否旋轉或翻轉。
當頂點的凸包是多邊形,且它的N份副本至多沿邊相接時,圖形的維度為
r=1/2時,三角形有;r=2/3時,地毯有。副本重疊時,這個數只代表上界,頁面不提供維度判定。副本覆蓋整個多邊形時,多邊形本身就由自己的副本組成,因此由唯一性可知,最後的圖形就是實心多邊形。
選擇不重複或不選相鄰點時,下一次擲骰取決於上一次。相鄰關係依頂點編號判定,拖曳不會改變編號。圖形此時依最後一次擲骰分成數塊,每塊都是前一次允許出現的那些部分合起來的副本。因此限制能改變圖形本身:r=1/2時,不連續選中同一頂點的正方形不再實心,而是維度為的碎形。
只要每個映射都有被選到的機會,機率就不會改變K,只會決定落點在K上的分布。蕨葉採用依面積繪製;改成均等機率,葉子形狀不變,只是莖上的點增加、葉尖的點減少。
Michael Barnsley的Fractals Everywhere(1988)讓這種隨機擲點的繪圖方法以「混沌遊戲」之名廣為人知。
值得注意
- 這個名稱指的不是混沌動力學。遵循相同擲骰結果的點會逐漸靠近,與對初始條件敏感正好相反。隨機性只來自骰子。
- 圖形是一個極限。無論落點多少、複製幾輪,都只是近似。
- 顏色濃淡表示落點多少,不表示圖形在那裡較厚;光暈只是顯示效果。
相關概念
延伸閱讀: 維基百科: Chaos game (英文); 維基百科: Iterated function system (英文); 維基百科: Sierpiński triangle (英文).