レヴィC曲線を探索する
レヴィのC曲線:一本の直線が、いかにして複雑なフラクタルの世界へと成長するのか?
一本の直線が与えられ、複雑なルールを一切追加することなく、単純な「折り曲げ」を繰り返すだけで、最終的に複雑なフラクタル図形へと変化すると言われたら、その完成形を想像するのは難しいかもしれません。
しかし、それこそがレヴィのC曲線の最も魅力的な点なのです。
ごく普通の直線から始まり、非常に単純な生成ルールを再帰的に繰り返すことで、複雑で密度が高く、枝分かれに満ちた曲線が形成されます。さらに、折り曲げる角度を自分で変えてみることもできます。わずかな角度の変化が、最終的に曲線全体をどのような全く異なる形態へと導くのかを観察できるのです。
すべては一本の直線から始まる
レヴィのC曲線の出発点は非常にシンプルで、一本の線分があるだけです。この最初の線分には「イニシエーター(始原要素)」という特別な名前があり、いわばフラクタル全体の「種」のようなものだと考えることができます。
この段階では、複雑な模様も、枝も、分岐も、さらには「C」という形さえもまだ存在せず、ただ一本の普通の直線があるだけなのです。
次に、「生成元」が必要です
単なる一本の直線だけでは、何も起こりません。そこで、もう一つ定義するものが必要になります。それが「生成元」です。生成元は、ある線分に遭遇した際、それをどのような形状に置き換えるかを規定するものです。
レヴィC曲線の例では、生成元は等しい長さの2本の線分から構成されており、それぞれの線分は元の方向から特定の角度だけ傾いています。
元の線分が水平であると仮定し、折り曲げ角度を 45° に設定すると、生成元を構成する2本の線分はそれぞれ左右に45°ずつ傾きます。その結果、1本の直線分が直角の折れ線に置き換わります。+45° − (−45°) = 90° となるため、新たにできた2本の線分は互いに垂直になります。これは、小さな V字型の折り曲げユニット のようなものだとイメージするとよいでしょう。
ここからが面白いところです
さて、開始要素と生成要素が揃いました。次に行うのは、たった一つの動作、つまり開始要素を生成要素に置き換えることだけです。
すると、1本の線分が2本の線分になります。しかし、そこで終わりではありません。新たに2本の線分ができたのですから、今度はその2本それぞれを同じ生成要素で置き換えるのです。すると、2本の線分は4本になります。次は4本が8本に。そして16本、32本と増えていきます……
このプロセスは再帰と呼ばれますが、その意味は決して難しいものではありません。つまり、新しく生まれたものに対して、元のルールをもう一度適用するということです。
新しいルールを作るわけではありません。最初から最後まで、ルールは完全に同じです。すべての線分に同じ生成要素を使い、新たに生まれた線分にもまた同じ生成要素を使う。これをひたすら繰り返すのです。
1回目は線分が1本。2回目は2本。3回目は4本。4回目は8本。5回目は16本。反復(イテレーション)を行うたびに線分の数は倍増し、それぞれの線分が同じ変化を繰り返していきます。その結果、最初は単純だった直線に、次第に多くの「折れ」が生じるようになります。さらに続けていくと、図形全体はますます複雑になっていくのです。
45度の折り曲げ角度だけが唯一の選択肢ではありません
典型的なレヴィのC曲線では、通常45度の生成元が使われますが、必ずしもこの角度でなければならないわけではありません。
角度を30度に変えると、新しい線分はそれぞれ元の方向から30度傾き、その結果、2つの線分の間には60度の角度が生まれます。
38度の場合、2つの線分はそれぞれ±38度傾き、その間の角度は76度になります。
45度の場合、2つの線分はそれぞれ±45度傾き、90度の直角が形成されます。
角度をほんの少し変えると、何が起こるのでしょうか?
想像してみてください。パラメータを45度から38度へとわずかに変更するだけで、生成元の形状は少し変わります。しかし、忘れてはならないのは、この生成元が何度も何度も繰り返し使われるということです。第1世代では変化はわずかですが、第2世代では変化が蓄積し始め、第3世代ではその違いがより顕著になります。反復を続けるうちに、最終的な図形全体は、元の形状とは全く異なるものになっているかもしれません。
これこそが再帰的システムの非常に興味深い点です。ごく小さな局所的な変化であっても、繰り返しによって全体に大きな違いを生み出すことができるのです。
レヴィC曲線を「折り畳みマシン」としてイメージしてみる
マシンはまず、一本の直線を受け取ります。これが「開始要素(イニシエーター)」です。次に、マシンはあらかじめ決められた「生成要素(ジェネレーター)」を取り出し、その直線と置き換えます。
続いてマシンは、「今、何本の線分ができているか?」を確認し、それぞれの線分に対して同じ生成要素を適用していきます。そして確認、置き換え、確認、置き換え……と作業を繰り返します。こうしてマシンが絶えず動作し続けることで、一本の直線は最終的に、複雑なフラクタル図形の世界へと「折り畳まれて」いくのです。
これは実際の折り紙とは異なり、ここでの「折り畳み」はあくまで理解を助けるための直感的な例えにすぎません。実際には、コンピュータが紙を物理的に折っているわけではありません。コンピュータが行っているのは、生成要素で定義された幾何学的なルールに従い、各線分を2本の新しい線分へと置き換えることなのです。
つまり、より正確に言えば、開始要素が生成要素によって置き換えられ、新しい線分に対してさらに置き換えが行われ、それが再帰的に繰り返される――これこそが、レヴィC曲線の真の生成プロセスなのです。
なぜ、どんどん複雑になっていくのでしょうか?
よく考えてみると、最初から最後まで、複雑な数学的ルールを付け加えたわけではありません。あるのは「開始要素」「生成要素」「折り曲げ角度」「再帰プロセス」だけ。これら以外には何もないのです。
しかし、再帰の回数が増えるにつれて(1 → 2 → 4 → 8 → 16 → 32 → ……)、線分の数は増え続け、その向きは絶えず変化し、さらに新たな線分を生み出していきます。つまり、複雑さは直接的に設計されたものではなく、単純なルールが繰り返される過程で自然に生まれてくるものなのです。これこそが、フラクタルが持つ最も魅力的な点の一つと言えるでしょう。
レヴィC曲線(Lévy C curve)の反復回数が増え、高次になると、無数の線分が密集し始めます。遠目に見ると、木の枝や植物の分枝を連想させるかもしれません。しかし、それはあくまで視覚的な類似に過ぎません。そこには植物の成長ルールも、幹も、葉も、日光も、水分も、成長速度さえも存在しないのです。ただ単に「生成」と「再帰」が行われている、それだけのことなのです。
これこそが数学的な図形の面白いところです。完全に抽象的な幾何学的ルールであっても、極めて「自然」な視覚効果を生み出し得るのです。
レヴィC曲線とバーンズリーのシダには、どのような違いがありますか?
どちらの図形も植物を連想させるものですが、その背後にある考え方は全く異なります。
バーンズリーのシダは、反復される点が徐々にシダの形を形成するように数学的な変換が設計されています。つまり、数学によって自然を模倣していると言えます。
一方、レヴィC曲線は植物を模倣しようとしたものではありません。単なる「線」から始まり、「生成元(基本パターン)」の適用と「再帰」を繰り返して複雑な曲線へと変化し、結果として木の枝のように見える形になったに過ぎません。つまり、単純なルールから、植物のような構造が自然に生み出されたものなのです。
レヴィC曲線とドラゴン曲線には、どのような違いがありますか?
どちらも線から始まり、再帰によって複雑なパターンを生成しますが、その核心となるルールが異なります。
ドラゴン曲線は、特定のルールに従って折り曲げや方向転換を繰り返すことで、最終的に複雑なドラゴンのようなフラクタル図形を形成します。
対してレヴィC曲線の核心は、固定された生成元(基本パターン)を用いて、各線分を次々と置き換えていく点にあります。特に典型的な45度のケースでは、新しい2つの線分が互いに直交するような形になります。
簡単に言えば、ドラゴン曲線は「折り曲げを繰り返して『ドラゴン』を作る」ものであり、レヴィC曲線は「同じ生成元を使って折り曲げ、『C』の字のような形を繰り返していく」ものだと言えます。
コッホ曲線とは何が違うのでしょうか?
コッホ曲線(コッホ雪片)でも非常によく似た考え方が使われています。これも「初期図形 → 生成規則 → 繰り返し」というプロセスで理解できますが、生成規則が異なります。
コッホ曲線では、線分の中央から小さな三角形が突き出すように変化し、最終的に雪の結晶のような形の境界線が形成されます。
一方、レヴィC曲線では、1本の線分がある角度を持った2本の線分へと変化し、最終的に複雑なC字型のフラクタル曲線が形成されます。
つまり、これらは同じ「再帰的な仕組み」を持ちながら、生成規則を変えることで全く異なる世界が生まれるものだと理解できるでしょう。
30°から45°へ――数学がいかにして「成長」するかを見てみよう
まずは、自分で折り曲げる角度を30°に設定し、繰り返しの回数を増やしてみてください。次に38°、そして最後に45°でも試してみましょう。
すると、生成元(右上の図形)の変化はごくわずかであっても、再帰の回数を重ねるにつれて、図形全体の変化が次第に際立ってくることに気づくはずです。
これは、ある「数学的な成長ルール」に異なる遺伝子を組み込むようなものです。ルール自体は変わらず、パラメータが一つ変わっただけですが、十分に繰り返すと、最終的な形状は全く異なるものになり得ます。
数学的には、このプロセスをどこまでも続けることができます。世代を重ねるごとに線分は増え、短くなり、構造は複雑になっていきます。理論上は無限に続けることが可能です。
しかし、コンピュータの画面上で実際に無限回描画することは不可能です。そのため、私たちが目にするのは、有限回の繰り返しによる近似結果ということになります。例えば、5回と10回の繰り返しでは、見た目に大きな違いが生じます。さらに回数を増やして15回、20回となると、計算量も急激に増大します。
したがって、今目にしている「レヴィC曲線」の各図は、無限に続くフラクタル図形のある段階における「スナップショット」であると理解できます。
レヴィC曲線の真の魅力
一本の直線は、最終的にどこへ行き着くのでしょうか?
最初はただの直線であり、誰もそれを特別だとは思いません。しかし、一度折り曲げ、さらにもう一度、もう一度と繰り返していくと……
その都度行うのは、単純なルールを適用することだけです。しかし最終的に目の前に現れるのは、もはや単なる直線ではなく、細部まで描き込まれた複雑なフラクタル図形なのです。
さらに興味深いのは、折り曲げる角度(30度、38度、45度など)を変えてみたときです。同じ直線が、一体どのような形へと変化していくのかを観察できるのです。
レヴィC曲線において最も探求すべきなのは、特定の最終的な図形そのものではありません。極めて単純な出発点から極めて複雑な結果に至るまでの過程で、何が起きているのかという点なのです。
必要なのは、開始要素、生成要素、折り曲げ角度、そして繰り返しのプロセスだけ。それだけで、複雑さが生まれてくるのです。
これこそが、フラクタルの世界を最も魅力的にしている点です。複雑さには、必ずしも複雑なルールが必要なわけではありません。時には、単純なルールを十分に繰り返すだけで、複雑さが生み出されるのです。
無限のミクロの世界を探求し続ける
レヴィC曲線は、フラクタルが織りなす世界の一つの可能性に過ぎません。
もし「単純なルール → 繰り返される再帰 → 複雑なパターン」という数学的図形がお好きなら、他にも探求できるものがたくさんあります。例えば、単純な線が折り重なることで複雑なフラクタル構造へと進化するドラゴン曲線。あるいは、単純な三角形の辺に新たなディテールが次々と加わり、無限に複雑な雪の結晶のような形を作り出すコッホ曲線(コッホ雪片)。さらには、単純な複素数の反復計算から信じられないほど無限のディテールが生まれるマンデルブロ集合。そして、接するいくつかの円から始まり、隙間を埋めるように小さな円を次々と加えていくことで構造が無限に広がっていくアポロニウスのギャスケットなどです。
それぞれ異なるルールに基づいていますが、これらは皆、一つの物語を語っています。それは、「単純なルールを繰り返すことで、一体どれほど複雑な世界を創り出せるのか?」という問いです。そしてレヴィC曲線が示す答えは、「一本の直線からでも、想像以上に豊かな世界が『成長』し得る」ということなのです。
他にも魅力的な数学的図形を眺めてみたり、WikipediaでレヴィC曲線についての詳細をチェックしたりしてみてください。