意馬心猿 - いばしんえん

欲望のままにプログラミング

<Ruby/>Ruby + Cairoでシダを描画

"シダを生やす記事を前見た気がする”

 

というわけで、こちらの記事を参考にRubyとCairoを使って、シダを生やしたいと思います!

 

</> shida.rb

 

 

描画結果⇩

f:id:santamalia:20160216170626p:plain

 

  • 核となっているのは generate メソッドで、 今回generateメソッドは呼び出しの際、初期値が20で if文が0 < kなので20回再帰が行われます。
  • 20回再帰が行われた後、plotメソッドが呼び出され、plotメソッドによって、1x1の矩形が描画されます。f:id:santamalia:20160217114114p:plain
  • Random.rand < 0.3

    f.(k - 1, W2x.(x, y), W2y.(x, y))
    f.(k - 1, W3x.(x, y), W3y.(x, y))
    f.(k - 1, W4x.(x, y), W4y.(x, y)) より、各枝の先まで再帰処理が終わると3割の確率で、葉(矩形)が描画されていくことになります。

 

(観葉)ビバリウムプランツ おまかせシダ植物 3号ポット(1ポット)

価格:600円
(2016/2/17 11:48時点)
感想(0件)

これもプログラミングの腕を磨くのにもってこいだと思うので、皆さんも色んなやり方でシダを生やしてみてください。