[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001219] DCL toolbox



堀之内です。

DCL を用いた描画に関する提案です。

一般に、カラー塗り分け(トーン)の図を書く場合、カラーレベルを表す
カラーバーをつけますが、DCLには含まれてませんよね。そこで、カラー
バーを書くためにはまずそのための関数(メソッド)を書くことになりま
す。このような描画に関する基本的な機能を実現した関数は、ある程度
皆で共有できる筈です。そこで、

   DCLの応用描画メソッドを集めたツールボックスを作りませんか

というのが提案です。どういう形で集めればいいかとか、どの程度仕様
を共通化すべきかということは、考えどころですが、とりあえずは、
「こんなん作りましたので皆さん良ければお使い下さい」といった感じ
で提供して貰ったものを集めればいいでしょう。このため、電脳サーバー
(dennou-t.gfd-dennou.org)に

  /GFD_Dennou_Club/ftp/arch/ruby/products/dcl-toolbox 

というディレクトリーを作りましたので、アカウントのある方(かつ
Rubyグループに入ってる方)は、勝手に置いて下さって結構です。ここ
は URL 的には ruby.gfd-dennou.org/products/dcl-toolbox/ として見
えます。中身はまだ空です。権限のない方はこの ML に流して貰えれば
なんとかします。

ところで

  林様、塩谷様:

  Ruby グループには誰が入ってるいるのかを調べるにはどうすればいい
  のでしょうか。西澤君が入ってなければ入れて欲しいのですが。
                                          (林様、塩谷様宛終り)

さて、上記のように当面勝手に持ち寄るとしたのですが、ある程度使い
勝手や汎用性が確保できたら嬉しいですので、持ち寄られたプログラム
の改良の提案も歓迎します。あと、若干思いついたこと。

  * カラーバーのように、レイアウトに関し沢山自由度があるものは、
    オプション引数で制御できるようにするといいと思います。イメー
    ジを呼出しの例で書くとこんな感じ:

       DCLTool.color_bar( levels, colors, {'vx0'=>0.1, 'vxwidth'=>0.8,
            'landscape'=>true} )

    オプションは、指定しない場合デフォルト値が使われるようにします。

    ちなみに私はまだ Ruby ではカラーバーを書いてませんので、どな
    たか、作ったら出してください。西澤君、既に作ってたりしません?
    私は IDL では自作のを使ってますが、オプション引数としては他
    に、文字のラベリングに関するもの等があります。

  * 一つの機能は一つのファイル内に収まる(複数のファイルにまたが
    らない)のが、使い勝手が良くていいでしょう。一つのファイルに
    複数の機能が入っているのは勿論OKです。

  * 恐らく出来たメソッドはモジュールに入れるのが収まりがいいと思
    うが、モジュール名はどうすべきかは議論の対象になります。上の
    例では DCLTool となってます。まずは作った人が勝手にモジュー
    ルを作り、ある程度認知されてきたら、共通の枠組み(DCLTool 
    といった名前にする)に取り込むのがいいように思います。このため、
    各自が作る際には、とりあえず DCLTool という名前を使わないよう
    にして頂くといいでしょうか。

    皆さん、整理の仕方&ネーミングポリシーはどうすればいいと思い
    ますか。ごとけんさん、何かありません?

  * DCLTool にしろ独自モジュールにしろ、すべては(RubyDCL同様に)
    NumRu 傘下に入るべきです。つまり、上の例では

    module NumRu
      module DCLTool
        def color_bar(levels, colors, options)
          ...

    となる。
    (余談ですが、本物のキーワード引数でない Hash による疑似キー
    ワード引数は、関数定義を見てもどんなオプションがあるかが分
    からないのが問題ですね)

堀之内 武                    horinout@xxxxxx
京都大学宙空電波科学研究センター     611-0011 宇治市五ヶ庄