u2df04.fの例のように, ただ負の領域に斜線のハッチをつけるだけでは あまりに芸がない. もちろんUEPACKでは, トーンをつけるレベルやパターンを指定することができる.
この例も, u2df04.fと同じようにコンターとの重ね書きをおこなっているが,
プログラムの構成上大きく異なる点がある.
それは,
SGLSET
(「GRPH1」のマニュアル参照)で
内部変数 'LSOFTF'
を.FALSE.
として,
ハードフィルを指定しているために,
座標軸の描画やコンタリングをおこなうよりも前にUETONE
を呼んでいることである.
UEPACKのハッチングは「GRPH1」のトーンプリミティブを用いている.
トーンプリミティブは出力装置の能力に応じてハードフィルとソフトフィルとを
切替えることができるが,
出力装置によってはハードフィルによる塗りわけによって
先に描かれた図形が消えてしまうことがある.
u2df04.fの例では, 内部変数 'LSOFTF'
を.TRUE.
とし,
ソフトフィルを用いていたので,
そのような不都合が起こらなかった.
しかしこの例では, ハードフィルを指定したので,
UETONE
を最初に呼んでいるわけである.
トーンの指定は, 必要なレベルの分だけUESTLV
を
呼ぶことによっておこなう.
(UESTLN
というルーチンを用いれば,
複数のレベルを配列で指定することもできる;
また UDGCLA
, UDGCLB
と同様のトーンレベル生成ルーチン
UEGTLA
, UEGTLB
もある).
最初の2つの引数によってぬりわけるレベルの下限値と上限値を指定し,
最後の引数でトーンパターン番号を指定する.
トーンパターンのリスト
は「GRPH1」マニュアルに付されているので参照されたい.
この例のUESTLV
による第1レベル目の設定のように,
GL
pGET/
GL
pSET
が管理する内部変数'RMISS'
を下限値として使えば
2つ目の引数で与える値以下の領域をぬりわけることができる.
また第3レベル目のように,
'RMISS'
を上限値として使えば最初の引数以上の部分を
ぬりわけることができる.
またもちろん, 第2, 3レベル目の設定のように,
あるレベルの上限値と他のレベルの下限値を等しくして,
連続的なぬりわけも可能である.