文字列を描くテキストプリミティブには, 次のような属性があります.
まず, sgtxv だけを呼んで, デフォルトで 'sgtxv' と書いてみ
ました. ラインインデクスの初期値は1, 文字の大きさの初期値はV-座標系に
おける単位で 0.05 で, 指定した座標に文字列の中心が来ます.
次に, sgstxi ルーチンで文字を描く線のラインインデクスを変えて,
'INDEX3', 'INDEX5' と書いてみました. 大きな値にすると太字
になります. このラインインデクスはポリラインなどのラインインデクスとは
独立に管理されており, 他のラインインデクスに影響を与えたりしません. マー
カーのラインインデクスも同様です.
また, 文字の大きさは sgstxs ルーチンで変えることができます
('SMALL' と 'LARGE').
文字列の位置ですが, 文字列の左端の座標や, 右端の座標で指定することもで
きます. sgstxcで-1を指定すると左あわせ('LEFT'), 1で右あわせ
('RIGHT')となります. 初期値は0で, 中央あわせとなっています. この引数は
整数に限られることに注意して下さい.
文字列を回転させるためには, sgstxr ルーチンで回転角を指定します. 単位は度で, 指定した位置を中心に反時計回りに回転します. やはり, このルー チンでも引数は整数値に限られます。
# kihon4.rb require "narray" require "numru/dcl" include NumRu include Math nmax = 9 x1 = 0.1 xc = 0.5 x2 = 0.9 y = NArray.sfloat(nmax) #-- graph ---- iws = (ARGV[0] || (puts ' WORKSTATION ID (I) ? ;'; DCL::sgpwsn; gets)).to_i DCL::sgopn iws DCL::sgfrm #-- line ---- for n in 0..nmax-1 y[n] = 0.1*(9-n) DCL::sglnv(x1, y[n], x2, y[n]) end DCL::sglnv(xc, 0.05, xc, 0.95) #-- default ---- DCL::sgtxv(xc, y[0], 'SGTXV') #-- text line index ---- DCL::sgstxi(3) DCL::sgtxv(xc, y[1], 'INDEX3') DCL::sgstxi(5) DCL::sgtxv(xc, y[2], 'INDEX5') DCL::sgstxi(1) #-- text size ---- DCL::sgstxs(0.03) DCL::sgtxv(xc, y[3], 'SMALL') DCL::sgstxs(0.07) DCL::sgtxv(xc, y[4], 'LARGE') DCL::sgstxs(0.05) #-- text centering option ---- DCL::sgstxc(-1) DCL::sgtxv(xc, y[5], 'LEFT') DCL::sgstxc(1) DCL::sgtxv(xc, y[6], 'RIGHT') DCL::sgstxc(0) #-- text rotation ---- DCL::sgstxr(10) DCL::sgtxv(xc, y[7], 'ROTATION+') DCL::sgstxr(-10) DCL::sgtxv(xc, y[8], 'ROTATION-') DCL::sgcls
PROGRAM KIHON4