
シェルピンスキーのギャスケットの描画方法
G=Worldで提供している『時の流れのギャスケット』のタイトルにもある「ギャスケット」は、フラクタル図形の「シェルピンスキーのギャスケット」が由来です。
作中、シェルピンスキーのギャスケットの描画方法として、
(1)三角形の各辺の中点でどんどん分割していく方法
(2)パスカルの三角形の奇数部分に色付けする方法
を紹介していますが、ここではもうひとつのメジャーな方法として、「セルオートマトン」を用いたやり方をご紹介します。
セルオートマトンは、コンウェイが考案したライフゲームのように、「特定のセル(マス)とその周囲のセルの状態によって次世代の状態が決定されるモデル」です。
シェルピンスキーのギャスケットは、セルオートマトンのRule90で生成できることが知られています。
Rule90は、ターゲットとなるセルとその両隣のセルの状態により、次世代の状態を次のように遷移させます。
111→0
110→1
101→0
100→1
011→1
010→0
001→1
000→0
次世代の状態を上から順に並べると01011010となり、これを2進数とみなして10進数に変換すると90となる。だから、Rule90です。
さらに、ターゲットとなるセルの状態を表す数字を省略すると、
11→0
10→1
01→1
00→0
となり、排他的論理和(XOR)の真理値表と一致します。
これをExcelなどのスプレッドシートで処理するとなると、
ターゲットとなるセル(B2)の左上(A1)と右上(C1)のセルのXORをとったものを、次々と平面上に展開していけばいいということになります。
IF関数を用いて、さらに演算を簡略化して、
「=IF(A1=C1," ","■ ")」
をB2に入れたものをドラッグで展開します。
計算式を敷き詰めた板を作成し、1行目中央に■を入れればシェルピンスキーのギャスケットが描画されますので、その後、セルのサイズや表示倍率を調整して、出来上がりです(サムネイルの画像は、出力結果です)。
シェルピンスキーのギャスケット等のフラクタル図形については、色々面白い性質がありますので、これを機に興味を持っていただけたらと思います。
■新規会員随時募集しています。詳しくはG=world公式サイトまで!