これは折れ線ルーチンの使用例である. 折れ線ルーチンも例によって4つ (R座標系での作画ルーチンも含めると6つ)のタイプがあるが, ここでは, U座標系で描画する根回し型ルーチンのみを取り上げる.
折れ線を描くルーチンは SGPLU (SG PolyLine U)
である.
折れ線ルーチンでは線分属性としてラインインデクスの他に,
実線, 点線等といったラインタイプが指定できる.
これらを変更するルーチンは, それぞれ
SGSPLI
と SGSPLT
である.
1ページ目にはいろいろなラインインデクスと
ラインタイプの例を示してある.
SGPLU
で描く点線や破線のパターンの1サイクルの長さは
V座標系で指定されている.
したがって, 小さなビューポートで描画するとビューポートの
大きさに比べてパターンが長すぎるため,線分部分と空白部分の
バランスが悪くなることがある.
それとは逆に, ディスプレイ等に点線や破線を表示した場合,
ディスプレイの分解能が悪いと,
パターンが潰れて判別できなくなることもある.
そのようなときには SGRSET
で内部変数 'BITLEN'
を変更すると,
パターンのサイクル長を変えることができる.
GRPH1 では実線, 破線, 点線, 一点鎖線の4種類の線種を指定できるが,
これ以外のパターンの線種も指定することができる.
実は, SGPLT
の引数に4より大きい数値を指定すると,
その整数の2進表現のパターンを指定したものと見なされる.
すなわち, 整数の下位16 bit のうち1の部分に線を描き,
0の部分は空白となるようなパターンを設定する.
このパターンを表わす整数を求めるには
MISC1/BITLIBの中の
BITPCI
を使うと便利である.
さらに複雑なパターンを指定したいときには,
SGISET
で内部変数'NBITS'
を変更することにより,
パターンのビット長を32 bitまで長くすることができる.
データの中に欠損がある場合には,
MATH1/SYSLIB の中の GL
pSET(GLobal Parameter SET)
で欠損値処理の指定に関する内部変数 'LMISS'
を.TRUE.
にして,
欠損値処理を有効にする.
このように指定すると,座標成分(x,y)のどちらかが 999. である点を
欠損値と見なして線を結ばない.
また, 有効な点が欠損値に囲まれ, 一点だけ孤立している様な場合には,
有効な点を線で結ぶことはできないので,
そこには何も描かれない.
欠損値 999. の値が実際のデータ範囲に入っていて,
999. 以外の値にしたい場合には, GLRSET
によって
実数の欠損値をあらわす内部変数'RMISS'
を変更してやればよい.
欠損値処理の制御は,SGPACK だけでなくプログラム全体で統一的に
行われなければならないため,欠損値処理に関する内部変数の管理は
SG
pGET/
SG
pSET
ではなく
GL
pGET/
GL
pSET
で行われてる.