AXIS, GSYMBL 等 (旧ソフト互換用)
axis | scale, line |
csymbl | symbol, number
|
gsymbl, chtype, pchar, pnorm, psubsc, psupsc, pshift
AXIS
1.機 能
座標軸を作画する.
2.呼出し手順と引数
call axis(xp, yp, text, ltx, axlen, angle, firstv, deltav)
xp, yp [float] 座標軸の始点の座標値(cm単位)
text [char] 座標軸の名前の文字列
ltx [int] 文字列 text の文字数(0 であってはならない)
正の値で与えると,座標軸の反時計回りの側に座標軸の名前を作
画し,負の値で与えると,時計回りの側に作画する.
axlen [float] 座標軸の長さ(cm単位,2 cm 以上でなければならない)
angle [float] 座標軸の方向(度単位:+X方向から反時計回りにはかる)
firstv [float] 座標軸の目盛の初期値
deltav [float] 座標軸の1cmあたりの増分値
値が 0. のとき,1.0 とみなす.
3.使 用 例
dimension p(2,12)
do 10 i=1,10
p(1,i) = float(i-1)
p(2,i) = sqrt(p(1,i))
10 continue
call scale(p(1,1), 10., 10, 2)
call scale(p(2,1), 10., 10, 2)
call psopn('axis.ps', 'a4p')
call plots(2., 2.)
call axis(1., 1., 'Axis-X', -6, 10., 0., p(1,11), p(1,12))
call axis(1., 1., 'Y=sqrt(X)', 9, 10., 90., p(2,11), p(2,12))
call line(p(1,1), p(2,1), 10, 2, 1, 4)
call plote
call pscls
stop
end
SCALE, LINE
1.機 能
scaleルーチンは,配列で指定された座標データ群を 指定の座標軸長におさ
めるのに必要な 軸目盛の初期値と増分値を求めて,配列中に格納する.
lineルーチンは,配列に格納されている座標データを用いて,指定された
タイプの折れ線またはマークを作画する.
2.呼出し手順と引数
call scale(va, axlen, npt, inc)
va [float] 座標データが格納されている配列(その先頭要素位置)
axlen [float] 座標軸の長さ(cm単位,2 cm 以上でなければならない)
npt [int] 座標データ点の個数(2 以上の値でなければならない)
inc [int] 座標データ配列から各座標データ値を取り出す間隔
(正の値でなければならない)
求められた軸目盛の初期値および増分値は,座標データの先頭要素を
配列要素 va(1) としたとき,配列要素の va(npt*inc + 1) および
va(npt*inc + inc + 1) に格納される. 従って,そのために必要な配列
のサイズが確保されていなければならない.
call line(xa, ya, npt, inc, ltype, mark)
xa, ya [float] 座標データが格納されている配列(その先頭要素位置)
npt [int] 座標データ点の個数(正の値でなければならない)
inc [int] 座標データ配列から各座標データ値を取り出す間隔
(正の値でなければならない)
ltype [int] タイプの指定
0 または正のとき,各データ点間を実線で結び,
0 でないとき,|ltype| 点毎にマークを作画する.
mark [int] マークの種別を示すセンタシンボル番号.
このルーチンの呼び出しに先立って,scaleルーチンを call するか
もしくは利用者自身の設定によって,配列 xa および ya に対して座標
軸の初期値と増分値が与えられていなければならない.この初期値およ
び増分値の各配列での先頭要素に対する相対位置は,(npt*inc) および
(npt*inc + inc) である.
CSYMBL
1.機 能
ペンの移動を行い,センターシンボルを描く.
2.呼出し手順と引数
call csymbl(xx, yy, size, ic, angle, mode)
xx, yy [float] センターシンボルを描く中心位置の座標(cm単位)
mode [int] 偶数のとき ペンの現在位置から (xx,yy) まで実線を描き,
奇数のとき これを描かず (xx,yy) へペンを移動する.
size [float] 描くセンターシンボルの大きさ(cm単位)
ics [int] 描くセンターシンボルの種類(0〜39)
この値が40以上または負のときは,センターシンボルは描かれない
が,xx,yy,mode の値に従ったペンの移動は行われる.
angle [float] 描くセンターシンボルの回転角(度単位)
3.シンボル形状一覧
SYMBOL, NUMBER
1.機 能
文字列または数値を描く.
symbolルーチンは,gsymblルーチンによる文字列に比して横幅が 7/6 倍に
なっており,文字の高さと文字間隔が等しい文字列となる.
numberルーチンは,小数点以下の桁数を指定して左づめで数値を描く.
gsymblルーチンによる数字出力の実際に描く高さが,指定した文字高の 6/7 倍
であり,文字間隔に等しいのに対し,このルーチンでは,指定した文字高が,
実際の数字の文字高および文字間隔に等しくなるように,数値を描く.(文字列
描画の上では,単に文字高を 7/6 倍に設定し直しているだけである.)
2.呼出し手順と引数
call symbol(xp, yp, high, text, ang, nc)
call number(xp, yp, high, fv, ang, ndec)
xp, yp [float] 文字を描く始点の座標値(cm単位)
xp=yp=999. のとき ペンの現在位置が始点となり,xp,yp のいず
れか一方のみが 999. に等しい場合は,その座標軸に関してのみペ
ンの現在位置の座標を始点の座標値とする.
high [float] 文字の高さ(cm単位)
ang [float] 文字を描く方向(度単位:+X方向から反時計回りにはかる)
text [char] 作画する文字列(またはセンタシンボルコード)
nc [int] 描く文字列(text)の文字数
正のとき text の先頭からその文字数分の文字列を描き,0 または
負のとき text の先頭文字をセンタシンボルコードとみなし,指定
の点にそのセンタシンボルを描く. なお,-2 以下のときは,ペン
の現在位置から指定の点まで線を描く.
fv [float] 作画する数値
整数部は,負の場合の符号を含めて 21桁以下でなければならない.
ndec [int] 小数点以下の作画する桁数
負のとき 小数点を除いた整数部分のみを作画するが,-2 以下のと
き整数部の下位 (|ndec| - 1) 桁を作画しない.
+9 以上のときは +9,-9 以下のときは -9 とみなされる.
GSYMBL, CHTYPE, PCHAR, PNORM, PSUBSC, PSUPSC, PSHIFT
1.機 能
線画で文字を描くためのルーチン群であり,任意の位置に任意の向きの文字
を描け,斜体をも描くことができる. 実際に文字を描くのは pchar/gsymbl
ルーチンであり,gsymblルーチンは直立体の文字を描く. chtypeルーチンは,
pcharルーチンで描く文字の高さ・傾き等を与える.なお,gsymblルーチンの
呼出しは,chtypeルーチンによる設定の ang と high の値を変更し,
slope=0., ratio=1. に再設定する結果となる.
pnorm/psubsc/psupsc の各ルーチンは,pcharルーチンおよび gsymbl
ルーチンに対して,ノーマルモード/下つきモード/上つきモードで描くこと
を指定し,pshiftルーチンは,上つきシフトコードおよび下つきシフトコード
とみなす2文字を指定する.すなわち,下(上)つきシフトコードと指定された
文字は,上(下)つきモード中を除いて文字は描かれず,描く文字のモードを,
ノーマルから下(上)つきへ,下(上)つきからノーマルへ変更する機能を持つ.
下つきモード/上つきモードでは,下つき/上つきにふさわしく下上にずら
した位置に,文字高が 0.7倍の大きさの文字が描かれる.但し,確保される
文字間隔はノーマルモードと同じである.
ここで使用する文字は,英大文字 26字,英小文字 26字,数字 10字,空白
1字,および下記の特殊文字 32字 の 合計95種の文字であり,それ以外の文字
は使用しないものとする.
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
2.呼出し手順と引数
call gsymbl(xx, yy, high, bcd, angle, nc)
call chtype(angle, slope, high, ratio)
call pchar (bcd, nc, xx, yy, kk)
bcd [char] 描くべき文字列
nc [int] 描くべき文字列の字数(シフトコードを含む)
xx, yy [float] 文字を描き始める位置(始点)の位置座標
kk [int] kk≠0 のとき,(xx,yy) を始点とするが,kk=0 のとき,
xx と yy の値は無視され,ペンの現在位置が始点となる.
high [float] 描く文字の高さh(cm単位)
angle [float] 文字を描く方向a(度単位)
slope [float] 描く文字の傾斜s(度単位)
ratio [float] 描く文字の縦横比倍率r (下図参照)
call pnorm
call psubsc
call psupsc
call pshift(cs)
cs [char] シフトコードに指定する2文字.第1文字が下つきシフトコード,
第2文字が上つきシフトコードを示す.当該コードが,前記の95種
以外であるかまたは空白の場合,当該シフト機能の解除とみなす.
3.字体一覧および使用例