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

[dennou-ruby:000666] Re: call for design of the ruby plotter



川那辺です。

皆様から挙げていただいた要望をもとに
話し合った結果を流しておきます。

-----------------------------------------------------
・要望の追加
1.描画結果の内部情報にアクセス
        (例)    座標位置、コンタレベル、指定した点での値
                   色とか太さとか…
2.描かれた物や書いた領域に関する情報を管理できる
             ⇒カラーバーとかデータラベルを書きたい
                 (追加)ベクトル場のユニットベクトル
3.GUIからもいろいろできるようになって欲しい。

・パラメータに関して
    描画パラメータのテーマ
        自分用のパラメータを設定でき、それを保存して、
        複数個を切り替えられる。

・パラメータの構造に関して
    パラメータは、
        RUBYで実行すべき
       下位(DCL)で実行すべき
       その中間(どっちでもできる)
    といった種類に分けられ、それらが階層構造を成す。その後の話し合いで
    パラメータはデフォルトパラメータの1部と1描画限りのテンポラリパラメータ
    から成るプロパティを描画命令オブジェクトに持たせることにより実現するこ
    とを決定。

・その他の機能
    図の保存、読み込み
        ここで言う図はデータ込みのプロセス情報を保存できている必要がある。
      つまり、行った動作を保存する。上書き可能。これを発展させることで、ペ
      ージの概念を導入できる。

    画像(中身はブラックボックス)を取り込める。

    画像フォーマット(bmp,tif)のサポート。
          ビットマップの表示ができる。(倍率を変えられる。)
           ⇒描画オブジェクトではなく、ビットマップオブジェクトの仕事。
               つまり、ビットマップオブジェクトにメソッドを流せる必要があ
る。

    画面分割
         分割をマウスで行いたい。
         分割ではなく、追加で行う方法も(積み木)。

    マウスを使おう。
         コンタ−の2点をマウスでドラッグすれば、断面図が描ける。
         コンタ−図内に線が引ける。(この線は編集可能)

    クリックした場所の値が出力される。

----- Original Message -----
From: "Takeshi Horinouchi" <horinout@xxxxxx>
To: <dennou-ruby@xxxxxx>
Cc: <horinout@xxxxxx>
Sent: Monday, January 29, 2001 11:13 PM
Subject: [dennou-ruby:000656] call for design of the ruby plotter


> 堀之内です。
>
> 今、NumArray 充実化に加えて、川那辺くんに描画機能の設計を
> 頼んでおり、一緒に検討しようとしてます。NumArrayは振る舞い
> という点では仕様は最初からかなり固まっていたのですが、
> 描画機能のほうはとても大きな自由度があります。というのも、
> 当初は dcl を ruby 的に使い良くする wrapper さえ書けばいいかと
> 思っていたのですが、dclに出来るだけとらわれない形で、対話的に
> 利用すると言う観点からあらまほしき形を探るべきだとの認識に至っ
> たからです。こうなると、どう設計するかで、どんな使い勝手の
> ものが出来るかや、維持・拡張性が大きく変わります。
>
> 例えば dcl を、データに視覚可する下位のツールと考えることも
> できるしょう。例えば a-z のフォントは 26 個の整数に視覚表現
> を与えますが、dclもそんな風に考えると随分自由度があるような
> 気がするでしょう。フォントはワープロの一部でしかないです。
>
> そこでまず、どんな風に「使える」ものが欲しいかを、
> 「ユーザーとしての立場」から皆さんに上げて頂きたいと思います。
> dclを使う場合の技術的制約はとりあえず考えないで下さい。それ
> は後で検討すればいいのです。どんな機能を将来的に実装して行く
> かを良く考えることは、その機能をすぐ実装するか否かに関わらず、
> 設計上の大きな指針となるはずです。それをおろそかにすると後で
> 苦労するでしょう(NumArrayでさえそれで苦労してるもんね
> > 川那辺君 :-)。
>
> ということで皆さんよろしく。まず皮切りに私の要望を並べたて
> てみます。まだあるかもしれませんが、とりあえず。こんなの
> dcl で出来るの?と思うかもしれませんが、気にしないで下さい。
> しかも、rubyなら意外と結構できそうです。参考書は
> 「オブジェクト指向における再利用のためのデザインパターン」
> (Gamma他、ソフトバンクパブリッシング)です。本プロジェクト
> の必読書です。といっても私もまだ少ししか読んでないので、こ
> れから頑張ります。
>
> では、要望です。
>
>
> ● 1次元図、2次元図、3次元図が描ける。具体的にどのような絵
>    が描けるかはツールによって異なる(dclならコンター、色塗り、
>    折れ線他多数)。
>
> ● dclなどの下位の描画ツールに出来るだけ依存しないインターフェースを
>    を持ち、ツールの交換を可能にする。
>
> ● さらに、複数のツールが同時に使えるとなお良い(dclとopenGLの
>    組み合わせとか)。(しかし複数のツールを単に併用するのでなく
>    協調させようと思うと、それぞれが描く図を完全にブラックボック
>    スと出来なくなることに注意する必要がある...)
>
> ● 図の大小や配置が変えられる(画面分割とか)。自由にレイアウト
>    できる。
>
> ● history, undo&redo機能
>
> ● 特に変えなければ以後有効という形でグラフィックパラメターの設定ができ
>   る。一括してデフォルトに戻せる。設定にも history 機能をサポート。なお
>   パラメターには下位のツールに依存しない共通なものと、各ツールに固有な
>   ものがあり得る。それを許容できるべきである。
>
> ● グラフィックパラメターの一時的な設定もできる(描画一回限り有効で自
>    動的にクリアされる。何をもって一回とするかは場合によりけり)
>
> ● 出力デバイスが複数選べる(X等の画面、PS、ビットマップ etc)。画面出
>    力以外では、ヒストリー機能は限られてもよい。
>
> ● 出力デバイスを切り替えられる
>
> ● 画面に書いたものをPSに出すとか出来る。現在の画面を出せるだけでなく、
>    ある程度過去に遡って出せると良い。
>
> ● 紙の上での大きさは変えられる。たとえば画面いっぱいの絵を紙の半分
>    に書き出したりポートレートやランドスケープを出力時に変更できる
>    とよい。
>
> ● マウス位置取りこみが可能 (2次元平面内で一個以上の点列の位置を
>    device,Normalized,User等の各座標系での値を配列として取りこむ)
>
> ● マウスにより長方形を描く要領で描画ウィンドーを生成出来る
>
> ● マウスにより描画オブジェクトを「選択」出来る
>
> ● マウスで選択したオブジェクトを加工したり、テキストを貼りつけたり
>    出来る
>
> ---
> 堀之内 武
> 京大宙空電波科学研究センター
>
>