RubyGem 'Salamander' は Ruby/SDL を使ってタートルグラフックスを実装しています。これを使ってヒルベルト曲線を描いてみました。Linux Mint 18.2 と Ruby 2.3.3 で確認しています。
インストールは Bundler で入りますが($ gem install salamander でもたぶん入るでしょう)、その前に Linux Mint に SDL 用のライブラリを入れなくてはなりません。
$ sudo apt-get install libsdl1.2-dev libsdl-gfx1.2-dev libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev
Ruby/SDL は何もしなくても入るようです。
5次のヒルベルト曲線です。
salamander_hilbert.rb
require 'salamander' require 'salamander/support/radians' include Salamander include Salamander::Drawing Step = 15 screen = Salamander.setup(500, 500) Actor.draw(screen) do def draw(depth, angle) return if depth <= 0 turn angle.degrees draw(depth - 1, -angle) line Step turn -angle.degrees draw(depth - 1, angle) line Step draw(depth - 1, angle) turn -angle.degrees line Step draw(depth - 1, -angle) turn angle.degrees end color :red move_to 20, 20 face :east draw(5, 90) end screen.redraw loop { break if SDL.WaitEvent.type == SDL::QUIT }
Salamander を使うための試行錯誤は以下。
RubyGem 'Salamander' が動かないよ - Marginalia
RubyGem 'Salamander' がようやく動いたよ - Marginalia
ヒルベルト曲線についての過去記事は以下。
Python の Turtle でヒルベルト曲線 - Camera Obscura
GTK+でヒルベルト曲線(Ruby) - Camera Obscura
JavaScript でヒルベルト曲線を描く - Camera Obscura
Ruby/Tk でヒルベルト曲線を描く - Camera Obscura