「情報科学入門」では対話的なRubyの処理系irbと、簡単な画像表示プログラムを組み込んだ処理系isrbを使用します。irbは一般的なRuby処理系に付属しています。isrbは本書独自のものです。
ここではJRuby上で動作するisrb2のインストールと使用方法を説明します。
配布ファイル
GNU General Public License Version 3の下で公開します。
インストール
Microsoft Windows
手順
- JRubyのインストール
http://jruby.org/downloadから、JRuby Windows Executable をダウンロード・実行し、インストーラの指示に従います。
- isrb2のダウンロードと展開
zipあるいはtar + gzip形式のisrb2をダウンロードし、適当な場所に展開します。
- 実行
展開されたフォルダisrb2の中にあるisrb.batを実行します。ウインドウが開き「isrb(main):001:0>」というプロンプトが表示されます。
カレントディレクトリ
エクスプローラからisrb.batを実行した場合、isrbはユーザのホームディレクトリをカレントディレクトリとして実行されます。コマンド・プロンプトなどからisrb.batを実行した場合は、そのときのカレントディレクトリがisrbのカレントディレクトリになります。
トラブルシューティング
- isrb.batを実行すると、次のようなメッセージが表示される。
'jruby' is not recognized as an internal or external command,
operable program or batch file.
'jruby' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
一度Windowsからログオフし、isrb.batの実行を再度試みて下さい。JRubyのインストーラが変更した環境変数Pathをエクスプローラが読み込むためには、ログオフが必要なことがあります。それでも問題が解決しない場合は、JRubyのインストールに失敗している可能性があります。
動作確認環境
- Microsoft Windows 7 Professional (32bit) Service Pack 1 /
Java SE Runtime Environment 1.7.0_07 /
JRuby 1.6.7.2
- Microsoft Windows 7 Ultimate (64bit) Service Pack 1 /
Java SE Runtime Environment (build 1.7.0_07-b10) /
JRuby 1.6.7.2 (x64)
- Microsoft Windows 8 Pro (64bit) /
Java(TM) SE Runtime Environment (build 1.7.0_25-b17) /
JRuby 1.7.4 (x64)
Mac OS X, Linux
手順
- Java実行環境のインストール
(多くのOSにはJava実行環境があらかじめ用意されています。)
http://java.com/ja/download/からJava実行環境をダウンロードし、インストールします。Mac OS Xの場合や、Linuxの場合の手順を参考にして下さい。
- JRubyのインストール
http://jruby.org/downloadから、JRuby 1.6.7.2 Binary .tar.gz をダウンロードし、適当な場所(例えばホームディレクトリ)に展開します。Mac OS Xでは予めインストールされていることがあります。また、インストーラ(JRuby MacOS Installer)を使うこともできます。
- isrb2のダウンロードと展開
tar + gz 形式の isrb2 をダウンロードし、適当な場所(例えばホームディレクトリ)に展開します。
- 環境変数の設定
環境変数PATH
に展開したJRubyのbinディレクトリと、展開isrb2のディレクトリを追加します。例えば両者をホームディレクトリに展開したのであれば、次の一行を~/.bashrc
などに追加します。
PATH="$PATH":"$HOME"/jruby-1.6.7.2/bin/:"$HOME"/isrb2
(Mac OS Xでインストーラを使ってJRubyをインストールした場合、JRubyのbinディレクトリは自動的に追加されるようです。その場合はisrb2のディレクトリのみ追加して下さい。)
- 実行
シェル(ターミナル)から以下のように入力するとisrbが起動します。
$ isrb
isrb(main):001:0>
( $
はシェルのプロンプトです。 isrb(main):001:0>
はisrbのプロンプトです。)
動作確認環境
- Ubuntu Linux 2.6.32 / Java(TM) SE Runtime Environment (build 1.6.0_20-b02) / JRuby 1.6.7.2
- Mac OS X 10.7.3 / Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811) / JRuby 1.6.7.2
- Mac OS X 10.8.2 / Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811) / JRuby 1.6.8
- Mac OS X 10.9 / Java(TM) SE Runtime Environment (build 1.7.0_40-b43) / JRuby 1.6.8
Mac OS X環境で画素数の少ない(例えば2×2)の画像を表示すると、ぼやけた画像が表示されるという現象が報告されています。原因を特定できていませんが、Java 1.6.0_65ではその現象が発生し、1.7版に更新すると解決したとも報告されています。
使い方
- 濃淡画像の表示:
show(a)
- aは要素が0以上1以下の数値である2次元配列
- a[y][x]の値が座標(x,y)の明度になります。
- 例:
show([[0, 0.33], [0.66, 1]])
- カラー画像の表示:
show(a)
- aは要素が0以上1以下の数値である大きさH×W×3の3次元配列
- a[y][x][0], a[y][x][1], a[y][x][2]それぞれの値が座標(x,y)の
赤・縁・青成分の明度になります。
- 例:
show([[[0.14, 0.18, 0.53],[0.97, 0.19, 0.12]]])
- 画像の更新
- 一度
show
によって表示された配列の要素を代入によって更新すると、同時に画像も変化します。
- 例:
a=[[0,0],[0,0]]
show(a) # 黒い四角が表示
a[0][0]=1 # 左上が白に変化
- アニメーション
- 要素が変化した同じ配列を複数回
show
した後、Start/stop animationメニューによってアニメーション表示を行うことができます。(メニューは画像をクリックすると表示されます。)
- 例:
a = [[1,0],[0,0]]
show(a) # 画像が表示
a[0][0] = 0
a[0][1] = 1
show(a)
a[0][1] = 0
a[1][1] = 1
show(a)
a[1][1] = 0
a[1][0] = 1
show(a) # この後Start/stop animationでアニメーション開始
- 画像の保存
- 表示されている画像をSave image as ...メニューによって画像ファイルに保存できます。(メニューは画像をクリックすると表示されます。)画像ファイルの形式は保存ファイル名の拡張子に
.png
や .jpg
などを追加することで指定します。
旧版との違い
- isrbにあった以下の機能はisrb2には用意されていません。
- 箱を使った配列の図示
- アニメーションの速度調節
- 人形を用いたアルゴリズムアニメーション
- 関数呼出関係の図示
- isrb2に新たに用意された機能は以下の通りです。
- 表示画像をファイルへの書き出し
- showされた配列への代入による画像の更新
作者
増原英彦
最終更新: Tue Dec 17 12:26:06 JST 2013