🌐 JA

🌿 Lシステム・フラクタルジェネレーター

リンデンマイヤーシステム(Lシステム)からフラクタルを生成しましょう。コッホ雪片やドラゴン曲線などのプリセットを選ぶか、自分で書き換え規則を書いて、タートルが描いていく様子を見てみましょう。

1行に1つの規則、例: F=F+F--F+F。記号: F と G は前進して描画、+ / - は回転、[ と ] は位置の保存/復元。

4
ガイド

詳しく見る

01

Lシステムとは?

Lシステム(リンデンマイヤーシステム)は、生物学者アリスティド・リンデンマイヤーが1968年に植物や藻類の成長をモデル化するために考案した形式文法です。短い公理文字列から始め、書き換え規則に従って各記号を繰り返し置き換えると、反復のたびに文字列がより詳細になっていきます。最終的な文字列は、移動・回転・分岐を表すタートルグラフィックスの命令列として読み取られ、画面にフラクタルを描き出します。
02

タートルのアルファベット

各記号は仮想のタートルへの描画命令です。FG は線を描きながら前進し、+ は設定した角度だけ左へ、- は右へ回転します。[ は現在の位置と向きをスタックに保存して分岐を始め、] はそれを戻して分岐が始まった地点へ帰ります。この2つの括弧命令のおかげで、1つの規則が茎や葉を伸ばし、わずか数文字から樹木のような生き生きとした形が生まれます。
03

カスタム規則を書く

自分だけのフラクタルを作るには、公理と1行に1つの規則を設定します。古典的なコッホ曲線は公理 F、規則 F=F+F--F+F、角度 60° を使い、反復のたびにすべての F を4つの小さな F に置き換えます。各書き換えで文字列の長さが倍増しうるため成長は指数的で、ジェネレーターは反復を7回に制限し、暴走するパターンをブラウザが固まる前に止める長さガードを適用します。

よくある質問

規則にはどんな記号が使えますか?
F と G は線を前方へ描き、+ と - は設定した角度だけタートルを左右に回し、[ と ] は分岐を開始・終了します。それ以外の文字は何も描かないプレースホルダーで、規則によって書き換えられるだけであり、これが反復のたびに複雑な構造を積み上げる仕組みです。
なぜ反復の上限があるのですか?
各反復で文字列の長さが倍増しうるため、描画命令の数が指数的に増えます。ブラウザの応答性を保つため、ジェネレーターは反復を7回に制限し、パターンが滑らかに描けないほど大きくなる前に止める長さガードを追加しています。
有名なLシステムは何ですか?
コッホ雪片、ドラゴン曲線、シェルピンスキーの矢じりが代表例で、アリスティド・リンデンマイヤーがLシステムを最初に設計した際に記述しようとした枝分かれする植物モデルも含まれます。