3.6 サブルーチンの説明 : 上位応用ルーチン (ULA)

このサブルーチンパッケージ UXPACK/UYPACK/UZPACK において, 実際にユーザーが使用するであろうルーチン群. 下位応用ルーチン (LLA)を組み合わせて書かれており, 座標軸の構成要素の属性は UZpGET/UZpSETによって 参照/変更することができる. 上位応用ルーチン(ULA)に関する以下の説明では, 内部で呼ばれている下位応用ルーチン名が しばしば引用されるので, くわしくは3.8節を参照のこと.



上位応用ルーチン(ULA)に含まれるサブルーチンとしては以下のものがある.

等間隔の目盛と数値ラベルを描くだけならUXAXDV/UYAXDVを用いればよい. 不等間隔の目盛と数値ラベルを描きたければUXAXNM/UYAXNMを 用いればよい. 数値ラベルのフォーマットはユーザーが指定することも可能なので, 数値ラベル座標軸の描画はほぼこれらのルーチンで事足りる. それでも満足できない場合は, 目盛とラベルを描く位置さらには 描くラベルを指定するルーチンUXAXLB/UYAXLBを用いればよい. また, タイトルはUXMTTL/UYMTTL, UXSTTL/UYSTTLによって, 描いたラベル等のオフセット量を気にしなくても 次々と重ならないように描くことができる.



以下の説明で共通してあらわれる引数 CSIDE は, 座標軸の構成要素を描く場所を指定するパラメーターで, X軸については 'B', 'T', 'U' が指定できる; Y軸については 'L', 'R', 'U' が指定できる (くわしくは3.2節参照).



目盛はCSIDEすべての選択について描かれる. しかしラベルを描くかどうかは, 場所に依存した内部変数'LABELzs'が決める. この内部変数が.TRUE.なら描く, .FALSE.なら描かない (初期値は, .TRUE., .FALSE., .TRUE., .TRUE., .FALSE., .TRUE.). つまり初期設定では, 下('B')の座標軸と左('L')の 座標軸についてラベルを描くが, 上('T')の座標軸と右('R')の 座標軸についてはラベルを描かない (ユーザーの座標軸はラベルを描く).



以下のルーチンのうち, UXAXLB/UYAXLB, UXAXNM/UYAXNM, UXAXDV/UYAXDVについては, 内部変数'LOFFSET'.TRUE.なら 座標系をリニアオフセットする;.FALSE.ならしない (初期値は.FALSE.). つまり, 内部変数'LOFFSET'.TRUE.のとき 次のように座標系の変換がおこなわれウインドウが再設定される (この設定はルーチン内でのみ有効であって, ルーチンを抜け出すとき最初の設定に戻される; つまり座標軸を描くときのみ有効である).

UXPACKについては内部変数'XOFFSET', 'XFACT'を参照して 次の変換をおこなう.

f(x)=XFACT×x+XOFFSET

 

UYPACKについては内部変数'YOFFSET', 'YFACT'を参照して 次の変換をおこなう.

g(y)=YFACT×y+YOFFSET

 
これはたとえば, 温度に関するデータがあってデータの単位はセ氏で与えられているが, 目盛は華氏で打ちたいというときなどに有効である.