2.2 ポリラインプリミティブ

折れ線を描くポリラインプリミティブには, 次の2つの属性があります.

カラーグラフィクスについてはまとめて第11章で説明しますので, ここでは線の太さだけが変えられる出力装置を念頭に置いて説明しましょう.

プログラム KIHON2 では, これらの属性がどのように指定できるかを示 します. 正弦曲線を Plot.vdraw メソッドで描いていますが, 一番上の線が ラインインデクスが初期値(1)の場合です. 次からの3本は, テンポラリなパラ メタ設定を用いて この値を4, 6, 8と変えて描いた結果です. 線を描いた後ラインインデクスは 初期値(1)に戻ります。ラインインデクスが大きくなるにつれて, 線が太くなります.

Frame.new メソッドを呼んで次のフレームを設定し, 今度はライ ンタイプを変えて描いています. ラインタイプとは, 実線, 破線などの線種で すが, 1から4までの番号にはあらかじめ次のタイプが決められています. 1: 実線, 2: 破線, 3: 点線, 4: 1点鎖線. 初期値は1で, 単に Plot.vdraw メソッドを呼ぶと実線で折れ線を描きます. そういえば, frame1 の結果も実線でし た. Plot.lineindex= メソッドでこの値を2, 3, 4と変えて描いた結果 が frame2 です.

ラインタイプには, まだまだいろんな種類があり, ユーザーがそれぞれの好み の線種を指定することが可能です. それは第3.2節で詳しく説 明することにしましょう.

#
# kihon2.rb

require "narray"
require "numru/advanceddcl"

include NumRu::AdvancedDCL
include NMath

nmax = 40
imax = 4
dt = 4.0*PI/nmax

x = NArray.sfloat(nmax+1)
y = NArray.sfloat(nmax+1, imax)

#-- data ----
x = x.indgen * 1.0/nmax
for n in 0..nmax
  for i in 0..imax-1
    y[n,i] = 0.2*sin(n*dt) + 0.8 - 0.2*i
  end
end

#-- graph ----
Dev.open

#-- line index : frame 1 --
Frame.new
Frame.pvpr(1) 

for i in 0..imax-1
  Plot.vdraw(x, y[true,i], "lineindex"=>2*(i+1))
end

#-- line type : frame 2 --
Frame.new
Frame.pvpr(1)

for i in 0..imax-1
   Plot.linetype=i+1
   Plot.vdraw(x, y[true,i])
end

Dev.close
PROGRAM KIHON2

\resizebox{10cm}{!}{\includegraphics{kihon1/kihon2_001.eps}}
kihon2.rb: frame1

\resizebox{10cm}{!}{\includegraphics{kihon1/kihon2_002.eps}}
kihon2.rb: frame2