lmark | scale, line |
axis (使用例) |
symbol, number
LMARK
1.機 能
線グラフに付加するマークの描画.
線画描写のペンの現在位置に pmarkルーチンと同様のマークを黒で描く.
2.呼出し手順と引数
call lmark(lmk, size)
lmk [int] マーク種別を選択する.
この lmkコード値 の 0/1/2/3/4/5/6/7/8/9 に対応して,pmarkル
ーチンの第1引数 が 2/0/4/8/9/3/1/5/6/7 の形のマークを描き,
この値が 負 または 10以上 のときは,小さい(指定sizeの 1/3)
黒丸(ぬりつぶし) を描く.(下記マーク一覧を参照)
size [float] 描くマークの基準サイズを cm単位で指定する.
3.マーク一覧(使用例)
call psopn('lmark.ps', 'a4p')
call plots(2., 2.)
do 20 i=0,10
x = float(i) + 0.5
call plot(x, 0.5, 3)
call lmark(i, 0.7)
if (i .eq. 10) then
call symbol(x-0.3, 1.6, 0.3, '<0', 0., 2)
call symbol(x-0.3, 1.2, 0.3, '>9', 0., 2)
else
call number(x-0.15, 1.4, 0.3, float(i), 0., -1)
endif
20 continue
call wrect(0., 0., 11., 1.)
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] マークの種別を示す lmkコード番号
(マークの形状は lmarkルーチンを参照)
このルーチンの呼び出しに先立って,scaleルーチンを call するか
もしくは利用者自身の設定によって,配列 xa および ya に対して座標
軸の初期値と増分値が与えられていなければならない.この初期値およ
び増分値の各配列での先頭要素に対する相対位置は,(npt*inc) および
(npt*inc + inc) である.
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(3,12)
do 10 i=1,10
p(1,i) = float(i-1)
p(2,i) = sqrt(p(1,i))
q4 = p(1,i) - 4.
p(3,i) = q4*q4 * 0.15
10 continue
call scale(p(1,1), 10., 10, 3)
call scale(p(3,1), 10., 10, 3)
p(2,11) = p(3,11)
p(2,12) = p(3,12)
call psopn('axis.ps', 'a4p')
call plots(2., 2.)
call axis(0., 0., 'Axis-X', -6, 10., 0., p(1,11), p(1,12))
call axis(0., 0., 'Y=sqrt(X)', 9, 10., 90., p(3,11), p(3,12))
call line(p(1,1), p(2,1), 10, 3, 1, 4)
call line(p(1,1), p(3,1), 10, 3, 1, 10)
call plote
call pscls
stop
end
SYMBOL, NUMBER
1.機 能
文字列または数値をCourierフォントで描く.
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 <= 0 のとき] lmkコード の1バイト)
nc [int] 描く文字列(text)の文字数 (>0)
正のとき text の先頭からその文字数分の文字列を描き,0 または
負のとき text の先頭文字を lmkコード(lmarkルーチン参照)と
みなし,指定の点にそのマークを描く. なお,-2 以下のときは,
ペンの現在位置から指定の点まで線を描く.
fv [float] 作画する数値
整数部は,負の場合の符号を含めて 21桁以下でなければならない.
ndec [int] 小数点以下の作画する桁数(-9〜+9)
負のとき 小数点を除いた整数部分のみを作画するが,-2 以下のと
き整数部の下位 (|ndec| - 1) 桁を作画しない.
+9 以上のときは +9,-9 以下のときは -9 とみなされる.