作者: sugi
日時: 2006/4/7(11:06)
sugiです。
皆さん、こんにちは。

Jw_cad というCADソフトの機能を拡張するためのスクリプトを 
Ruby で書いているのですが、処理に時間のかかる部分があり、そ
こだけC言語の拡張ライブラリにしたいと思ってます。

ただ、Rubyで書けば簡単な処理もC言語がよく分からないため基本
的なところでつまずいています。例えば始点と終点のXY座標値か
らなる線の配列をポイント分だけ移動させる場合ですが、

=== test.rb (ここから)===
#! C:/usr/bin/ruby

def hoge(lines,pt)
  return lines.collect{|e| 
    [e[0]+pt[0],e[1]+pt[1],
      e[2]+pt[0],e[3]+pt[1]]}
end

lines=[[1,2,3,4],[5,6,7,8]]
pt=[2,1]
p hoge(lines,pt) # => [[3, 3, 5, 5], [7, 7, 9, 9]]
=== test.rb (ここまで)===

というような hoge をC言語で書くにはどうすれば良いのでしょう
か。

多分 rb_iterate や rb_each を使うのだと思うのですが、具体的
にどう書くかとなると分からないのです。

よろしくお願いします。

--
sugi