Gem 'oekaki' で落書きです。
oekaki | RubyGems.org | your community gem host
GTK+でお絵かきしてみた(Ruby) - Camera Obscura
再帰的な tree を描いてみました。画像では動きはないですが、じつはアニメーションです。
require 'oekaki' Width, Height = 400, 300 Turn = 20 Length = 40 Ratio = 0.9 Depth = 8 θ = PI * Turn / 180 left = Matrix[[cos( θ), -sin( θ)], [sin( θ), cos( θ)]] right = Matrix[[cos(-θ), -sin(-θ)], [sin(-θ), cos(-θ)]] Oekaki.app width: Width, height: Height, title: "tree" do draw do color(0, 0, 0) rectangle(true, 0, 0, Width, Height) end ar = [[Vector[Width / 2, 1], Vector[0, Length]]] branch_num = 0 id = timer(80) do ob = ar.shift v1 = left * ob[1] v2 = right * ob[1] p1 = ob[0] + v1 p2 = ob[0] + v2 color(0, 65535, 0) line(ob[0][0], Height - ob[0][1], p1[0], Height - p1[1]) line(ob[0][0], Height - ob[0][1], p2[0], Height - p2[1]) ar << [p1, v1 * Ratio] ar << [p2, v2 * Ratio] branch_num += 2 Gtk.timeout_remove(id) if branch_num >= 2 ** (Depth + 1) - 2 true end end