忍者ブログ

Memeplexes

プログラミング、3DCGとその他いろいろについて

かんたんL-system その1 文字だけ

L-systemというアルゴリズムがあります。
これを使うと植物の形が描けます。
やってみましょう。

Program.cs

class Program
{
    static void Main()
    {
        var text = "A";
        System.Console.WriteLine(text);

        for (int i = 0; i < 10; i++)
        {
            var newText = "";

            for (int textIndex = 0; textIndex < text.Length; textIndex++)
            {
                switch(text[textIndex])
                {
                    case 'A':
                        newText += "AB";
                        break;
                    case 'B':
                        newText += "A";
                        break;
                }

            }

            text = newText;
            System.Console.WriteLine(text);
        }
    }
}
結構簡単なプログラムですね。
ディスプレイが小さくても一画面に収まりそうです。

結果

A
AB
ABA
ABAAB
ABAABABA
ABAABABAABAAB
ABAABABAABAABABAABABA
ABAABABAABAABABAABABAABAABABAABAAB
ABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABABA
ABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABAAB
ABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABABAABAABABAABAABABAABABAABAABABAABABA

さて……文字列が表示されました。
何でしょう?この結果は。
私たちは植物を描こうとしていたはずでしたが…?

実はこのプログラムはL-systemのエッセンスを実装しただけであって、見た目はダメです。
植物の形にするにはきちんと体裁を整えなければなりません。
では続きは次回。

拍手[0回]

PR