3.4 テキストプリミティブ

文字列を描くテキストプリミティブには, 次のような属性があります.

プログラム kihon4 で, これらの属性を1つずつ順に変えて文字列を書 いてみましょう.

まず, 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

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