メソッド Tone.draw を呼ぶだけで, とりあえず負の領域にトーンをつ
けることができます. 次のプログラム例 U2D2 は, U2D1 の結果
に加えて, 負の領域に斜線のハッチをつけます. ここで, Tone モジュールの
パラメタ lsoftf
を .TRUE. に設定しています. これを .FALSE.(初期値) で描く
と, 出力装置によっては先に描かれた図形が消えてしまうことがあります.
'LSOFTF' の設定を変えたり, Tone.draw を呼ぶ順序を Axis.draw の前にしたりして, 結果がどのようになるか確かめてみましょう. ま
た, この例では, ビューポートを陽に設定して長方形にしている点にも注意し
て下さい.
Z (実数型) 2次元配列. 塗り分けの設定を陽に行なわなければ, 負の領域に斜線を引く. この塗り分けレベルとパターンの設定は第6.4節を参照のこと.
#
# u2d2.rb
require "narray"
require "numru/advanceddcl"
include NumRu::AdvancedDCL
include NMath
nt = 51
nz = 21
tmin = 0.0
tmax = 5.0
zmin = 20.0
zmax = 50.0
dt = (tmax-tmin)/(nt-1)
dz = (zmax-zmin)/(nz-1)
u = NArray.sfloat(nt, nz)
#-- data ----
for j in 0..nz-1
zj = j*dz
uz = exp(-0.2*zj)*(zj**0.5)
for i in 0..nt-1
ti = i*dt-2.0*exp(-0.1*zj)
u[i,j] = uz*sin(3.0*ti)
end
end
#-- graph ----
Dev.open
Tone.lsoftf = true
Frame.new
Fig.window = [tmin, tmax, zmin, zmax]
Fig.viewport = [0.2, 0.9, 0.4, 0.8]
Axis.title('TIME', 'YEAR', 'HEIGHT', 'km')
Axis.draw
Contour.draw(u)
Tone.draw(u)
Dev.close
PROGRAM U2D2