休日(春分の日)。雨。
たくさん寝たのだが、目覚ましで起きても眠すぎる。もう少しうとうとする。調子は悪く、午前中は睡眠の後始末でおしまい。
昼。雨だが当分行けないので県営プールまで行ったら、駐車場が満車で入れなかった。どうやら FC岐阜のホーム戦があるらしい。そうか、J2 の試合は水曜日だし今日は休日だからな。まあドライブしてくることになって気分転換になったからいいけれど。
ウチの木瓜(ぼけ)の花なのだが、雨のせいかいまひとつきれいでないね。
#
Ruby で再帰曲線を描く言語「L-system」を実装していた。結構うまくいったと思う。例えばこんな風なのが描ける。
上が「コッホ・アイランド」、下が「ペンローズ・タイル」。ペンローズ・タイルのコードはこんな感じ。
require 'kaki/lsystem' l = Lsystem.new(600, 600, "Penrose Tiling") l.prologue do clear(color(0xe013, 0xfee3, 0xfee3)) color(0xffff, 0x5feb, 0xe51f) end l.set("-") {left(36)} l.set("+") {right(36)} walk = proc {forward(10)} l.set("M", &walk) l.set("N", &walk) l.set("O", &walk) l.set("P", &walk) l.set("A", &walk) l.init("[N]++[N]++[N]++[N]++[N]") l.rule("M", "OA++PA----NA[-OA----MA]++") l.rule("N", "+OA--PA[---MA--NA]+") l.rule("O", "-MA++NA[+++OA++PA]-") l.rule("P", "--OA++++MA[+PA++++NA]--NA") l.rule("A", "") l.draw(5)
lsystem.rb というのがライブラリの本体で、頑張ってGem化もした。もう夜中の 2時すぎなので、プログラミング・ブログの記事は明日書く。