いんすぱいあモトはこちら→シェルピンスキーのギャスケット
コンビニで買い物し、もらったレシートを半分に折り、
折り目が直角になるように開きます。 → |_
また半分に折って開くと→ |_| ̄
何度も何度も折って開いてできる曲線をドラゴン曲線といいます。
右に折れるのを'R', 左に折れるのを'L'と表すことにしましょう。
折れてないレシートは""
一度折ると"L"
二度折ると"LLR"
三度折ると"LLRLLRR"
…
n回折ったレシートを表現する文字列(L/Rの並び)Dnがあったとき、
Dnを裏返し、さらにL/Rを逆転した文字列Rnを用意すれば、
Dn+1 = Dn + 'L' + Rn
の式でDnをさらにもう一回折ったときのDn+1が作れます。
たとえば:
D2 = "LLR"
裏返して "RLL", L/Rを逆転すると "LRR" → R2
なので D2 + 'L' + R2 = "LLRLLRR" → D3
これを作画するC#コードを書くと…
構想三分実装十分。 ソリューションはこちら → dragon.zip