[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dennou-ruby:000154] Re: reading binary files
高橋です。
>返り値が複数なら,
> uxmin, uxmax, uymin, uymax = Dcl.sgqwnd() # 現在のウインドウ情報を得る
>が基本になります.f90 ではこのようなこと
>(配列を返す関数の値を展開した形で得る)はできましたっけ?
>できないとすれば,f90 の(上位)インターフェースとは形が
>変わってしまいます.
できないと思います。少なくとも f90 のインターフェイスは
そうはなっていません(subroutine DclGetWindow(xmin, xmax, ymin, ymax) の
ような書き方をしています)。
>Ruby は Ruby,違っていてもいいじゃない,というのなら,
そう思います。その言語の文脈で綺麗に書けていれば良いかと。
>dev = DclDevice.new('X')
>dev.newframe
>
>win = DclWindow.new(0.0, 1.0, -0.7, 0.7)
>vpt = DclViewport.new(0.2, 0.8, 0.2, 0.6)
>fig = DclFig.new(win,vpt,'linear')
>
>fig.AxisTitle('X-AXIS', ' ', 'Y1-AXIS', ' ')
>fig.DrawAxis
>
>txt = DclText.new('PAGE:1, FRAME:1', 0.02, 0, 0, 3)
>txt.Show
>
>とかいうように(詳細はともかく)やってしまうとカッコイイのでしょうが,
>こういうのは,のちのちさらなるラッパとして考える,ということで
>よいかと思います.
さらなるラッパ、というよりはこういう書きかたが早くしたい、
というのが本音です。が、沼口さんの書き方だとなんだかちっとも
データがオブジェクト化されていないように見えます。
内部では細かくクラス分けされていても良いかもしれませんが、
毎日のプログラミング段階では、お絵描き部分(デバイス選択から
実際の描画まで)を扱うオブジェクトは、「ひとつだけ」でかつ
「データを含んでいるもの」、であって欲しいです。
こんな感じですか
a = DclData.new("~/data/hogehoge.nc")
b = DclData.new("~/data/hogehome.nc")
c = a + b
c.OpenDevice('X')
c.DrawContour # すべてデータ内のデフォルト値で描画
----------------
京大理気象M2 高橋憲義