【コラム】ヒルベルト曲線
19.05.08
ヒルベルト曲線という面白いものを紹介します.
ヒルベルト曲線はL-Systemの生成規則で以下のように記述されます.
X ::= + Y F - X F X - F Y +
Y ::= - X F + Y F Y + F X -
開始記号は X です.最初の向きは東向きです.
+ は向きを左に90度回転します.
– は向きを右に90度回転します.
F は前へ予め定まった距離すすみます.
これをプログラムにしたもの(抜粋)が以下です.
f, m, p :: LSystem
f = (F:)
m = (M:) -- '-'の代替
p = (P:) -- '+'の代替
x, y :: Order -> LSystem
x 0 = id
x (n+1) = p . y n . f . m . x n . f . x n . m . f . y n . p
y 0 = id
y (n+1) = m . x n . f . p . y n . f . y n . p . f . x n . m
とても単純です.3次のヒルベルト曲線をL-Systemで表現すると
+-+F-F-F+F+-F+F+F-F-F+F+F-+F+F-F-F+-F-+-F+F+F-F-+F-F-F+F+F-F-F+-F-F+F+F-+F+-F+F+F-F-+F-F-F+F+F-F-F+-F-F+F+F-+-F-+F-F-F+F+-F+F+F-F-F+F+F-+F+F-F-F+-+
となります.以下は1次から9次までのヒルベルト曲線です.次数を大きくするにつれ黒く塗り潰したようになっていくのが特徴です.もちろんどれも1本の線ですよ.不思議な曲線ですね.
*ブログテーマ一覧はこちらから