このドキュメントは作成中です. 学習には 現行のチュートリアル を参照ください.
さて、ここまで行なってきたのは 主に GGraph のメソッドを利用したものばかりです. 描画だけでなく, 演算なども行いたいことがあります. そのとき GPhys ライブラリを用いると 任意の軸情報を持ったデータを楽に取り扱うことができます.
その前に, GPhys, GGraph (および RubyDCL) の基礎となる Ruby という言語および NArray という Ruby のライブラリ を簡単に体験してみましょう. これらの使い勝手を知っておくと, GPhys がより使いやすくなります.
Ruby のより詳しいチュートリアルは Dennou-Rubyチュートリアルページ(基礎編), NArray については Numerical Ruby NArray などを参考にしてください.
irb を立ち上げます.
$ irb
Ruby の文法を簡単に体験してみましょう.
a = 1 # 予め型を宣言しなくてもよい a = "orange" # 型エラーになったり, 変な結果になったりしない. a # irb で中身を見るだけなら代入などの操作は不要 ary = [1,2,3] # 配列 ary = ["hoge", 2, 3.45] # 中のデータは同じ種類である必要はない ary[0] # 添字は 0 始まり 1.to_s # メソッドは後ろに書くことも多い # ループを回す ary.each{|a| puts a }
ドットをつける書き方は, 何個もつなぐことができます. その場合, 前から順に適用されていきます.
ary = ["hoge", "hero", "foo"] ary.reverse.join(" ") # 配列を逆順にして, 半角スペースを挟んだ文字列に変換
シェルのパイプがドットになったものと 想像するとわかりやすいかもしれません.
class メソッドを使うとそのデータの型 (クラスと呼びます) が返ります.
1.class 'hoge'.class [1,2,3].class
Ruby に配列 (Array) はあるのですが, 数値を扱うには不便なことがあります.
a = [1,2,3] b = [4,5,6] a + b # 配列が連結された結果が返ってしまう
しかし, NArray というクラスを用いると数値計算を 比較的簡単に書くことができます. さっきの配列を NArray に変換して計算してみましょう.
a = NArray.to_na(a) b = NArray.to_na(b) a + b # 配列の足し算になる
最初から作る場合はこうなります.
a = NArray.int(3).indgen # [0,1,2] b = NArray.int(2,3).indgen # [[0,1,2],[3,4,5]]
こういうこともできます.
a = 2 * NArray.int(3).indgen # [0,2,4] b = NArray.int(1,3).indgen # [[0],[1],[2]] c = b*a
[ [ 1, 2, 3, 4, 5, 6, 7, 8, 9 ], [ 2, 4, 6, 8, 10, 12, 14, 16, 18 ], [ 3, 6, 9, 12, 15, 18, 21, 24, 27 ], [ 4, 8, 12, 16, 20, 24, 28, 32, 36 ], [ 5, 10, 15, 20, 25, 30, 35, 40, 45 ], [ 6, 12, 18, 24, 30, 36, 42, 48, 54 ], [ 7, 14, 21, 28, 35, 42, 49, 56, 63 ], [ 8, 16, 24, 32, 40, 48, 56, 64, 72 ], [ 9, 18, 27, 36, 45, 54, 63, 72, 81 ] ]